def if_else_branch(self): false_cond = self.pop() true_cond = self.pop() cond = self.pop() if cond: st = Stack(loader.substitute_tokens(true_cond), self.strings, self.functions) else: st = Stack(loader.substitute_tokens(false_cond), self.strings, self.functions)
def while_op(self): cond = self.pop() cond_address = self.pop() self.mem[cond_address] = True while self.mem[cond_address]: st = Stack(loader.substitute_tokens(cond), self.strings, self.functions)
def for_op(self): cond = self.pop() end = self.pop() start = self.pop() loop_index = self.pop() self.mem[loop_index] = start while int(self.mem[loop_index]) < num(end): st = Stack(loader.substitute_tokens(cond), self.strings, self.functions) self.mem[loop_index] = num(self.mem[loop_index]) + 1
def if_branch(self): true_cond = self.pop() cond = self.pop() if cond: st = Stack(loader.substitute_tokens(true_cond), self.strings, self.functions)