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
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
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