En la fábrica de juguetes de Santa, los elfos están desarrollando un lenguaje de programación llamado Santa.js 👨💻👩💻 basado en símbolos para controlar sus máquinas de juguetes 🚂.
Han creado un sistema de instrucciones simple y necesitan tu ayuda para construir un compilador que interprete estos símbolos.
El compilador trabaja con un contador que inicialmente tiene un valor de 0
. Las instrucciones modificarán el valor de este contador.
Instrucciones del lenguaje de los elfos en base a símbolos:
+
: Incrementa en1
el valor del contador.*
: Multiplica por2
el valor del contador.-
: Resta1
al valor del contador.%
: Marca un punto de retorno. No modifica el contador.<
: Vuelve atrás una vez a la última instrucción con el símbolo%
que haya visto. Si no hay un%
previo, no hace nada.¿
: Inicia un bloque condicional que se ejecuta si el contador es mayor a0
.?
: Finaliza un bloque condicional.
Crea una función compile
que reciba un string con las instrucciones del lenguaje y devuelve el resultado de ejecutarlas. Aquí tienes algunos ejemplos:
compile('++*-') // 3
// (1 + 1) * 2 - 1 = 3
compile('++%++<') // 6
// 1 + 1 + 1 + 1 + 1 + 1 = 6
compile('++<--') // 0
// 1 + 1 - 1 - 1 = 0
compile('++¿+?') // 3
// 1 + 1 + 1 = 3
compile('--¿+++?') // -2
// - 1 - 1 = -2