Mercurial > repo
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 |