view 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
line wrap: on
line source

#!/usr/bin/python
import sys
if(len(sys.argv) > 1):
  code = sys.argv[1]
else:
 print "No, no...."
 quit()

i = 0
l = len(code)
stack = []
ac = 0
regs = [0,0,0]
while i < l:
 c = code[i]
 if(c == '('):
  stack.append(i)
 elif(c == ')'):
  if(ac != 0):
    if(len(stack) > 0):
      i = stack.pop()
      continue
    else:
      print "No, no, no...."
      quit()
 elif(c == '+'):
   ac += 1
 elif(c == '-'):
   ac -= 1
 elif(c == 'O'):
   print ac
 elif(c == 'o'):
   print chr(ac % 256)
 elif(c == '*'):
   ac = ac * 2
 elif(c == '0'):
   ac = regs[0]
 elif(c == '1'):
   ac = regs[1]
 elif(c == '2'):
   ac = regs[2]
 elif(c == 'a'):
   regs[0] = ac
 elif(c == 'b'):
   regs[1] = ac
 elif(c == 'c'):
   regs[2] = c
 i += 1