code: def visit_statements(self, nodes):
      
      for node in nodes:
        if isinstance(node, gast.AST):
          self.to_prepend.append(deque())
          self.to_append.append(deque())
          node = self.visit(node)
          self.visit_statements(self.to_prepend.pop())
          if isinstance(node, gast.AST):
            self.to_insert[-1].append(node)
          elif node:
            self.to_insert[-1].extend(node)
          self.visit_statements(self.to_append.pop())
        else:
          self.to_insert[-1].append(node)
      return self.to_insert[-1]
docs: Visit a series of nodes in a node body.
  
      This function is factored out so that it can be called recursively on
      statements that are appended or prepended. This allows e.g. a nested
      expression to prepend a statement, and that statement can prepend a
      statement again, etc.
  
      Args:
        nodes: A list of statements.
  
      Returns:
        A list of transformed statements.