def recv_target(self, src):
     for obj in src:
         if obj in self.received: continue
         self.received.add(obj)
         try:
             iterobj = obj.get_reversed(self.frame, self.anchor)
             frame1 = ExceptionCatcher(self.frame)
             frame1.add_handler(StopIterationType.get_typeobj())
             MethodCall(frame1, self.anchor, iterobj,
                        'next').connect(self.recv)
         except NodeTypeError:
             self.frame.raise_expt(ErrorConfig.NotIterable(obj))
     return
Beispiel #2
0
def IterElement(frame0, anchor, target):
    frame1 = ExceptionCatcher(frame0)
    frame1.add_handler(StopIterationType.get_typeobj())
    return MethodCall(frame1, anchor, IterRef(frame0, anchor, target), 'next')