str code = "++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++."; byte[10000] memory; nat mp = 0; // memory pointer nat ip = 0; // instruction pointer while (ip < code.length) { if (code[ip] == '>') { mp = mp + 1; } else if (code[ip] == '<') { mp = mp - 1; } else if (code[ip] == '+') { memory[mp] = memory[mp] + 1; } else if (code[ip] == '-') { memory[mp] = memory[mp] - 1; } else if (code[ip] == '.') { // console.write = memory[mp]; write = memory[mp]; } else if (code[ip] == ',') { // memory[mp] = console.read; memory[mp] = read; } else if (code[ip] == '[') { if(!memory[mp]) { nat nc = 1; while (nc > 0) { ip = ip + 1; if (code[ip] == '[') { nc = nc + 1; } else if (code[ip] == ']') { nc = nc - 1; } } } } else if (code[ip] == ']') { if (memory[mp]) { nat nc = 1; while (nc > 0) { ip = ip - 1; if (code[ip] == ']') { nc = nc + 1; } else if (code[ip] == '[') { nc = nc - 1; } } } } ip = ip + 1; } halt;