Esempio n. 1
0
 def create_attr(self, frame, anchor, name):
   if name == 'send':
     return self.Send('generator.send', self, self.elemall, [ANY],
                      expts=[StopIterationType.maybe('might raise StopIteration')])
   if name == 'next':
     NoneType.get_object().connect(self.sent.recv)
     return self.Send('generator.next', self, self.elemall,
                      expts=[StopIterationType.maybe('might raise StopIteration')])
   if name == 'throw':
     # XXX do nothing for now
     return BuiltinConstMethod('generator.throw', NoneType.get_object(), [ANY], [ANY, ANY])
   if name == 'close':
     return self.Send('generator.close', self, NoneType.get_object(), [ANY])
   return IterObject.create_attr(self, frame, anchor, name)
Esempio n. 2
0
 def create_attr(self, frame, anchor, name):
     if name == 'next':
         return BuiltinConstMethod(
             'iter.next',
             self.elemall,
             expts=[StopIterationType.maybe('might raise StopIteration')])
     raise NodeAttrError(name)
Esempio n. 3
0
 def create_attr(self, frame, anchor, name):
     if name == 'send':
         return self.Send(
             'generator.send',
             self,
             self.elemall, [ANY],
             expts=[StopIterationType.maybe('might raise StopIteration')])
     if name == 'next':
         NoneType.get_object().connect(self.sent.recv)
         return self.Send(
             'generator.next',
             self,
             self.elemall,
             expts=[StopIterationType.maybe('might raise StopIteration')])
     if name == 'throw':
         # XXX do nothing for now
         return BuiltinConstMethod('generator.throw', NoneType.get_object(),
                                   [ANY], [ANY, ANY])
     if name == 'close':
         return self.Send('generator.close', self, NoneType.get_object(),
                          [ANY])
     return IterObject.create_attr(self, frame, anchor, name)
Esempio n. 4
0
 def create_attr(self, frame, anchor, name):
   if name == 'next':
     return BuiltinConstMethod('iter.next', self.elemall,
                               expts=[StopIterationType.maybe('might raise StopIteration')])
   raise NodeAttrError(name)