RX0066

Dominio: Análisis sintáctico

Mensaje de error

el símbolo %s se invoca antes de declararse. Rush no admite referencias hacia adelante (%s)

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

La historia

Llamaste a una función en una línea que aparece antes de la línea donde la declaras. En rush, eso no se permite, y es a propósito. El orden en que declaras las cosas es el grafo de dependencias: lo que va primero no puede depender de lo que viene después. El nombre sí existe más abajo en el archivo, así que el motor no te dice que es un builtin desconocido, porque eso te mandaría a buscar algo que nunca debió existir. Te dice la verdad: lo estás usando antes de declararlo. Un ejemplo: en la línea cinco llamas a doble con un número, pero la función doble se declara en la línea diez. La solución es mover la declaración por encima de su primer uso. Una consecuencia: la recursión mutua, donde dos funciones se llaman entre sí, es imposible por diseño. Si tu programa lo necesita, repiensa la estructura. Declara primero, usa después, y el orden del archivo cuenta la historia de las dependencias.

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