public override void Visit(IMakeTypedReference makeTypedReference) { if (Process(makeTypedReference)) { visitor.Visit(makeTypedReference); } base.Visit(makeTypedReference); }
/// <summary> /// /// </summary> /// <param name="makeTypedReference"></param> public MakeTypedReference(IMakeTypedReference makeTypedReference) : base(makeTypedReference) { this.operand = makeTypedReference.Operand; }
public void Visit(IMakeTypedReference makeTypedReference) { Contract.Requires(makeTypedReference != null); throw new NotImplementedException(); }
public void Visit(IMakeTypedReference makeTypedReference) { this.traverser.Traverse(makeTypedReference); }
/// <summary> /// Traverses the make typed reference expression. /// </summary> public void Traverse(IMakeTypedReference makeTypedReference) { Contract.Requires(makeTypedReference != null); if (this.preorderVisitor != null) this.preorderVisitor.Visit(makeTypedReference); if (this.StopTraversal) return; this.TraverseChildren(makeTypedReference); if (this.StopTraversal) return; if (this.postorderVisitor != null) this.postorderVisitor.Visit(makeTypedReference); }
//^ ensures this.path.Count == old(this.path.Count); /// <summary> /// Traverses the given make typed reference expression. /// </summary> /// <param name="makeTypedReference"></param> public virtual void Visit(IMakeTypedReference makeTypedReference) { if (this.stopTraversal) return; //^ int oldCount = this.path.Count; this.path.Push(makeTypedReference); this.Visit(makeTypedReference.Operand); //^ assume this.path.Count == oldCount+1; //True because all of the virtual methods of this class promise not to decrease this.path.Count.or operation is not implemented."); this.path.Pop(); }
public virtual void onASTElement(IMakeTypedReference makeTypedReference) { }
/// <summary> /// Returns a shallow copy of the given make typed reference expression. /// </summary> /// <param name="makeTypedReference"></param> public MakeTypedReference Copy(IMakeTypedReference makeTypedReference) { return new MakeTypedReference(makeTypedReference); }
public override void TraverseChildren(IMakeTypedReference makeTypedReference) { base.TraverseChildren(makeTypedReference); ((MakeTypedReference)makeTypedReference).Type = this.platformType.SystemTypedReference; }
/// <summary> /// Generates IL for the specified make typed reference. /// </summary> /// <param name="makeTypedReference">The make typed reference.</param> public override void TraverseChildren(IMakeTypedReference makeTypedReference) { this.LoadAddressOf(makeTypedReference.Operand, null); var type = makeTypedReference.Operand.Type; var mptr = type as IManagedPointerTypeReference; if (mptr != null) type = mptr.TargetType; else { var ptr = type as IPointerTypeReference; if (ptr != null) type = ptr.TargetType; } this.generator.Emit(OperationCode.Mkrefany, type); }
/// <summary> /// Generates IL for the specified make typed reference. /// </summary> /// <param name="makeTypedReference">The make typed reference.</param> public override void TraverseChildren(IMakeTypedReference makeTypedReference) { this.Traverse(makeTypedReference.Operand); var type = makeTypedReference.Operand.Type; var mptr = type as IManagedPointerTypeReference; Contract.Assume(mptr != null); this.generator.Emit(OperationCode.Mkrefany, mptr.TargetType); }
public override void Visit(IMakeTypedReference makeTypedReference) { if(Process(makeTypedReference)){visitor.Visit(makeTypedReference);} base.Visit(makeTypedReference); }
public void Visit(IMakeTypedReference makeTypedReference) { this.result = this.rewriter.Rewrite(makeTypedReference); }
/// <summary> /// Rewrites the given make typed reference expression. /// </summary> /// <param name="makeTypedReference"></param> public virtual IExpression Rewrite(IMakeTypedReference makeTypedReference) { var mutableMakeTypedReference = makeTypedReference as MakeTypedReference; if (mutableMakeTypedReference == null) return makeTypedReference; this.RewriteChildren(mutableMakeTypedReference); return mutableMakeTypedReference; }
/// <summary> /// Visits the specified make typed reference. /// </summary> /// <param name="makeTypedReference">The make typed reference.</param> public override void Visit(IMakeTypedReference makeTypedReference) { MakeTypedReference mutableMakeTypedReference = makeTypedReference as MakeTypedReference; if (alwaysMakeACopy || mutableMakeTypedReference == null) mutableMakeTypedReference = new MakeTypedReference(makeTypedReference); this.resultExpression = this.myCodeMutator.Visit(mutableMakeTypedReference); }
public override void Visit(IMakeTypedReference makeTypedReference) { allElements.Add(new InvokInfo(Traverser, "IMakeTypedReference", makeTypedReference)); }
public void Visit(IMakeTypedReference makeTypedReference) { this.result = this.copier.Copy(makeTypedReference); }
/// <summary> /// Rewrites the given make typed reference expression. /// </summary> /// <param name="makeTypedReference"></param> public virtual IExpression Rewrite(IMakeTypedReference makeTypedReference) { return makeTypedReference; }
public override void TraverseChildren(IMakeTypedReference makeTypedReference) { MethodEnter(makeTypedReference); base.TraverseChildren(makeTypedReference); MethodExit(); }
/// <summary> /// Performs some computation with the given make typed reference expression. /// </summary> /// <param name="makeTypedReference"></param> public virtual void Visit(IMakeTypedReference makeTypedReference) { }
/// <summary> /// Returns a shallow copy of the given make typed reference expression. /// </summary> /// <param name="makeTypedReference"></param> public MakeTypedReference Copy(IMakeTypedReference makeTypedReference) { Contract.Requires(makeTypedReference != null); Contract.Ensures(Contract.Result<MakeTypedReference>() != null); return new MakeTypedReference(makeTypedReference); }
/// <summary> /// Traverses the children of the make typed reference expression. /// </summary> public virtual void TraverseChildren(IMakeTypedReference makeTypedReference) { Contract.Requires(makeTypedReference != null); this.TraverseChildren((IExpression)makeTypedReference); if (this.StopTraversal) return; this.Traverse(makeTypedReference.Operand); }
/// <summary> /// Returns a deep copy of the given make typed reference expression. /// </summary> /// <param name="makeTypedReference"></param> public MakeTypedReference Copy(IMakeTypedReference makeTypedReference) { Contract.Requires(makeTypedReference != null); Contract.Ensures(Contract.Result<MakeTypedReference>() != null); var mutableCopy = this.shallowCopier.Copy(makeTypedReference); this.CopyChildren((Expression)mutableCopy); mutableCopy.Operand = this.Copy(mutableCopy.Operand); return mutableCopy; }
/// <summary> /// Performs some computation with the given make typed reference expression. /// </summary> /// <param name="makeTypedReference"></param> public virtual void Visit(IMakeTypedReference makeTypedReference) { this.Visit((IExpression)makeTypedReference); }
public void Visit(IMakeTypedReference makeTypedReference) { throw new NotImplementedException(); }
/// <summary> /// Visits the specified make typed reference. /// </summary> /// <param name="makeTypedReference">The make typed reference.</param> public override void Visit(IMakeTypedReference makeTypedReference) { MakeTypedReference mutableMakeTypedReference = new MakeTypedReference(makeTypedReference); this.resultExpression = this.myCodeCopier.DeepCopy(mutableMakeTypedReference); }
public override void TraverseChildren(IMakeTypedReference makeTypedReference) { this.sourceEmitterOutput.Write("__makeref("); this.Traverse(makeTypedReference.Operand); this.sourceEmitterOutput.Write(")"); }
/// <summary> /// Returns a deep copy of the given make typed reference expression. /// </summary> /// <param name="makeTypedReference"></param> public MakeTypedReference Copy(IMakeTypedReference makeTypedReference) { var mutableCopy = this.shallowCopier.Copy(makeTypedReference); this.CopyChildren((Expression)mutableCopy); mutableCopy.Operand = this.Copy(mutableCopy.Operand); return mutableCopy; }
/// <summary> /// Visits the specified make typed reference. /// </summary> /// <param name="makeTypedReference">The make typed reference.</param> public override void Visit(IMakeTypedReference makeTypedReference) { MakeTypedReference mutableMakeTypedReference = makeTypedReference as MakeTypedReference; if (mutableMakeTypedReference == null) { this.resultExpression = makeTypedReference; return; } this.resultExpression = this.myCodeMutator.Visit(mutableMakeTypedReference); }