def visitIfExpFlat(self, n, target):
     #Setup Label
     caseLs, endIfL = generate_if_labels(1)
     elseL = caseLs[0]
     # Test Instructions
     test  = []
     test += self.dispatch(n.test, target)
     test += [Comp86(x86FALSE, target)]
     test += [JumpEqual86(elseL)]
     # Then Instructions
     then  = []
     then += self.dispatch(n.then, target)
     then += [Jump86(endIfL)]
     # Else Instructions
     else_ = []
     else_ += [Label86(elseL)]
     else_ += self.dispatch(n.else_, target)
     else_ += [Label86(endIfL)]
     return (test + [If86(then, else_)])
 def visitIf(self, n, func_name):
     #Setup Label
     caseLs, endIfL = generate_if_labels(len(n.tests))
     def make_branches(testlist, caseLs, else_):
         if testlist:
             test, body = testlist[0]
             tmp = Var86(generate_name(IFTEMP))
             tinstrs = self.dispatch(test, tmp)
             tinstrs += [Comp86(x86FALSE, tmp)]
             tinstrs += [JumpEqual86(caseLs[0])]
             
             ninstrs = self.dispatch(body, func_name)
             ninstrs += [Jump86(endIfL)]
             
             einstrs = [Label86(caseLs[0])] + make_branches(testlist[1:], caseLs[1:], else_)
             return tinstrs + [If86(ninstrs, einstrs)]
         else:
             instrs = self.dispatch(else_, func_name)
             instrs += [Label86(endIfL)]
             return instrs
     return make_branches(n.tests, caseLs, n.else_)