PREFIX Klammer: p IS $0 Zeiger auf den Text return IS $1 match IS $2 tmp IS $3 c IS $4 Test GET return,:rJ PUSHJ tmp,:Stack:Reset JMP Weiter Schleife CMP tmp,c,'{' Falls "offnende Klammer BZ tmp,Auf CMP tmp,c,'(' BZ tmp,Auf CMP tmp,c,'[' BZ tmp,Auf CMP tmp,c,'<' BZ tmp,Auf CMP tmp,c,'}' Falls schlie"sende Klammer SET match,'{' BZ tmp,Zu CMP tmp,c,')' SET match,'(' BZ tmp,Zu CMP tmp,c,']' SET match,'[' BZ tmp,Zu CMP tmp,c,'>' SET match,'<' BZ tmp,Zu Weiter LDB c,p,0 sonst weiter ADD p,p,1 BNZ c,Schleife Schleifenende falls c=0 PUSHJ tmp,:Stack:IsEmpty Stack muss leer sein BZ tmp,Fehler Ok SET $0,1 R"uckgabe 1 = Ok PUT :rJ,return POP 1,0 Fehler SET $0,0 R"uckgabe 0 = Fehler PUT :rJ,return POP 1,0 Zu PUSHJ tmp,:Stack:IsEmpty falls nicht leer BNZ tmp,Fehler PUSHJ tmp,:Stack:Pop Zeichen holen CMP tmp,tmp,match und vergleichen BNZ tmp,Fehler JMP Weiter Auf PUSHJ tmp,:Stack:Push JMP Weiter