Mensaje de error
En el mensaje, %s marca un valor que el motor completa cuando lanza el error.
La historia
Escribiste una llamada a una función incorporada y el motor te frena antes de ejecutar nada. Mira bien el mensaje: te dice qué tipo esperaba y qué tipo recibió. Cada builtin declara de antemano qué tipo de dato admite cada parámetro. Por ejemplo, una suma espera números. Cuando el parser lee tu llamada, compara lo que le pasaste con lo que se declaró. Si no coinciden, para ahí mismo, en la fase de análisis, antes de ejecutar una sola línea. Eso es una buena noticia: el error se detecta temprano y no cuesta nada. Un ejemplo: si un builtin espera un número y tú le pasas un texto entre comillas, el motor dirá que esperaba un número y recibió un texto. La corrección es sencilla: cambia el argumento por uno del tipo que se espera, o convierte el valor antes de pasarlo. Si no estás seguro de qué tipo pide un builtin, consulta su declaración en builtins.feml. Quédate con esto: el motor no adivina ni convierte por su cuenta; te dice con claridad qué tipo quiere, y tú decides cómo dárselo.
Texto del catálogo de errores del motor de Rush.
