Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Sarr = 0
- Sfmp = 0
- Sptr = 0
- Smax = 0
- Sfpt = 0
- def Sinit():
- Sarr = list()
- Sfmp = list()
- Sptr = 0
- Smax = 0
- Sfpt = 0
- def Srun(prgm,bdmm=0,bdcp=0,ovflcr=True):
- i = 0
- while i < len(prgm) and prgm[i]:
- if prgm[i] == ">":
- if Smax < bdmm or bdmm == 0:
- Sptr = Sptr + 1
- elif ovflcr:
- return -1
- if Sptr > (Smax - 1):
- Smax = Smax + 1
- Sarr[Sptr] = 0
- if prgm[i] == "<":
- if Sptr > 0:
- Sptr = Sptr - 1
- elif ovflcr:
- return -1
- if prgm[i] == "+":
- if Sarr[Sptr] < bdcp or bdmm == 0:
- Sarr[Sptr] = Sarr[Sptr] + 1
- elif ovflcr:
- return -1
- if prgm[i] == "-":
- if Sarr[Sptr] > 0:
- Sarr[Sptr] = Sarr[Sptr] - 1
- elif ovflcr:
- return -1
- if prgm[i] == "[":
- m = 0
- j = 1
- k = i + 1
- t = ""
- while j > 0:
- if prgm[k] == "[":
- j = j + 1
- if prgm[k] == "]":
- j = j - 1
- if j > 0:
- t[m] = prgm[k]
- if k == len(prgm) - 1:
- return -1
- m = m + 1
- k = k + 1
- Sfmp[Sfpt] = t
- Sfpt = Sfpt + 1
- while Sarr[Sptr] > 0:
- w = Srun(t,bdmm,bdcp,ovflcr)
- if w == -1:
- return -1
- i = i + w
- i = k + 1
- continue
- if prgm[i] == ",":
- Sarr[Sptr] = eval(input("???"))
- if ovflcr:
- return -1
- if Sarr[Sptr] >= bdcp:
- Sarr[Sptr] = bdcp - 1
- if prgm[i] == ".":
- print(str(unichr(Sarr[Sptr])))
- if prgm[i] == "*":
- if i == len(prgm) - 1:
- if ovflcr:
- return -1
- elif prgm[i + 1] == ">":
- prgm[i + 1] = "<"
- elif prgm[i + 1] == "<":
- prgm[i + 1] = "+"
- elif prgm[i + 1] == "+":
- prgm[i + 1] = "-"
- elif prgm[i + 1] == "-":
- prgm[i + 1] == "["
- elif prgm[i + 1] == "[":
- prgm[i + 1] = "]"
- elif prgm[i + 1] == "]":
- prgm[i + 1] = "*"
- elif prgm[i + 1] == "*":
- prgm[i + 1] = ">"
- if prgm[i] == "#":
- i = i + 1
- while i < len(prgm):
- if prgm[i] == "#":
- break
- i = i + 1
- if prgm[i] == "?":
- if Smax < bdmm:
- Sarr[Sptr] = Smax
- elif ovflcr:
- return -1
- if prgm[i] == "!":
- if Sarr[Sptr] < Sfpt:
- i = i + Srun(Sfmp[Sarr[Sptr]],bdmm,bdcp,ovflcr)
- elif ovflcr:
- return -1
- i = i + 1
- return i
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement