4719
|
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
|