- Gonzalo Rossin - 60135
- Alberto Abancens - 62581
- Mauro Daniel Sambartolomeo - 61279
- Juan Negro - 61225
Para construir el compilador, se requieren de las siguientes dependencias:
- Bison v3.8.2
- Cmake v3.22.2
- flex v2.6.4
- GCC V11.1.0
- Make v4.3
- Maven (cualquier version)
- Java v1.8
Es importante que la version de Java sea 1.8, ya que es necesario poder utilizar JavaX para reproducir los sonidos resultantes. Luego, si no se compila usando Java 1.8, no se podrá correr el programa final.
Para construir el proyecto por completo, ejecute en la raíz del repositorio el siguiente comando:
user@machine:path/ $ cmake -S . -B bin
user@machine:path/ $ cd bin
user@machine:path/ $ make
En un entorno Microsoft Windows, en lugar de ejecutar el comando make
, se deberá abrir la solución generada bin/Compiler.sln
con el IDE Microsoft Visual Studio 2022. Los ejecutables que este sistema construye se depositan dentro del directorio bin/Debug
y bin/Release
según corresponda.
El resultado de la compilación de un programa de nuestro lenguaje es un Proyecto Maven que incluye las dependencias necesarias para poder correr el programa. Estas son la dependencia JFugue y la librería nuestra para el lenguaje.
Para poder compilar programas en nuestro lenguaje y poder ejecutarlos, se provee un archivo llamado
compile.sh
, que toma los siguientes parámetros en orden:
- El nombre del archivo a compilar.
- El path donde se quiera copiar el directorio resultante.
Este script generará una carpeta output
en el directorio indicado o en su defecto en el directorio actual.
Por otro lado, una limitación actual del proyecto es que solo se puede compilar desde el directorio base del repositorio.
Si se intenta realizar en otro directorio, entonces la generación de código no podrá crear el proyecto Maven correctamente.
Esto se solucinará en un futuro con el uso de variables de entorno.
Luego, si se quiere ejecutar el programa, se debe entrar al proyecto resultante y ejecutar los siguientes comandos:
mvn clean package
java -jar target/TLA-Compiler-jar-with-dependencies.jar
Es importante recordar que si no se corren estos archivos con Java 1.8, entonces el programa fallará.