def visit_assattr(self, node, parent):
     """visit a AssAttr node by returning a fresh instance of it"""
     assc, self.asscontext = self.asscontext, None
     newnode = new.AssAttr()
     _lineno_parent(node, newnode, parent)
     newnode.expr = self.visit(node.expr, newnode)
     self.asscontext = assc
     self._delayed_assattr.append(newnode)
     return newnode
 def visit_getattr(self, node, parent):
     """visit a Getattr node by returning a fresh instance of it"""
     if self.asscontext == "Del":
         # FIXME : maybe we should reintroduce and visit_delattr ?
         # for instance, deactivating asscontext
         newnode = new.DelAttr()
     elif self.asscontext == "Ass":
         # FIXME : maybe we should call visit_assattr ?
         newnode = new.AssAttr()
         self._delayed_assattr.append(newnode)
     else:
         newnode = new.Getattr()
     _lineno_parent(node, newnode, parent)
     asscontext, self.asscontext = self.asscontext, None
     newnode.expr = self.visit(node.value, newnode)
     self.asscontext = asscontext
     newnode.attrname = node.attr
     return newnode