code: def n_list_comp(self, node):
          
          p = self.prec
          self.prec = 27
          n = node[-1]
          assert n == 'list_iter'
          # find innermost node
          while n == 'list_iter':
              n = n[0] # recurse one step
              if   n == 'list_for':	n = n[3]
              elif n == 'list_if':	n = n[2]
              elif n == 'list_if_not': n = n[2]
          assert n == 'lc_body'
          if node[0].kind.startswith('BUILD_LIST'):
              start = len(self.f.getvalue())
              self.set_pos_info(node[0], start, start+1)
          self.write( '[ ')
          self.preorder(n[0]) # lc_body
          self.preorder(node[-1]) # for/if parts
          self.write( ' ]')
          self.prec = p
          self.prune()
docs: List comprehensions