Calculadora de pila

Una máquina de pila procesa instrucciones al apilar y desapilar valores en una pila interna. Un ejemplo sencillo de esto es una calculadora.

El argumento pasado a run(instructions) siempre será una cadena que contiene una serie de instrucciones.
El conjunto de instrucciones de la calculadora será el siguiente:

  • +: Extrae los últimos 2 valores de la pila, súmalos y coloca el resultado en la pila.
  • -: Extrae los últimos 2 valores de la pila, resta el valor de abajo al que está en la cima y coloca el resultado.
  • *: Extrae los últimos 2 valores, multiplícalos y coloca el resultado.
  • /: Extrae los últimos 2 valores, divide el que está en la cima entre el de abajo y coloca el resultado.
  • DUP: Duplica (no multiplica por dos) el valor que está en la cima de la pila.
  • POP: Extrae el último valor de la pila y descártalo.
  • PSH: Se realiza cada vez que aparece un número como instrucción. Coloca el número en la pila.
  • Cualquier otra instrucción (por ejemplo, una letra) debe producir el valor "Invalid instruction: [instruction]"

Ejemplos

StackCalc("") ➞ 0

StackCalc("5 6 +") ➞ 11

StackCalc("3 DUP +") ➞ 6

StackCalc("6 5 5 7 * - /") ➞ 5

StackCalc("x y +") ➞ Invalid instruction: x

Notas

  • Si no hay instrucciones, el valor debe permanecer en 0.
  • El valor de retorno de get value() debe ser el valor que está en la cima de la pila.