Advertisement
computermaster1248

Triple Threat Interpreter

Jun 29th, 2017
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.59 KB | None | 0 0
  1. STACKONE = []
  2. STACKTWO = []
  3. STACKTHREE = []
  4. LOG = []
  5. CHLOG = []
  6. A = 0
  7. B = 0
  8. C = 0
  9. DEPTH = 0
  10. CODE = 0
  11. LINE = 0
  12. CHAR = 0
  13. TMPCMD = 0
  14. CMD = 0
  15. DASH = 0
  16. def Push(stack,number):
  17.     stack.append(number)
  18. def SPop(stack):
  19.     if len(stack) == 0:
  20.             stack.append(0)
  21.     return stack.pop()
  22. import linecache
  23. import os
  24. linecache.clearcache()
  25. A = os.getcwd()
  26. print('Choose a Triple Threat program file in: ' + A)
  27. CODE = input("File name: ")
  28. CODE = A+"/"+CODE
  29. print(CODE)
  30. LINE=1
  31. while 1 == 1:
  32.     TMPCMD = linecache.getline(CODE, LINE)
  33.     CMD = TMPCMD[CHAR:CHAR+2]
  34.     if DEPTH == 0:
  35.         if CMD == '11':
  36.             Push(STACKONE,0)
  37.         if CMD == '22':
  38.             Push(STACKTWO,1)
  39.         if CMD == '33':
  40.             A = SPop(STACKTHREE)
  41.         if CMD == '12':
  42.             A = SPop(STACKONE)
  43.             Push(STACKTWO,A)
  44.         if CMD == '23':
  45.             if len(STACKTWO) == 0:
  46.                 C = input('> ')
  47.                 A = int(C)
  48.                 STACKTWO.append(A)
  49.             A = SPop(STACKTWO)
  50.             Push(STACKTHREE,A)
  51.         if CMD == '31':
  52.             A = SPop(STACKTHREE)
  53.             Push(STACKONE,A)
  54.             Push(STACKONE,A)
  55.         if CMD == '13':
  56.             A = SPop(STACKONE)
  57.             B = SPop(STACKTHREE)
  58.             C = A+B
  59.             Push(STACKTHREE,C)
  60.         if CMD == '21':
  61.             A = SPop(STACKONE)
  62.             B = SPop(STACKTWO)
  63.             C = A-B
  64.             Push(STACKONE,C)
  65.         if CMD == '32':
  66.             A = SPop(STACKTHREE)
  67.             B = SPop(STACKTWO)
  68.             Push(STACKTWO,A)
  69.             print(B)
  70.         if CMD == '10':
  71.             A = SPop(STACKONE)
  72.             if A == 0:
  73.                 DEPTH=DEPTH+1
  74.             else:
  75.                 Push(LOG,LINE)
  76.                 Push(CHLOG,CHAR)
  77.         if CMD == '30':
  78.             A = SPop(STACKTHREE)
  79.             if A != 0:
  80.                 B = SPop(LOG)
  81.                 Push(LOG,B)
  82.                 LINE = B
  83.                 C = SPop(CHLOG)
  84.                 Push(CHLOG,C)
  85.                 CHAR = C
  86.             else:
  87.                 B = SPop(LOG)
  88.                 C = SPop(CHLOG)
  89.         if CMD == '00':
  90.             break
  91.         if CMD == '':
  92.             break
  93.     else:
  94.         if CMD == '10':
  95.             DEPTH=DEPTH+1
  96.         if CMD == '30':
  97.             DEPTH=DEPTH-1
  98.         if CMD == '00':
  99.             DEPTH=0
  100.             break
  101.         if CMD == '':
  102.             DEPTH=0
  103.             break
  104.     DASH = TMPCMD[CHAR+2:CHAR+3]
  105.     if DASH == "-":
  106.         CHAR=CHAR+3
  107.     else:
  108.         CHAR=0
  109.         LINE = LINE + 1
  110. print('End of program.')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement