El proyecto esta compuesto de un script python llamado 'tokens.py' y un archivo txt llamado 'matriz2.txt' el cual tiene la matriz de transición. Además se adjunta un archivo para ingresar la expresiones artiméticas llamado 'input.txt'.
- Tener una versión de python (v2.7.14 o superior)
- Visita el sitio web de python: https://www.python.org/downloads/
- Descarga la versión de tu preferencia
- Ejecuta el instalador y da siguiente en el asistente
- Marca la casilla "Añadir Python X.X al PATH". Esto te permitirá ejecutar Python directamente desde el símbolo del sistema.
- Abre una terminal que apunte a la dirección donde se encuentra el archivo 'tokens.py'
- Crea un txt con el nombre de 'input.txt' , este contendrá las expresiones aritméticas y comentarios
- Ejecuta el siguiente comando
python tokens.py
para iniciar el programa
Primero se diseño el AFD y a partir de este se lograron obtener las relaciones existentes entre estados y símbolos para posteriormente implementar la matriz, algunos estados no conectan con el estado de error 20 en el diagrama del AFD esto con el fin de no saturar el diagrama de arcos pero en la tabla de transiciones se establecio.
Para leer la matriz me apoye en la implementación que realizo el profesor Víctor Manuel de la Cueva Hernández en clase.
Se guardaron los símbolos en una ED de tipo diccionario que se encuentran en la primera fila del archvio 'matriz2.txt' Y además se guardaron los valores de la matriz en una lista bidimensional
Es importante señalar que cada columna de la matriz representa un simbolo mientras que las filas representan los estados. Los estados no están alineados o empatados a los valores de los subíndices de filas de la lista bidimensional por lo que en la implementación puede que no tenga mucho sentido los valores que tome la variable 'estado' en algunas situaciones.
Para movernos de un estado a otro en la matriz/lista bidimensional primero leemos un caracter del archivo 'input.txt' y de acuerdo a este símbolo buscamos en la lista de 'símbolos'(es un diccionario) su valor númerico, el cuál nos servira para realizar la transición de un estado a otro a partir del símbolo (Nota: el estado se inicializo en 0). Este proceso se realiza repetidas veces hasta que terminemos de leer por completo el archivo de entrada.