code: def ListComp(xp, fp, it, test=None):
      
      xp.prefix = u""
      fp.prefix = u" "
      it.prefix = u" "
      for_leaf = Leaf(token.NAME, u"for")
      for_leaf.prefix = u" "
      in_leaf = Leaf(token.NAME, u"in")
      in_leaf.prefix = u" "
      inner_args = [for_leaf, fp, in_leaf, it]
      if test:
          test.prefix = u" "
          if_leaf = Leaf(token.NAME, u"if")
          if_leaf.prefix = u" "
          inner_args.append(Node(syms.comp_if, [if_leaf, test]))
      inner = Node(syms.listmaker, [xp, Node(syms.comp_for, inner_args)])
      return Node(syms.atom,
                         [Leaf(token.LBRACE, u"["),
                          inner,
                          Leaf(token.RBRACE, u"]")])
docs: A list comprehension of the form [xp for fp in it if test].
  
      If test is None, the "if test" part is omitted.