Instrucciones del bytecode de Tyrel

Nombre Byte Descripción Argumentos Implementado?
dup 1 Duplica el primer elemento de la pila <value>
drop 2 Elimina el primer elemento de la pila <value>
swap 3 Intercambia 0: y 1: en la pila <value1> <value2>
clear 4 Limpia la pila
[ 5 Abre lista
] 6 Cierra lista
{ 7 Abre diccionario
} 8 Cierra diccionario
do 9 Ejecuta una acción (primitiva o bloque de código) <action>
if 10 Ejecuta una acción condicionalmente <action> <logical>
ifelse 11 Ejecuta una u otra acción condicionalmente <action_true> <action_false> <logical>
while 12 Realiza un loop mientras se cumple una condición
for 13 Realiza un loop sobre una lista
call 14 Llama a un método de un objeto <object> <name>
members 15 Obtiene el diccionario de miembros de un objeto <object>
new 16 Crea una nueva instancia de un objeto <type>
and 17 Operador AND lógico
or 18 Operador OR lógico
not 19 Operador NOT lógico
same 20 Compara dos valores según su posición de memoria
global 21 Obtiene el diccionario global
local 22 Obtiene el diccionario local
equal 23 Compara dos valores según representación
break 24 Interrumpe un for o while
continue 25 Continúa un for o while en la siguiente iteración
set 26 Asigna un valor a una clave de un diccionario
get 27 Obtiene el valor de una clave de un diccionario
dump 28 Muestra el contenido de la pila en pantalla
code 29 Compila una lista a un objeto de tipo bloque de código
assert 30 Arroja un error si el primer valor de la pila es false
context 31 Devuelve el diccionario apropiado (global o local) según el contexto
switch 32 Ejecuta una acción según un valor
uncode 33 Desensambla un bloque de código como lista
argset 34 Fija el número de argumentos de un procedimiento
argget 35 Lee el número de argumentos de un procedimiento
pushlocal 36 Crea un nuevo contexto local
poplocal 37 Sale del contexto local actual