protected override Expression VisitExtension(Expression node) { if (node is YieldExpression || node is GeneratorExpression || node is FinallyFlowControlExpression) { // These should be rewritten last, when doing finaly compilation // for now, just walk them so we can find other nodes return(base.VisitExtension(node)); } GlobalVariableExpression global = node as GlobalVariableExpression; if (global != null) { return(RewriteGet(global)); } CodeContextExpression cc = node as CodeContextExpression; if (cc != null) { return(_context); } CodeContextScopeExpression ccs = node as CodeContextScopeExpression; if (ccs != null) { return(Rewrite(ccs)); } AssignmentExtensionExpression aee = node as AssignmentExtensionExpression; if (aee != null) { return(Rewrite(aee)); } // Must remove extension nodes because they could contain // one of the above node types. See, e.g. DeleteUnboundExpression return(Visit(node.ReduceExtensions())); }
protected internal virtual void PostWalk(CodeContextExpression node) { }
// CodeContextExpression protected internal virtual bool Walk(CodeContextExpression node) { return true; }
// CodeContextExpression protected internal virtual bool Walk(CodeContextExpression node) { return(true); }