3.0.0 • Published 4 months ago
scope-gomez-enrique v3.0.0
Lab Hello Compilers
Archivos de la práctica
Archivos de código:
- ast-build.js : Archivo que contiene las funciones que crean los árboles de cada expresión permitida en la calculadora.
- calc.js : archivo donde jison genera el parser.
- grammar.jison : archivo que contiene la gramática de la calculadora.
- lexer.l : archivo que contiene las expresiones regulares para leer los tokens.
- support-lib.js : archivo que contiene funciones implementadas para realizar operaciones de la calculadora.
- template.js : archivo con el template para calcular la ruta de donde se encuentra support-lib.js.
- transpile.js : archivo con la funcion transpile y todas las necesarias para su funcionamiento.
- calc2js.mjs : arhivo que contiene las opciones y comandos del ejecutable.
Archivos de test:
Dentro de la carpeta test se encuentran un archivo test.js que contiene el código para comparar en las pruebas, test-description.js que contiene los datos que se usan para cada prueba que se quiera hacer y una carpeta data que contiene todos los archivos de las 8 pruebas que se realizan para comprobar el correcto funcionamiento del programa.
- Ejecución:
- Para compilar el programa se debe de estar en la carpeta principal y ejecutar:
npm run compile
- Para ejecutar el programa y que muestre la salida por consola:
Se usa el comando 'transpile', que su finalidad es generar el código javaScript que genera el contenido del fichero que se le pasa. Por ello, se puede hacer un túnel con el comando node para ejecutar el resultado../bin/calc2js.mjs transpile <fichero>
Si se quiere que la salida de la ejecución sea en un archivo, se usa la opción -o con el nombre del archivo./bin/calc2js.mjs transpile <fichero> | node
Aunque para hacer las dos cosas a la vez, se puede usar -v para que muestre el código por pantalla también./bin/calc2js.mjs transpile <fichero_entrada> -o <fichero_salida>
./bin/calc2js.mjs transpile <fichero_entrada> -v -o <fichero_salida>
- Si se quiere crear todos los tests con los ejemplos que están en la carpeta examples:
npm createt
- Para ejecutar los test establecidos:
Y si se quiere utilizar mocha:npm run test
npm run testw
- Para compilar el programa se debe de estar en la carpeta principal y ejecutar:
References
- Repo ULL-ESIT-GRADOII-PL/esprima-pegjs-jsconfeu-talk
- crguezl/hello-jison
- Espree
- astexplorer.net demo
- idgrep.js
- Introducción a los Compiladores con Jison y Espree
3.0.0
4 months ago