Una parodia lamentable de una calculadora

Evalúa una expresión aritmética sin espacios que contiene números y +, -, * o /, respetando la precedencia habitual de los operadores. Los números pueden comenzar con un signo menos y la división puede producir un resultado decimal.

calculator("23+4");       // 27
calculator("13+2-5*2");   // 5
calculator("49/7*2-3");   // 11
calculator("-34/4");      // -8.5

Las entradas no contienen paréntesis, espacios ni funciones matemáticas.