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 
 """)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: