Proyecto Procesadores de Lenguajes
Objetivo
Escriba un analizador del lenguaje PL0 usando PEGjs así como las tecnologías vistas durante el curso: ECMA6, Node.js, expressJS, MongoDB, Mongoose, SASS, etc. La salida debe ser el árbol de análisis sintáctico del programa de entrada
Recursos
- Página de PEG.js
- Gramática de PL0 en la Wikipedia. No es forzoso ceñirse estrictamente a la misma, aunque debe ser similar.
En este repo GitHub Computing the AST for a calculator-like language using PEGjs puede encontrar un ejemplo (en Ruby/Sinatra) del que partir
[~/local/src/javascript/PLgrado/pegjscalc(develop)]$ pwd -P /Users/casiano/local/src/javascript/PLgrado/pegjscalc
- Su proyecto debe tener un aspecto similar a este despliegue en Heroku http://pegjspl0.herokuapp.com/ del repo "Computing the AST for a calculator-like language using PEGjs"
Mejoras
Pueden introducir las mejoras que les resulten interesantes. Siguen algunas sugerencias:
- Ampliación de la gramática de PL0:
- Se pide modificar la gramática del lenguaje PL/0 para que acepte las sentencias
if-then-else
y maneje argumentos en los procedimientos (PROCEDURE y CALL).
- Se pide modificar la gramática del lenguaje PL/0 para que acepte las sentencias
- Análisis semántico
- Comprobar que las variables han sido declaradas antes de su uso
- Comprobar que las llamadas tienen el mismo número de argumentos que en su declaración
- Uso de otras tecnologías, por ejemplo MathJax para poner fórmulas matemáticas en la documentación, Editores como Ace o codemirror para facilitar la entrada, realizar pruebas en el cliente y/o en el servidor, etc.
Proyectos Procesadores de Lenguajes 15/16
Recuerde ¡DEBE ENTREGAR SU PROYECTO EN EL REPO DE LA ORGANIZACIÓN!
- Equipo adrian_adexe
- Equipo edu-daniel
- Equipo ele-daniel-1
- Equipo equipo-com
- Equipo ga
- Equipo ivan_garcia
- Equipo juan-fran-2-0
- Equipo luisdaomar
- Equipo nataliealexis
- Equipo norberto_albano
- Equipo ra-team
- Equipo sergio-jonathan