def mainloop(program,bracket_map): tape = Tape() pc = 0 while pc < len(program): code = program[pc] if code == ">": tape.advance() elif code == "<": tape.devance() elif code == "+": tape.inc() elif code == "-": tape.dec() elif code == ".": sys.stdout.write(chr(tape.get())) elif code == ",": tape.set(ord(sys.stdin.read(1))) elif code == "[" and tape.get() == 0: pc = bracket_map[pc] elif code == "]" and tape.get() != 0: pc = bracket_map[pc] pc += 1
def mainloop(program, bracket_map): pc = 0 tape = Tape() while pc < len(program): jitdriver.jit_merge_point(pc=pc, tape=tape, program=program,bracket_map=bracket_map) code = program[pc] if code == ">": tape.advance() elif code == "<": tape.devance() elif code == "+": tape.inc() elif code == "-": tape.dec() elif code == ".": # print os.write(1, chr(tape.get())) elif code == ",": # read from stdin tape.set(ord(os.read(0, 1)[0])) elif code == "[" and tape.get() == 0: # Skip forward to the matching ] pc = bracket_map[pc] elif code == "]" and tape.get() != 0: # Skip back to the matching [ pc = bracket_map[pc] pc += 1