- Python 🐍: Modern syntax, Interpreted Languaje
Python 10.0 or higher needed
- Construcción de tabla de parseo SLR(1).
- Implementación de algoritmo de parsing SLR(1).
- Indicación de errores sintácticos.
- Implementación para la Indicación de errores gramaticales al evaluar las entradas en la tabla de parseo SLR(1), identificando conflictos en la tabla para gramáticas que no son SLR.
-
src
-
Automata.py
: Objectos Automatas y funcionalidades de los mismos -
drivers.py
: implemetaciones de pipelines (API) -
Lexer
postfix.py
: Implementación del algoritmo shunting yard para conversion de infix a postfix para regex.util.py
: funcinones auxiliaresTree.py
: Implementación de arbol de sintaxis y followpos.Thompson.py
: Implementación de algoritmo de Thompson para construccion de AFN's.Subconjuntos.py
: Implementación de algoritmo de construccion de subconjuntos.DirectCons.py
: Implementación de algoritmo de construccion directa de AFD.Min.py
: Implementación de algoritmo de minimizacion de AFD.YalexScanner.py
: Lectura de archivos .yalWriteScanner.py
: Escritor de Scanner
-
Parser
YaparProcessor.py
: Procesa los tokens de los archivos yaparYaparReader.py
: Lector de archivos Yalputil.py
: Objetos y funciones utilesLR0.py
: Objeto Automata LR0LR_Constructor.py
: Construccion de Automata LR0
-
-
out
: Dentro de esta carpeta se encuentran los archivos resultantes de las ejecuciones../out/AFD.png
: Con el AFD generado por el Yalex./out/LR0.png
: Con el Automata LR0 generado a partir del YAPar./out/Scanner.txt
: Con el Analizador lexico generado en base al yalex de entrada./out/tokens.txt
: Con los tokens leidos por el Scanner generado./out/yapar_tokens.txt
: Con los tokens leidos por el scanner de YAPar
-
Examples
: Ejemplos de ejecuciones para powershell de windows -
input
: Ejemplos de archivos de entrada para el Scanner. -
yalex
: Ejemplos de archivos yalex para lectura. -
yapar
: Ejemplos de archivos yapar para lectura. -
main.py
: Programa principal (Driver Program).
-
Instale las dependencias del projecto ejecutando
pip install -r requirements.txt
-
Ejecute el archivo
main.py
escribiendo como argumentos:- El arhivo YALex con la definicíon del analizador lexico.
- El arhivo YAPar con la definicíon del analizador sintactico.
- Un archivo de entrada para ambos generadores.
Ejemplo: py main.py Archivo.yal Archivo.yalp Archivo.txt
-
O ejecute alguno de los ejemplos predefinidos en la carpeta
Examples
Ejemplo: ./Examples/1
-
Se crearan varias carpetas
__pycache__
con compilados del codigo. -
Se crearan los siguientes archivos con el autput de la lectura del archivo YALex:
./out/AFD.png
: Con el AFD generado por el Yalex./out/LR0.png
: Con el Automata LR0 generado a partir del YAPar./out/Scanner.txt
: Con el Analizador lexico generado en base al yalex de entrada./out/tokens.txt
: Con los tokens leidos por el Scanner generado./out/yapar_tokens.txt
: Con los tokens leidos por el scanner de YAPar
-
En consola se imprimera una prueba del funcionamiento de las funciones FOLLOW y FIRST
Diego Cordova - 20212