Update main.py
This commit is contained in:
parent
749ee8842e
commit
034f9320e1
20
main.py
20
main.py
@ -1,6 +1,7 @@
|
||||
pointer = 0
|
||||
cell = []
|
||||
code=""
|
||||
code = ""
|
||||
|
||||
|
||||
def main():
|
||||
"""Main function"""
|
||||
@ -9,7 +10,7 @@ def main():
|
||||
print("\n\n")
|
||||
if code != "":
|
||||
for i in range(len(code)):
|
||||
interpreter(code[i] ,i)
|
||||
interpreter(code[i], i)
|
||||
print("\n\n")
|
||||
|
||||
|
||||
@ -21,15 +22,17 @@ def interpreter(znak, i):
|
||||
- decrement (decrease by one) the byte at the data pointer.
|
||||
. output the byte at the data pointer.
|
||||
, accept one byte of input, storing its value in the byte at the data pointer.
|
||||
[ if the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command, jump it forward to the command after the matching ]
|
||||
] if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it back to the command after the matching [."""
|
||||
[ if the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command,
|
||||
jump it forward to the command after the matching ]
|
||||
] if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command,
|
||||
jump it back to the command after the matching [."""
|
||||
global code, cell, pointer
|
||||
match znak:
|
||||
case ">":
|
||||
pointer += 1
|
||||
case "<":
|
||||
pointer -= 1
|
||||
if pointer<0:
|
||||
if pointer < 0:
|
||||
pointer = 0
|
||||
case "+":
|
||||
try:
|
||||
@ -44,7 +47,7 @@ def interpreter(znak, i):
|
||||
cell.append(0)
|
||||
cell[pointer] -= 1
|
||||
case ".":
|
||||
if cell[pointer]==10 or cell[pointer]==13:
|
||||
if cell[pointer] == 10 or cell[pointer] == 13:
|
||||
print("\n")
|
||||
else:
|
||||
print(chr(cell[pointer]), end="")
|
||||
@ -55,9 +58,10 @@ def interpreter(znak, i):
|
||||
loop_end = code.find("]", i)
|
||||
if cell[pointer] != 0:
|
||||
loop_end = code.find("]", i)
|
||||
for a in range(0,cell[pointer]-1):
|
||||
for j in range(1,loop_end-loop_begin):
|
||||
for a in range(0, cell[pointer]-1):
|
||||
for j in range(1, loop_end-loop_begin):
|
||||
interpreter(code[loop_begin + j], loop_begin + j)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user