comparison bin/rawpy @ 4720:26d047c4a058

<mroman> mv raw.py bin/rawpy
author HackBot
date Thu, 31 Jul 2014 18:03:38 +0000
parents raw.py@d9b343af16ab
children bae2f2ac536b
comparison
equal deleted inserted replaced
4719:d9b343af16ab 4720:26d047c4a058
1 #!/usr/bin/python
2 import sys
3 if(len(sys.argv) > 1):
4 code = sys.argv[1]
5 else:
6 print "No, no...."
7 quit()
8
9 i = 0
10 l = len(code)
11 stack = []
12 ac = 0
13 regs = [0,0,0]
14 while i < l:
15 c = code[i]
16 if(c == '('):
17 stack.append(i)
18 elif(c == ')'):
19 if(ac != 0):
20 if(len(stack) > 0):
21 i = stack.pop()
22 continue
23 else:
24 print "No, no, no...."
25 quit()
26 elif(c == '+'):
27 ac += 1
28 elif(c == '-'):
29 ac -= 1
30 elif(c == 'O'):
31 print ac
32 elif(c == 'o'):
33 print chr(ac % 256)
34 elif(c == '*'):
35 ac = ac * 2
36 elif(c == '0'):
37 ac = regs[0]
38 elif(c == '1'):
39 ac = regs[1]
40 elif(c == '2'):
41 ac = regs[2]
42 elif(c == 'a'):
43 regs[0] = ac
44 elif(c == 'b'):
45 regs[1] = ac
46 elif(c == 'c'):
47 regs[2] = c
48 i += 1