public override void Visit(IYieldReturnStatement yieldReturnStatement) { if (Process(yieldReturnStatement)) { visitor.Visit(yieldReturnStatement); } base.Visit(yieldReturnStatement); }
public override bool Visit(IYieldReturnStatement statement, IStatement context) { _stack.Push(statement); try { return(base.Visit(statement, context)); } finally { _stack.Pop(); } }
public override void TraverseChildren(IYieldReturnStatement yieldReturnStatement) { this.PrintToken(VBToken.Indent); this.PrintToken(VBToken.YieldReturn); if (yieldReturnStatement.Expression != null) { this.PrintToken(VBToken.Space); this.Traverse(yieldReturnStatement.Expression); } this.PrintToken(VBToken.Semicolon); this.PrintToken(VBToken.NewLine); }
/// <summary> /// Traverses the children of the yield return statement. /// </summary> public virtual void TraverseChildren(IYieldReturnStatement yieldReturnStatement) { Contract.Requires(yieldReturnStatement != null); this.TraverseChildren((IStatement)yieldReturnStatement); if (this.StopTraversal) return; this.Traverse(yieldReturnStatement.Expression); }
/// <summary> /// Performs some computation with the given yield return statement. /// </summary> /// <param name="yieldReturnStatement"></param> public virtual void Visit(IYieldReturnStatement yieldReturnStatement) { }
public void Visit(IYieldReturnStatement yieldReturnStatement) { this.result = this.rewriter.Rewrite(yieldReturnStatement); }
TransformationImpact IStatementVisitor <TransformationImpact> .Visit(IYieldReturnStatement statement) { return(CalculateRefactorImpact(statement)); }
/// <summary> /// Returns a shallow copy of the given yield return statement. /// </summary> /// <param name="yieldReturnStatement"></param> public YieldReturnStatement Copy(IYieldReturnStatement yieldReturnStatement) { return new YieldReturnStatement(yieldReturnStatement); }
/// <summary> /// Visits the specified yield return statement. /// </summary> /// <param name="yieldReturnStatement">The yield return statement.</param> public override void Visit(IYieldReturnStatement yieldReturnStatement) { YieldReturnStatement mutableYieldReturnStatement = yieldReturnStatement as YieldReturnStatement; if (alwaysMakeACopy || mutableYieldReturnStatement == null) mutableYieldReturnStatement = new YieldReturnStatement(yieldReturnStatement); this.resultStatement = this.myCodeMutator.Visit(mutableYieldReturnStatement); }
public abstract void Translate(IYieldReturnStatement statement);
public override void TraverseChildren(IYieldReturnStatement yieldReturnStatement) { this.foundYield = true; if (this.foundAnonymousDelegate) this.StopTraversal = true; else base.TraverseChildren(yieldReturnStatement); }
public override void TraverseChildren(IYieldReturnStatement yieldReturnStatement) { this.foundYield = true; base.TraverseChildren(yieldReturnStatement); }
/// <summary> /// Replace a (yield return exp)with a new block of the form: /// { /// Fresh_Label:; /// this.current = exp; /// state = Fresh_state; /// return true; /// } /// and associate the newly generated Fresh_state with its entry point: Fresh_label. /// </summary> public override IStatement Rewrite(IYieldReturnStatement yieldReturnStatement) { BlockStatement blockStatement = new BlockStatement(); int state = this.stateNumber++; ExpressionStatement thisDotStateEqState = new ExpressionStatement() { Expression = new Assignment() { Source = new CompileTimeConstant() { Value = state, Type = this.host.PlatformType.SystemInt32 }, Target = new TargetExpression() { Definition = this.iteratorClosure.StateFieldReference, Instance = new ThisReference(), Type = this.host.PlatformType.SystemInt32 }, Type = this.host.PlatformType.SystemInt32, }, Locations = IteratorHelper.EnumerableIsEmpty(yieldReturnStatement.Locations) ? null : new List<ILocation>(yieldReturnStatement.Locations) }; blockStatement.Statements.Add(thisDotStateEqState); ExpressionStatement thisDotCurrentEqReturnExp = new ExpressionStatement() { Expression = new Assignment() { Source = yieldReturnStatement.Expression, Target = new TargetExpression() { Definition = this.iteratorClosure.CurrentFieldReference, Instance = new ThisReference(), Type = this.iteratorClosure.CurrentFieldReference.Type }, Type = this.iteratorClosure.CurrentFieldReference.Type } }; blockStatement.Statements.Add(thisDotCurrentEqReturnExp); ReturnStatement returnTrue = new ReturnStatement() { Expression = new CompileTimeConstant() { Value = true, Type = this.host.PlatformType.SystemBoolean } }; blockStatement.Statements.Add(returnTrue); LabeledStatement labeledStatement = new LabeledStatement() { Label = this.host.NameTable.GetNameFor("Label"+state), Statement = new EmptyStatement() }; blockStatement.Statements.Add(labeledStatement); this.stateEntries.Add(state, labeledStatement); return blockStatement; }
public override void Visit(IYieldReturnStatement yieldReturnStatement) { if(Process(yieldReturnStatement)){visitor.Visit(yieldReturnStatement);} base.Visit(yieldReturnStatement); }
public TransformationKind Visit(IYieldReturnStatement statement, ITransformationContext context) { throw new NotImplementedException(); }
/// <summary> /// Performs some computation with the given yield return statement. /// </summary> /// <param name="yieldReturnStatement"></param> public virtual void Visit(IYieldReturnStatement yieldReturnStatement) { this.Visit((IStatement)yieldReturnStatement); }
/// <summary> /// Generates IL for the specified yield return statement. /// </summary> /// <param name="yieldReturnStatement">The yield return statement.</param> public override void TraverseChildren(IYieldReturnStatement yieldReturnStatement) { Contract.Assume(false, "IYieldReturnStatement nodes must be replaced before trying to convert the Code Model to IL."); }
public void Visit(IYieldReturnStatement yieldReturnStatement) { throw new NotImplementedException(); }
public override void Visit(IYieldReturnStatement yieldReturnStatement) { allElements.Add(new InvokInfo(Traverser, "IYieldReturnStatement", yieldReturnStatement)); }
public virtual void onASTElement(IYieldReturnStatement yieldReturnStatement) { }
public bool Visit(IYieldReturnStatement statement, TContext context) { return(false); }
/// <summary> /// Returns a deep copy of the given yield return statement. /// </summary> /// <param name="yieldReturnStatement"></param> public YieldReturnStatement Copy(IYieldReturnStatement yieldReturnStatement) { var mutableCopy = this.shallowCopier.Copy(yieldReturnStatement); mutableCopy.Expression = this.Copy(mutableCopy.Expression); return mutableCopy; }
public void Visit(IYieldReturnStatement yieldReturnStatement) { this.result = this.copier.Copy(yieldReturnStatement); }
void IStatementVisitor.Visit(IYieldReturnStatement statement) { this.Translate(statement); }
public abstract TransformationImpact CalculateRefactorImpact(IYieldReturnStatement statement);
/// <summary> /// Rewrites the given yield return statement. /// </summary> /// <param name="yieldReturnStatement"></param> public virtual IStatement Rewrite(IYieldReturnStatement yieldReturnStatement) { var mutableYieldReturnStatement = yieldReturnStatement as YieldReturnStatement; if (mutableYieldReturnStatement == null) return yieldReturnStatement; this.RewriteChildren(mutableYieldReturnStatement); return mutableYieldReturnStatement; }
public override void TraverseChildren(IYieldReturnStatement yieldReturnStatement) { MethodEnter(yieldReturnStatement); base.TraverseChildren(yieldReturnStatement); MethodExit(); }
/// <summary> /// Rewrites the given yield return statement. /// </summary> /// <param name="yieldReturnStatement"></param> public virtual IStatement Rewrite(IYieldReturnStatement yieldReturnStatement) { return yieldReturnStatement; }
//^ ensures this.path.Count == old(this.path.Count); /// <summary> /// Traverses the given yield return statement. /// </summary> /// <param name="yieldReturnStatement"></param> public virtual void Visit(IYieldReturnStatement yieldReturnStatement) { if (this.stopTraversal) return; //^ int oldCount = this.path.Count; this.path.Push(yieldReturnStatement); this.Visit(yieldReturnStatement.Expression); //^ 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(); }
/// <summary> /// Returns a shallow copy of the given yield return statement. /// </summary> /// <param name="yieldReturnStatement"></param> public YieldReturnStatement Copy(IYieldReturnStatement yieldReturnStatement) { Contract.Requires(yieldReturnStatement != null); Contract.Ensures(Contract.Result<YieldReturnStatement>() != null); return new YieldReturnStatement(yieldReturnStatement); }
/// <summary> /// Traverses the yield return statement. /// </summary> public void Traverse(IYieldReturnStatement yieldReturnStatement) { Contract.Requires(yieldReturnStatement != null); if (this.preorderVisitor != null) this.preorderVisitor.Visit(yieldReturnStatement); if (this.StopTraversal) return; this.TraverseChildren(yieldReturnStatement); if (this.StopTraversal) return; if (this.postorderVisitor != null) this.postorderVisitor.Visit(yieldReturnStatement); }
/// <summary> /// Returns a deep copy of the given yield return statement. /// </summary> /// <param name="yieldReturnStatement"></param> public YieldReturnStatement Copy(IYieldReturnStatement yieldReturnStatement) { Contract.Requires(yieldReturnStatement != null); Contract.Ensures(Contract.Result<YieldReturnStatement>() != null); var mutableCopy = this.shallowCopier.Copy(yieldReturnStatement); mutableCopy.Expression = this.Copy(mutableCopy.Expression); return mutableCopy; }
public void Visit(IYieldReturnStatement yieldReturnStatement) { this.traverser.Traverse(yieldReturnStatement); }
public void Visit(IYieldReturnStatement yieldReturnStatement) { Contract.Requires(yieldReturnStatement != null); throw new NotImplementedException(); }
public abstract IStatement Transform(IYieldReturnStatement statement);
public override void TraverseChildren(IYieldReturnStatement yieldReturnStatement) { this.PrintToken(CSharpToken.Indent); this.PrintToken(CSharpToken.YieldReturn); if (yieldReturnStatement.Expression != null) { this.PrintToken(CSharpToken.Space); this.Traverse(yieldReturnStatement.Expression); } this.PrintToken(CSharpToken.Semicolon); this.PrintToken(CSharpToken.NewLine); }
/// <summary> /// /// </summary> /// <param name="yieldReturnStatement"></param> public YieldReturnStatement(IYieldReturnStatement yieldReturnStatement) : base(yieldReturnStatement) { this.expression = yieldReturnStatement.Expression; }
/// <summary> /// Visits the specified yield return statement. /// </summary> /// <param name="yieldReturnStatement">The yield return statement.</param> public override void Visit(IYieldReturnStatement yieldReturnStatement) { YieldReturnStatement mutableYieldReturnStatement = new YieldReturnStatement(yieldReturnStatement); this.resultStatement = this.myCodeCopier.DeepCopy(mutableYieldReturnStatement); }
/// <summary> /// Visits the specified yield return statement. /// </summary> /// <param name="yieldReturnStatement">The yield return statement.</param> public override void Visit(IYieldReturnStatement yieldReturnStatement) { YieldReturnStatement mutableYieldReturnStatement = yieldReturnStatement as YieldReturnStatement; if (mutableYieldReturnStatement == null) { this.resultStatement = yieldReturnStatement; return; } this.resultStatement = this.myCodeMutator.Visit(mutableYieldReturnStatement); }