msambartolomeo / MusiCode

MusiCode - Toy programming language created with Flex and Bison for TLA

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TPE Teoría de lenguajes y autómatas

Autoría

  • Gonzalo Rossin - 60135
  • Alberto Abancens - 62581
  • Mauro Daniel Sambartolomeo - 61279
  • Juan Negro - 61225

Requerimientos

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.

Construcción

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.

Ejecución

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:

  1. El nombre del archivo a compilar.
  2. 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:

  1. mvn clean package
  2. 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á.

About

MusiCode - Toy programming language created with Flex and Bison for TLA


Languages

Language:C 74.5%Language:Java 10.1%Language:Yacc 8.4%Language:Lex 3.8%Language:CMake 2.3%Language:Shell 0.9%