示例#1
0
        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);
 }
示例#7
0
 public IterDebugView(Iter node, Object parentProxy) : this(node, parentProxy, NodeDebuggabilityHelper.InferDebugProxyNameFromStackTrace())
 {
 }
示例#8
0
 public IterDebugView(Iter node) : this(node, null)
 {
 }
示例#9
0
 public IterDebugView_NoParent(Iter node, Object parentProxy, String name)
 {
     _node = node; _parentProxy = parentProxy; _name = name;
 }
示例#10
0
 public IterDebugView_NoParent(Iter node) : this(node, null)
 {
 }
 protected internal virtual Node TransformIter(Iter iter) { return iter.AcceptTransformer(this, true); }