Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- cachesize = 100
- cache = [0] * cachesize
- pointer = 0
- codeindex = 0
- loopindex = 0
- loop = False
- if len(sys.argv) < 2:
- exit()
- try:
- f = open(sys.argv[1], 'r')
- except IOError:
- print "File not found, aborting."
- raw_input()
- exit()
- code = f.read()
- cache[0] = 0
- codelength = len(code)
- while codeindex < codelength:
- char = code[codeindex]
- if char == '>':
- pointer += 1
- if pointer > cachesize:
- print "Error: attempted to exceed cache size"
- raw_input()
- exit()
- elif char == '<':
- pointer -= 1
- if pointer < 0:
- print "Error: attempted to go below index 0"
- raw_input()
- exit()
- elif char == '.':
- sys.stdout.write(str(chr(cache[pointer])))
- elif char == '+':
- cache[pointer] += 1
- if cache[pointer] > 255:
- print "Error: attempted to exceed byte value"
- raw_input()
- exit()
- elif char == '-':
- cache[pointer] -= 1
- if cache[pointer] < 0:
- print "Error: attempted to generate negative value"
- raw_input()
- exit()
- elif char == ',':
- cache[pointer] = ord(raw_input("Input: ")[0])
- elif char == '[':
- loop = True
- loopindex = codeindex
- elif char == ']':
- if not loop:
- print "Error: ended non-existant loop"
- raw_input()
- exit()
- elif cache[pointer] != 0:
- codeindex = loopindex
- continue
- codeindex += 1
- f.close()
- raw_input()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement