Beispiel #1
0
 def visit_excepthandler(self, node, parent):
     """visit an ExceptHandler node by returning a fresh instance of it"""
     newnode = new.ExceptHandler()
     self._set_infos(node, newnode, parent)
     newnode.type = self.visit(node.type, newnode)
     newnode.name = self.visit(node.name, newnode)
     newnode.body = [self.visit(child, newnode) for child in node.body]
     return newnode
Beispiel #2
0
 def visit_excepthandler(self, node, parent):
     """visit an ExceptHandler node by returning a fresh instance of it"""
     newnode = new.ExceptHandler()
     _lineno_parent(node, newnode, parent)
     if node.type is not None:
         newnode.type = self.visit(node.type, newnode)
     if node.name is not None:
         newnode.name = self.visit_assname(node, newnode, node.name)
     newnode.body = [self.visit(child, newnode) for child in node.body]
     newnode.set_line_info(newnode.last_child())
     return newnode
Beispiel #3
0
 def _visit_excepthandler(self, parent, values):
     """build an ExceptHandler node from given values and visit children"""
     newnode = new.ExceptHandler()
     newnode.parent = parent
     exctype, excobj, body = values
     if exctype and exctype.lineno:
         newnode.fromlineno = exctype.lineno
     else:
         newnode.fromlineno = body.nodes[0].fromlineno - 1
     newnode.tolineno = body.nodes[-1].tolineno
     if excobj:
         newnode.blockstart_tolineno = excobj.tolineno
     elif exctype:
         newnode.blockstart_tolineno = exctype.tolineno
     else:
         newnode.blockstart_tolineno = newnode.fromlineno
     newnode.type = self.visit(exctype, newnode)
     self.asscontext = "Ass"
     newnode.name = self.visit(excobj, newnode)
     self.asscontext = None
     newnode.body = [self.visit(child, newnode) for child in body.nodes]
     return newnode