def to_py(self): label_else = bp.Label() label_endif = bp.Label() result = [(bp.SetLineno, self.y)] result += self.expression.to_py() result += bp.jump_if_false(label_else) result += self.then_s.to_py() result += [ (bp.JUMP_FORWARD, label_endif), (label_else, None), (bp.POP_TOP, None) ] result += self.else_s.to_py() result += (label_endif, None), return result
def to_py(self): loop_label = bp.Label() finally_label = bp.Label() end_label = bp.Label() result = [ (bp.SetLineno, self.y), (bp.JUMP_FORWARD, loop_label), (finally_label, None) ] result += self.finally_s.to_py() result += (loop_label, None), result += self.expression.to_py() result += bp.jump_if_false(end_label) result += self.then_s.to_py() result += [ (bp.JUMP_ABSOLUTE, finally_label), (end_label, None), (bp.POP_TOP, None) ] return result