def visit_subscript(self, node, parent): """visit a Subscript node by returning a fresh instance of it""" newnode = new.Subscript() _lineno_parent(node, newnode, parent) subcontext, self.asscontext = self.asscontext, None newnode.value = self.visit(node.value, newnode) newnode.slice = self.visit(node.slice, newnode) self.asscontext = subcontext newnode.set_line_info(newnode.last_child()) return newnode
def visit_slice(self, node, parent): """visit a compiler.Slice by returning a astng.Subscript""" # compiler.Slice nodes represent astng.Subscript nodes # the astng.Subscript node has a astng.Slice node as child if node.flags == 'OP_DELETE': delnode = self._check_del_node(node, parent, [node]) if delnode: return delnode newnode = new.Subscript() self._set_infos(node, newnode, parent) newnode.value = self.visit(node.expr, newnode) newnode.slice = self.visit_sliceobj(node, newnode, slice=True) return newnode
def visit_subscript(self, node, parent): """visit a Subscript node by returning a fresh instance of it""" if node.flags == 'OP_DELETE': delnode = self._check_del_node(node, parent, [node]) if delnode: return delnode newnode = new.Subscript() self._set_infos(node, newnode, parent) self.asscontext, asscontext = None, self.asscontext newnode.value = self.visit(node.expr, newnode) if [n for n in node.subs if isinstance(n, Sliceobj)]: if len(node.subs) == 1: # Sliceobj -> new.Slice newnode.slice = self.visit_sliceobj(node.subs[0], newnode) else: # ExtSlice newnode.slice = self.visit_extslice(node, newnode) else: # Index newnode.slice = self.visit_index(node, newnode) self.asscontext = asscontext return newnode