Example #1
0
File: syntax.py Project: jwilk/jtc
 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
Example #2
0
File: syntax.py Project: jwilk/jtc
 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