Bottler Flex Bison Compiler
Go to file
Santiago Lo Coco 9971e06286 Update use-case-14.b
Co-authored-by: Ezequiel Bellver <ebellver@itba.edu.ar>
Co-authored-by: Juan Barmasch <jbarmasch@itba.edu.ar>
2022-06-23 09:58:01 -03:00
doc Update use-case-14.b 2022-06-23 09:58:01 -03:00
src Remove 'derivative->error' 2022-06-23 08:33:55 -03:00
.gitignore Finish semantic-analysis, fix bugs and add mallocTable 2022-06-19 11:32:00 -03:00
CMakeLists.txt Update *.md 2022-06-22 22:47:39 -03:00
LICENSE.md Fix bugs 2022-05-28 15:38:02 -03:00
README.md Fix bugs 2022-06-22 23:18:53 -03:00
compile.sh Add compile.sh and run.sh 2022-04-20 11:31:26 -03:00
run.sh Fix some bugs and add informe.md 2022-06-20 21:03:34 -03:00

README.md

BFBCompiler

Un compilador construído con Flex y Bison.

Tabla de contenidos

Requerimientos

Debe instalar

Linux/macOS

Estos se encuentran disponibles en el repositorio de la vasta mayoría de distribuciones.

Una vez instalados bison, cmake, flex, gcc, make, octave y python debe instalar SymPy y el paquete symbolic de octave.

Se recomienda usar pip para instalar SymPy:

pip install --user sympy==1.5.1
export PATH="$PATH:$HOME/.local/bin"

Luego, debe instalar symbolic en octave corriendo:

octave

y una vez adentro

pkg install -forge symbolic

Windows

Se debe instalar Microsoft Visual Studio 2022 con las extensiones para desarrollar aplicaciones en C/C++, así como también las herramientas requeridas, con excepción del compilador GCC y la herramienta Make.

Consulte cómo instalar SymPy. La instalación de symbolic es idéntica al paso anterior.

Compilación

Linux/macOS

Para compilar todos los archivos, se debe ejecutar el script compile.sh (desde la carpeta raíz del proyecto).

Windows

Debe correr cmake -S . -B bin y luego abrir la solución generada bin/Compiler.sln con el IDE Microsoft Visual Studio 2022.

Ejecución

El paso anterior generará el ejecutable bin/BFBCompiler.

Usted puede pasarle tanto un archivo:

./bin/BFBCompiler ${FILE}

como entrada estándar:

echo "fun g = x^2;" | ./bin/BFBCompiler

Esto, a su vez, generará un archivo .m que debería correrse como:

octave bottler.m

Para que este proceso sea más fácil se le provee un archivo run.sh (que ejecuta la compilación y octave).

Ahora, usted podrá pasarle un programa haciendo:

./run.sh ${FILE}

o también podría directamente escribir el programa (como se mencionó antes):

./run.sh "fun g = x^2;"

Testeos

Puede correrlos con:

ctest --test-dir bin

De esta manera se correrán todos los casos de uso que aparecen en doc/examples.

Autores

  • Barmasch, Juan Martín (61033)
  • Bellver, Ezequiel (61268)
  • Lo Coco, Santiago (61301)