Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- STACKONE = []
- STACKTWO = []
- LOG = []
- A = 0
- B = 0
- DEPTH = 0
- CODE = 0
- LINE = 0
- TMPCMD = 0
- CMD = 0
- def Push(stack,number):
- stack.append(number)
- def SPop(stack):
- if len(stack) == 0:
- stack.append(0)
- return stack.pop()
- def Overflow(num):
- while num > 255:
- num -= 256
- while num < 0:
- num += 256
- return num
- import linecache
- import os
- A = os.getcwd()
- print('Choose a Stack Up program file in: ' + A)
- CODE = input("File name: ")
- CODE = A+"/"+CODE
- print(CODE)
- while 1 == 1:
- LINE = LINE + 1
- TMPCMD = linecache.getline(CODE, LINE)
- CMD = TMPCMD[0:4]
- if DEPTH == 0:
- if CMD == 'NEW':
- Push(STACKONE,0)
- if CMD == 'CLN':
- A = SPop(STACKONE)
- Push(STACKONE,A)
- Push(STACKONE,A)
- if CMD == 'DEL':
- A = SPop(STACKONE)
- if CMD == 'SWP':
- A = SPop(STACKONE)
- B = SPop(STACKONE)
- Push(STACKONE,A)
- Push(STACKONE,B)
- if CMD == 'INC':
- A = SPop(STACKONE)
- A += 1
- A=Overflow(A)
- Push(STACKONE,A)
- if CMD == 'DEC':
- A = SPop(STACKONE)
- A -= 1
- A=Overflow(A)
- Push(STACKONE,A)
- if CMD == 'ADD':
- A = SPop(STACKONE)
- B = SPop(STACKONE)
- A += B
- A=Overflow(A)
- Push(STACKONE,A)
- if CMD == 'DIF':
- A = SPop(STACKONE)
- B = SPop(STACKONE)
- A -= B
- A=Overflow(A)
- Push(STACKONE,A)
- if CMD == 'PAS':
- A = SPop(STACKONE)
- Push(STACKTWO,A)
- if CMD == 'PSB':
- A = SPop(STACKTWO)
- Push(STACKONE,A)
- if CMD == 'INI':
- A = input("\n# ")
- A=Overflow(A)
- Push(int(A))
- if CMD == 'OUI':
- A = SPop(STACKONE)
- print(A,end="",flush=True)
- if CMD == 'INA':
- A = input("\n> ")
- A=Overflow(A)
- Push(ord(A[0]))
- if CMD == 'OUA':
- A = SPop(STACKONE)
- print(chr(A),end="",flush=True)
- if CMD == 'LOP':
- A = STACKONE[-1]
- if A == 0:
- DEPTH=DEPTH+1
- else:
- Push(LOG,LINE)
- if CMD == 'STP':
- A = STACKONE[-1]
- B = SPop(LOG)
- if A != 0:
- Push(LOG,B)
- LINE = B
- if CMD == 'END':
- break
- else:
- if CMD == 'LOP':
- DEPTH=DEPTH+1
- if CMD == 'STP':
- DEPTH=DEPTH-1
- if CMD == 'END':
- DEPTH=0
- break
- print('End of program.')
- linecache.clearcache()
Advertisement
Add Comment
Please, Sign In to add comment