def VM(code):
A = 0
J = 0
loop = []
P = {}
La = []
Jam = 0
Julia = code.split(" ")
while A < len(Julia):
if Julia[A] == "DEF":
if (P.get(Julia[A+1], False) == False):
P[Julia[A+1]] = None
if Julia[A] == "NUM":
if (P.get(Julia[A+1], False) == False):
P[Julia[A+1]] = 0
elif Julia[A] == "TEXT":
if (P.get(Julia[A+1], False) == False):
P[Julia[A+1]] = Julia[A+2]
elif Julia[A] == "RESET!":
if (P.get(Julia[A+1], False) != False):
P[Julia[A+1]] = P[Julia[A+2]]
elif Julia[A] == "ECHO":
if (P.get(Julia[A+1], False) != False):
print(P[Julia[A+1]],end="")
elif Julia[A] == "UP":
if (P.get(Julia[A+1], False) != False):
if P[Julia[A+1]] is None:
P[Julia[A+1]] = 0
P[Julia[A+1]] += 1
elif Julia[A] == "DOWN":
if (P.get(Julia[A+1], False) != False):
if P[Julia[A+1]] is None:
P[Julia[A+1]] = 0
P[Julia[A+1]] -= 1
elif Julia[A] == "LOOP-DO":
loop.append([Julia[A-1],A])
elif Julia[A] == "LOOP-END":
if P[loop[-1][0]] > 0:
A = loop[-1][1]
else:
loop.pop(-1)
elif Julia[A] == "⍳":
size = P[Julia[A+1]]
if size is None:
size = 0
La.append([None]*size)
elif Julia[A] == "/⍳":
size = P[Julia[A+1]]
if size is None:
size = 0
La.append(La[idx])
elif Julia[A] == "SETTO":
i = P[Julia[A+1]] or 0
j = P[Julia[A+2]] or 0
La[-1][i] = j
elif Julia[A] == "/SETTO":
i = P[Julia[A+1]] or 0
j = P[Julia[A+2]] or 0
La[-1][i] = La[j][i]
elif Julia[A] == "GETTO":
if (La[len(La)-1][P[Julia[A+1]]] is None) == False:
P[Julia[A+2]]=La[len(La)-1][P[Julia[A+1]]]
elif Julia[A] == "⍳GETTO":
if (P.get(Julia[A+1], False) == False):
P[Julia[A+1]] = La.pop()
elif Julia[A] == "SUM":
arr = P.pop(Julia[A+1])
Jam = sum(x for x in arr if x is not None)
P[Julia[A+1]] = Jam
A += 1
VM("""
DEF Q
NUM N NUM Na NUM Naa UP Na UP Na UP Naa
TEXT K Hello_world
DEF O UP O
DEF L UP L UP L UP L UP L
ECHO L ⍳ L
L LOOP-DO ECHO K DOWN L LOOP-END
SETTO N Na UP N SETTO N Naa
⍳GETTO Q
SUM Q
ECHO Q
""")
To embed this project on your website, copy the following code and paste it into your website's HTML: