public override void VisitOutArgument <TExpression>(IOutArgument <TExpression> outArgument) { Value = new Argument() { OutArgument = new OutArgumentFactory(outArgument).Value }; }
public static void VisitOutArgumentChildren<TExpression>( IOutArgument<TExpression> outArgument, IGenericExpressionVisitor visitor) where TExpression : IExpression { VisitIfNotNull(outArgument.Expression, visitor); }
public override void Visit(IOutArgument outArgument) { if (Process(outArgument)) { visitor.Visit(outArgument); } base.Visit(outArgument); }
/// <summary> /// Returns a shallow copy of the given out argument expression. /// </summary> /// <param name="outArgument"></param> public OutArgument Copy(IOutArgument outArgument) { return new OutArgument(outArgument); }
public virtual void onASTElement(IOutArgument outArgument) { }
/// <summary> /// Rewrites the given out argument expression. /// </summary> /// <param name="outArgument"></param> public virtual IExpression Rewrite(IOutArgument outArgument) { var mutableOutArgument = outArgument as OutArgument; if (mutableOutArgument == null) return outArgument; this.RewriteChildren(mutableOutArgument); return mutableOutArgument; }
public void Visit(IOutArgument outArgument) { Contract.Requires(outArgument != null); throw new NotImplementedException(); }
/// <summary> /// /// </summary> /// <param name="outArgument"></param> public OutArgument(IOutArgument outArgument) : base(outArgument) { this.expression = outArgument.Expression; }
/// <summary> /// Generates IL for the specified out argument. /// </summary> /// <param name="outArgument">The out argument.</param> public override void TraverseChildren(IOutArgument outArgument) { this.LoadAddressOf(outArgument.Expression, null); }
public void Visit(IOutArgument outArgument) { this.traverser.Traverse(outArgument); }
public virtual void onASTElement(IOutArgument outArgument) { }
//^ ensures this.path.Count == old(this.path.Count); /// <summary> /// Traverses the given out argument expression. /// </summary> /// <param name="outArgument"></param> public virtual void Visit(IOutArgument outArgument) { if (this.stopTraversal) return; //^ int oldCount = this.path.Count; this.path.Push(outArgument); this.Visit(outArgument.Expression); //^ 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(); }
/// <summary> /// Rewrites the given out argument expression. /// </summary> /// <param name="outArgument"></param> public virtual IExpression Rewrite(IOutArgument outArgument) { return outArgument; }
public override void TraverseChildren(IOutArgument outArgument) { base.TraverseChildren(outArgument); ((OutArgument)outArgument).Type = outArgument.Type; }
public override void Visit(IOutArgument outArgument) { allElements.Add(new InvokInfo(Traverser, "IOutArgument", outArgument)); }
public override void TraverseChildren(IOutArgument outArgument) { base.TraverseChildren(outArgument); ((OutArgument)outArgument).Type = outArgument.Type; }
public void Visit(IOutArgument outArgument) { this.result = this.rewriter.Rewrite(outArgument); }
public void Visit(IOutArgument outArgument) { this.result = this.copier.Copy(outArgument); }
/// <summary> /// Traverses the out argument expression. /// </summary> public void Traverse(IOutArgument outArgument) { Contract.Requires(outArgument != null); if (this.preorderVisitor != null) this.preorderVisitor.Visit(outArgument); if (this.StopTraversal) return; this.TraverseChildren(outArgument); if (this.StopTraversal) return; if (this.postorderVisitor != null) this.postorderVisitor.Visit(outArgument); }
/// <summary> /// Returns a shallow copy of the given out argument expression. /// </summary> /// <param name="outArgument"></param> public OutArgument Copy(IOutArgument outArgument) { Contract.Requires(outArgument != null); Contract.Ensures(Contract.Result<OutArgument>() != null); return new OutArgument(outArgument); }
public override void Visit(IOutArgument outArgument) { if(Process(outArgument)){visitor.Visit(outArgument);} base.Visit(outArgument); }
public override void TraverseChildren(IOutArgument outArgument) { MethodEnter(outArgument); base.TraverseChildren(outArgument); MethodExit(); }
/// <summary> /// Returns a deep copy of the given out argument expression. /// </summary> /// <param name="outArgument"></param> public OutArgument Copy(IOutArgument outArgument) { Contract.Requires(outArgument != null); Contract.Ensures(Contract.Result<OutArgument>() != null); var mutableCopy = this.shallowCopier.Copy(outArgument); this.CopyChildren((Expression)mutableCopy); mutableCopy.Expression = this.Copy(mutableCopy.Expression); return mutableCopy; }
/// <summary> /// Performs some computation with the given out argument expression. /// </summary> /// <param name="outArgument"></param> public virtual void Visit(IOutArgument outArgument) { }
public virtual void VisitOutArgument <TExpression>(IOutArgument <TExpression> outArgument) where TExpression : IExpression { Visit(outArgument); }
/// <summary> /// Traverses the children of the out argument expression. /// </summary> public virtual void TraverseChildren(IOutArgument outArgument) { Contract.Requires(outArgument != null); this.TraverseChildren((IExpression)outArgument); if (this.StopTraversal) return; this.Traverse(outArgument.Expression); }
public override void VisitOutArgument <TExpression>(IOutArgument <TExpression> outArgument) { Steps.Add(new WriteMethodParameterModifier(ParameterModifier.Out)); Steps.Add(new WriteWhitespace()); Steps.Add(new WriteExpression <TExpression>(outArgument.Expression)); }
/// <summary> /// Performs some computation with the given out argument expression. /// </summary> /// <param name="outArgument"></param> public virtual void Visit(IOutArgument outArgument) { this.Visit((IExpression)outArgument); }
/// <summary> /// Performs some computation with the given out argument expression. /// </summary> /// <param name="outArgument"></param> public virtual void Visit(IOutArgument outArgument) { }
public void Visit(IOutArgument outArgument) { throw new NotImplementedException(); }
/// <summary> /// Visits the specified out argument. /// </summary> /// <param name="outArgument">The out argument.</param> public override void Visit(IOutArgument outArgument) { OutArgument mutableOutArgument = new OutArgument(outArgument); this.resultExpression = this.myCodeCopier.DeepCopy(mutableOutArgument); }
public override void TraverseChildren(IOutArgument outArgument) { base.TraverseChildren(outArgument); }
/// <summary> /// Returns a deep copy of the given out argument expression. /// </summary> /// <param name="outArgument"></param> public OutArgument Copy(IOutArgument outArgument) { var mutableCopy = this.shallowCopier.Copy(outArgument); this.CopyChildren((Expression)mutableCopy); mutableCopy.Expression = this.Copy(mutableCopy.Expression); return mutableCopy; }
public override void TraverseChildren(IOutArgument outArgument) { MethodEnter(outArgument); base.TraverseChildren(outArgument); MethodExit(); }
/// <summary> /// Visits the specified out argument. /// </summary> /// <param name="outArgument">The out argument.</param> public override void Visit(IOutArgument outArgument) { OutArgument mutableOutArgument = outArgument as OutArgument; if (alwaysMakeACopy || mutableOutArgument == null) mutableOutArgument = new OutArgument(outArgument); this.resultExpression = this.myCodeMutator.Visit(mutableOutArgument); }