Fire Link es un lenguaje de programación basado en el lore de la serie de videojuegos Dark Souls, diseñado para la cadena de electivas de área Lenguajes de Programación II y III (CI-4721, CI-4722), durante los trimestres Septiembre - Diciembre 2019 y Enero - Marzo 2020 en la Universidad Simón Bolívar.
- Germán Robayo (14-10924)
- Andrés Ignacio Torres (14-11082)
Puedes encontrar la especificación del lenguaje en español aquí.
Tras compilar con stack build, se puede ejecutar el compilador de la siguiente manera:
stack run -- <archivo> [<flag>]Donde:
archivo: es la ruta a un archivo.soulscon el código a compilarflag: es una opción de configuración válida, entre las que se encuentran:-so--symtable: imprime la tabla de símbolos, si el archivo contiene un programa válido-po--program: imprime el programa parseado, si el archivo contiene un programa válido-fo--frontend: imprime ambas opciones superiores: la tabla de símbolos y el programa parseado, si el archivo contiene un programa válido-to--tac: imprime la representación intermedia en código de tres direcciones (TAC) del programa, si el archivo contiene un programa válido-bo--blocks: imprime los bloques básicos del código de tres direcciones (TAC), si el archivo contiene un programa válido-go--graph: imprime el grafo de flujo asociado al programa, si el archivo contiene un programa válido-co--target-code: imprime el código final en MIPS asociado al programa, si el archivo contiene un programa válido
Si no se pasa ningún flag, el compilador imprime todo lo génerado: tabla de símbolos, programa, código intermedio, bloques básicos y grafo de flujo.
En el repositorio se incluye un pequeño script en bash para ejecutar en vivo un programa válido escrito en FireLink. Para poder ejecutarlo, spim debe estar instalado en la máquina y poder ejecutarse desde el $PATH.
Para ejecutarlo, se puede utilizar:
./runfirelink <archivo.souls>Si el archivo contiene un programa válido en FireLink, se ejecutará. En caso contrario, se reportará el error respectivo en la salida estandar.