wip array test file
This commit is contained in:
parent
9c746ad15b
commit
7232f95f7a
|
|
@ -0,0 +1,50 @@
|
|||
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;
|
||||
Loading…
Reference in New Issue