Ejemplo n.º 1
0
def interpret(source):
	brackets = getBrackets(source)
	inv_brackets = {v:k for k, v in brackets.items()}
	
	t = Tape()
	
	ind = 0	
	while ind < len(source):
		if source[ind] == '>':
			t.right()
			ind += 1			
		elif source[ind] == '<':
			t.left()
			ind += 1
		elif source[ind] == '+':
			t.inc()
			ind += 1
		elif source[ind] == '-':
			t.dec()
			ind += 1
		elif source[ind] == '.':
			sys.stdout.write(t.getChar())
			ind += 1
		elif source[ind] == ',':
			t.putChar()
			ind += 1
		elif source[ind] == '[':
			if t.getNum() == 0:
				ind = brackets[ind]
			ind += 1
		elif source[ind] == ']':
			ind = inv_brackets[ind]