Update README.md
This commit is contained in:
parent
56b77e1fad
commit
d95aaade84
67
README.md
67
README.md
|
@ -1,43 +1,60 @@
|
||||||
# Compilador Flex/Bison
|
# BFBCompiler
|
||||||
|
|
||||||
Un compilador vacío construido con Flex y Bison.
|
Un compilador construído con Flex y Bison.
|
||||||
|
|
||||||
## Requerimientos
|
## Requerimientos
|
||||||
|
|
||||||
Para construir el compilador, se requieren las siguientes dependencias:
|
Para construir el compilador, se requieren las siguientes dependencias:
|
||||||
|
|
||||||
* [Bison v3.8.2](https://www.gnu.org/software/bison/)
|
## Tabla de contenidos
|
||||||
* [CMake v3.22.2](https://cmake.org/)
|
* [Requisitos](#requisitos)
|
||||||
* [Flex v2.6.4](https://github.com/westes/flex)
|
* [Compilación](#compilación)
|
||||||
* [GCC v11.1.0](https://gcc.gnu.org/)
|
* [Ejecución](#ejecución)
|
||||||
* [Make v4.3](https://www.gnu.org/software/make/)
|
* [Testeos](#tests)
|
||||||
|
|
||||||
|
## Requisitos <a name="requisitos"></a>
|
||||||
|
|
||||||
|
Debe instalar
|
||||||
|
|
||||||
|
- [Bison v3.8.2](https://www.gnu.org/software/bison/)
|
||||||
|
- [CMake v3.22.2](https://cmake.org/)
|
||||||
|
- [Flex v2.6.4](https://github.com/westes/flex)
|
||||||
|
- [GCC v11.1.0](https://gcc.gnu.org/)
|
||||||
|
- [Make v4.3](https://www.gnu.org/software/make/)
|
||||||
|
|
||||||
|
Estos se encuentran disponibles en el repositorio de la vasta mayoría de distribuciones de Linux/macOS.
|
||||||
|
|
||||||
Si en lugar de trabajar con un entorno _Linux_, se está construyendo el proyecto sobre un entorno _Microsoft 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_.
|
Si en lugar de trabajar con un entorno _Linux_, se está construyendo el proyecto sobre un entorno _Microsoft 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_.
|
||||||
|
|
||||||
## Construcción
|
## Compilación <a name="compilación"></a>
|
||||||
|
|
||||||
Para construir el proyecto por completo, ejecute en la raíz del repositorio el siguiente comando:
|
En Linux, para compilar todos los archivos, se debe ejecutar el script `compile.sh` (desde la carpeta raíz del proyecto).
|
||||||
|
|
||||||
|
En un entorno _Microsoft Windows_, en cambio, debe correr `cmake -S . -B bin` y se deberá abrir la solución generada `bin/Compiler.sln` con el IDE _Microsoft Visual Studio 2022_.
|
||||||
|
|
||||||
|
## Ejecución <a name="ejecución"></a>
|
||||||
|
|
||||||
|
Ahora, usted podrá pasarle un programa haciendo:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
user@machine:path/ $ cmake -S . -B bin
|
./run.sh ${PROGRAM}
|
||||||
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.
|
o también podría directamente escribir el programa:
|
||||||
|
|
||||||
## Ejecución
|
|
||||||
|
|
||||||
Para compilar un programa, primero cree un archivo vacío denominado `program` con el siguiente contenido:
|
|
||||||
|
|
||||||
```
|
|
||||||
123123 + 123 - 2 * (454 + 890 / 89)
|
|
||||||
```
|
|
||||||
|
|
||||||
Luego, ejecute el compilador desde el directorio raíz del proyecto, inyectando el programa desde la entrada estándard:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
user@machine:path/ $ cat program | bin/Compiler
|
./run.sh "fun x = x^2;"
|
||||||
```
|
```
|
||||||
|
|
||||||
Deberia obtener el resultado correcto de evaluar el programa anterior: `122318`.
|
## Testeos <a name="tests"></a>
|
||||||
|
|
||||||
|
Puede correrlos con:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ctest --test-dir bin
|
||||||
|
```
|
||||||
|
|
||||||
|
# Autores
|
||||||
|
- Barmasch, Juan Martín (61033)
|
||||||
|
- Bellver, Ezequiel (61268)
|
||||||
|
- Lo Coco, Santiago (61301)
|
||||||
|
|
Loading…
Reference in New Issue