Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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