Lenguaje Alfred

A pesar de que Alfred es un lenguaje bastante flexible estructuralmente, sigue ciertas directrices a la hora de interpretar el código fuente de los programas.

Además, por convenio, todos los archivos que incluyan código fuente escrito en este lenguaje de programación deberán tener la extensión .alf.

Alfred

El archivo que contenga el flujo principal del programa ha de comenzar obligatoriamente con la palabra reservada Alfred. Además, esta palabra ha de ser única en todo el código fuente.

Cualquier otra instrucción que preceda a dicha palabra reservada generará un error de sintaxis parecido a este:

[🐛] (Línea: 1) Sintaxis inválida: ...

De este modo, si se desea generar un programa .alf vacío, el contenido será similar a este:

Alfred.

Comentarios

Como casi cualquier otro lenguaje de programación, Alfred acepta la inclusión de comentarios en el código. Aunque la semántica sea más que expresiva, en muchas ocasiones es recomendable, por no decir necesario, el uso de anotaciones.

Para ello, se disponen de los símbolos ( y ), los cuales encapsularán cualquier contenido que será ignorado a la hora de procesar el código.

(Los comentarios pueden ir precediendo a la palabra reservada Alfred)

Alfred. (También pueden ir intercalados entre instrucciones) Di "Buenos días, Sr. Wayne".

(Además, Alfred acepta comentarios
multilínea sin la necesidad de
caracteres especiales adicionales)

Advertencia

Hay que tener cuidado al comentar código. La ausencia de un paréntesis puede convertir tus instrucciones en simples anotaciones.

Alfred.
Di "Esto no es un comentario".
(Hay que intentar no olvidarse de cerrar los comentarios
Di "Esto es parte del comentario"
(Alfred ignorará cualquier código si éste es tratado como un comentario)
Di "Esto tampoco es parte de un comentario".

La ausencia de un paréntesis, es decir, si la cantidad total de pares de paréntesis es impar, Alfred generará una excepción similar a esta:

[🐛] Caracter inválido (1,~184): (

Instrucciones

Di

La instrucción Di permite mostrar un texto por pantalla. Cualquier argumento que se le pase será propiamente tratado para que se pueda mostrar por la salida estándar del sistema. Además, un nuevo salto de línea será añadido tras evaluar la instrucción.

Alfred. Di "Encantado de conocerte, Batman".
Resultado:
Encantado de conocerte, Batman

Atención

Los caracteres escapados tales como \n, \r o \t son tratados de manera literal, por lo que si deseas que se muestren por pantalla, sólamente has de usarlos como si de un editor de textos común se tratase.

Alfred. Di "\n no funciona como un salto de línea,
pero este mensaje va a ser multilínea. Además,
si deseas tabular algo (\t), has de hacerlo      de esta manera".
Resultado:
\n no funciona como un salto de línea,
pero este mensaje va a ser multilínea. Además,
si deseas tabular algo (\t), has de hacerlo      de esta manera

Escribe

De la misma manera que la instrucción Di, Escribe permite mostrar textos por la salida estándar del sistema. La única diferencia es que no se añade una salto de línea al evaluar la instrucción.

Esto es muy útil a la hora de concatenar textos.

Alfred. Escribe "Hola ", escribe "Mundo" y di "!".
Resultado:
Hola Mundo!

Pregunta

La instrucción Pregunta permite interactuar con la entrada estándar del sistema. Esta instrucción hace uso de un parámetro opcional, el cual corresponde al texto que va a ser mostrado antes de realizar la interacción con el teclado.

Alfred. Pregunta.
Alfred,
escribe "¿Cómo te llamas? " y pregunta.
(es similar a...)
Pregunta "¿Cómo te llamas? ".

Advertencia

Es posible que en algunos sistemas, teclas como el tabulador, el retorno o las flechas no sean correctamente tratadas y den como resultado a entradas similares a ^[[D o a ^D

El resultado es guardado en una variable especial propia de Alfred, llamada variable temporal, la cual solamente es accesible mediante la instrucción Guardalo en.

Guardalo en

La instrucción Guardalo en permite obtener el resultado de comandos tales como Pregunta, que hayan hecho uso de la variable temporal característica de Alfred.

Guardalo en toma como parámetro el nombre de la variable en la que se quiera almacenar la información perteneciente a la variable temporal.

Alfred. Pregunta "¿Cómo te llamas? ", guardalo en nombre,
escribe "Encantado de conocerte, " y di nombre.
Resultado:
¿Como te llamas? Bruce
Encantado de conocerte, Bruce