RX0630

Dominio: Motor

Mensaje de error

un anidamiento más profundo de lo que cabe en la pila de la máquina: %s (%s)

En el mensaje, %s marca un valor que el motor completa cuando lanza el error.

La historia

Tu script anida tantas capas que no cabe en la pila de la máquina, y el motor se detuvo antes de que el proceso se cayera. Te explico. Cuando anidas llamadas, bloques, colecciones o ramas de match unas dentro de otras, cada nivel consume un poco de la pila. En rush no hay un límite artificial de profundidad: el límite lo marca tu propia máquina, leyendo su memoria. En una máquina real, eso son cientos de miles de niveles. Llegar ahí casi siempre indica un script generado por otro programa, o un error. Si el motor no lo detuviera, el proceso moriría de golpe. En cambio, lo rechaza por su nombre, e indica la línea. Un ejemplo: una expresión con cien mil paréntesis anidados. La solución es aplanar el anidamiento: guarda el valor interior en un nombre y úsalo después. O usa una máquina con más memoria. El mensaje te da el detalle.

Texto del catálogo de errores del motor de Rush.