public override Node AcceptTransformer(AbstractHirTransformer transformer, bool forceDefaultImpl) { if (forceDefaultImpl) { var seq = transformer.Transform(Seq).AssertCast <Expression>(); var body = transformer.Transform(Body).AssertCast <Block>(); var visited = new Iter(seq, body); visited.Locals.SetElements(Locals.Select(loc => loc.DeepClone())); return(visited.HasProto(this)); } else { return(transformer.TransformIter(this).HasProto(this)); } }
protected internal virtual void TraverseIter(Iter iter) { iter.Unsupported(); }
protected internal override void TraverseIter(Iter iter) { Dispatch(iter); }
protected internal override Node TransformIter(Iter iter) { return Dispatch(iter); }
protected internal override void TraverseIter(Iter iter) { Traverse(iter.Seq); Traverse(iter.Body); Types.Add(iter, null); }
protected internal override void TraverseIter(Iter iter) { _writer.Write("foreach (var {0} in ", iter.Element); Traverse(iter.Seq); _writer.WriteLine(")"); Traverse(iter.Body); }
public IterDebugView(Iter node, Object parentProxy) : this(node, parentProxy, NodeDebuggabilityHelper.InferDebugProxyNameFromStackTrace()) { }
public IterDebugView(Iter node) : this(node, null) { }
public IterDebugView_NoParent(Iter node, Object parentProxy, String name) { _node = node; _parentProxy = parentProxy; _name = name; }
public IterDebugView_NoParent(Iter node) : this(node, null) { }
protected internal virtual Node TransformIter(Iter iter) { return iter.AcceptTransformer(this, true); }