SOFTWARE DE GENERACIÓN Y SIMULACIÓN DE TABLAS DE ANÁLISIS SINTÁCTICO (BURGRAM)
Portada > Manual de Usuario > Tutorial del sistema > Menú Análisis

Menú Análisis

Una vez que se tiene una gramática en la zona de texto, se puede realizar el análisis de dicha gramática en el sistema.

Los análisis se pueden realizar desde el menú de análisis o desde los botones de análisis (estos se encuentran indicados en la Figura 12).

LL1, SLR1, LR1 y LALR1

El primer paso para realizar cualquiera de los análisis que permite el sistema, es comprobar si la gramática está correctamente escrita en la zona de texto.

Para ello se seleccionará cualquiera de los análisis a realizar (desde el menú o desde los botones) y si aparece una nueva pestaña en la zona de análisis, la gramática estará bin formada.

En el caso de que contenga algún error, se mostrará el cuadro de dialogo que se puede ver en la siguiente figura (Figura 19) y no aparecerá una nueva pestaña en la zona de análisis.

Figura 19: Pantalla que indica que hay error en el análisis

Además en la zona de texto se resaltará la línea donde se encuentra el error.

Puede ser un error léxico, como se puede ver en la Figura 21, (falta una “r” en %start) o un error sintáctico (falta un “;” en la producción anterior) como se muestra en la Figura 20.

Una vez que se modifique la zona de texto desaparecerá la marca roja que resalta el error.

Figura 20: Pestaña con error sintáctico

Figura 21: Pestaña con error léxico

Simulación del análisis

Una vez creado al análisis (LL1, SLR1, LR1 o LALR1), se tendrá una nueva pestaña en la zona de análisis. La aplicación indicará el archivo de entrada que generó dicho análisis (a través del título de la pestaña) y el tipo de análisis que es (colocando el ratón encima de la pestaña). Esto se puede ver en la siguiente figura (Figura 22).

Figura 22: Información del análisis en la pestaña

Para cerrar un análisis creado, se pulsará el botón de cierre que se ve en la figura anterior (Figura 22).

En la siguiente figura (Figura 23) se puede ver una pestaña de análisis.

Figura 23: Pestaña de análisis LL1.

En los siguientes apartados, se explicará detalladamente los componentes de una pestaña de análisis.

Panel de control

En la parte de arriba se encuentra el panel de control del análisis. Este panel se compone de lo siguiente:

Entrada a analizar: Se introducirá la entrada de la que se quiere realizar la simulación del análisis. Se deberán de introducir cada uno de los tokens separados por un espacio. Una vez que se introduzca la entrada completa se puede pulsar la tecla INTRO para que comience el análisis.

Figura 24: Realizar el análisis de una entrada.

Enviar: En el caso de que no se haya pulsado INTRO tras introducir la entrada a analizar se pulsará enviar, para que comience el análisis. Si alguno de los tokens introducidos en la entrada no pertenece a la gramática, se informará al usuario a través de la pantalla de la figura 25.

Figura 25: Realizar el análisis de una entrada.

Adelante: Realizará un paso hacia delante en la simulación.

Atrás: Realizará un paso hacia atrás en la simulación.

Reset: Resetea la simulación, y la comienza desde el principio conservando la entrada introducida.

Informe: Obtiene un informe del análisis. Esto se verá en la sección 2.4.4.

Árbol de análisis

Dentro de la zona de análisis, en la parte izquierda se encuentra la zona donde se representará el árbol de análisis generado en la simulación.

Los componentes del árbol, se irán generando o eliminando a medida que se realizan los pasos en la simulación (se pulsa el botón adelante o atrás). Los terminales se representarán mediante elipses amarillas, mientras que los no terminales se representarán mediante un cuadrado con el fondo verde.

Figura 26: Pestaña con el panel de análisis.

Estado de la simulación

En la parte derecha de las pestañas de análisis, se encuentra la zona donde se muestra el estado actual de la simulación de la entrada, para el análisis:

Tabla de análisis: Tabla de análisis sintáctico generada.

Pila de análisis: Estado de la pila en el análisis.

Entrada de análisis: Estado de la entrada del análisis.

Producciones de salida: Producciones emitidas en el análisis

Estado del análisis: Representa el estado del análisis a través de un código de colores.

Blanco: El análisis no ha finalizado.

Rojo: Hay error en el análisis para la entrada seleccionada.

Verde: El análisis ha finalizado para la entrada introducida.

Autómata generado:

En el caso de que el análisis generado sea ascendente (LR1, SLR1 o LALR1) la aplicación muestra el autómata generado por dicho análisis. En la siguiente figura (Figura 27) se muestra el autómata generado para un análisis SLR1.

Figura 27: Análisis SLR1.

En el autómata generado se muestran los conjuntos de configuración con sus elementos (ítems).

En la zona de análisis, también existen unos selectores de tamaño para modificar el tamaño de las zonas que lo componen. Así, se podrá ver la información que se necesite en cada momento de manera sencilla. Estos selectores se encuentran indicados en la figura anterior (Figura 25).

Resultado de la simulación

Una vez que se comienza la simulación para una entrada en un análisis, se pueden obtener dos resultados.

Análisis correcto

Si la entrada introducida pertenece al lenguaje generado por la gramática analizada, en el cuadro de estado de análisis se mostrará el color verde, como se pude ver en la figura 28.

Figura 28: Análisis correcto

Error en el análisis

En el caso de que la entrada introducida en la simulación no pertenezca al lenguaje generado por la gramática, se mostrará el color rojo en el cuadro de estado, como se puede ver en la figura 29.

Figura 29: Error en el análisis

También se obtendrán errores en el análisis de una entrada, si el análisis generado tiene alguna casilla con varios valores diferentes. Este problema, se vio en la memoria, cuando en los análisis ascendentes ocurrían errores (REDUCIR/REDUCIR) o (DESPLAZAR/REDUCIR). Estos conflictos indicarán que la gramática no es adecuada para el análisis seleccionado. En la figura 27 se mostró un análisis SLR1, que no es SLR1 porque genera un conflicto (REDUCIR/REDUCIR) por distinto estado. Esto se representa en la tabla de análisis en rojo, y mediante un menú desplegable se pueden ver los dos acciones en conflicto como se muestra en la siguiente figura (Figura 30).

Figura 30: Conflictos en el análisis.

En el caso de que al simular una entrada se tenga que utilizar una celda de la tabla de análisis con un conflicto, se mostrará el error en el análisis.

Generar informe

La aplicación puede generar un informe del análisis realizado en tres formatos. Dependiendo de la utilidad que se le vaya a dar, se utilizará uno u otro.

HTML: En el caso de que se quiera mostrar el informe en una página Web, es lo más adecuado.

RTF: En el caso de que se quiera modificar el contenido del informe para añadir otros datos, o modificar los datos actuales, es el formato más adecuado.

PDF: Es el caso más interesante. Genera un informe que no se puede modificar, que ocupa poco espacio, y se puede ver en cualquier sistema a través del Acrobat Reader. En estos informes se muestra una cabecera indicando la fecha de aplicación y un pie de página que indica el número de página y el número de páginas totales. En el apéndice E se muestran ejemplos de estos informes.

Dependiendo del tipo de análisis que se haya realizado se realizará un informe de análisis descendente (para el análisis LL1) o un informe de análisis ascendente (para el análisis SLR1, LR1 o LALR1).

Informe de análisis descendente

En el análisis sintáctico descendente (LL1) se mostrará lo siguiente:

La gramática del análisis

El conjunto de terminales

El conjunto de no terminales

El símbolo de inicio

Las producciones de la gramática

El conjunto FIRST o iniciales

El conjunto FOLLOW o seguidores

La tabla de análisis sintáctico descendente.

En el caso de que se haya introducido una entrada para analizar, el resultado del análisis y el árbol de análisis generado.

Informes de análisis ascendente

En los análisis sintácticos ascendentes (SLR1, LR1 y LALR1) se mostrará lo siguiente:

La gramática del análisis.

La gramática ampliada.

El conjunto de terminales

El conjunto de no terminales

El símbolo de inicio

Las producciones de la gramática

El conjunto FIRST o iniciales

El conjunto FOLLOW o seguidores

La tabla de análisis sintáctico ascendente (tabla de ir_a y tabla de acción).

El autómata generado en el análisis.

En el caso de que se haya introducido una entrada para analizar, el resultado del análisis y el árbol de análisis generado.

Generación del análisis

Una vez que se generó un análisis se realiza el informe pulsando el botón informe del panel de control de análisis, como se vio en el capítulo 2.4.2.1.

Es importante observar el análisis realizado en la aplicación, para ver la estructura del autómata (si existe) y del árbol de análisis (si se ha realizado simulación), ya que la aplicación por defecto los mostrará en formato vertical pero se permite la opción de rotarlos para representarlos en formato vertical.

El primer paso es seleccionar el directorio donde se generarán los informes. Estos se almacenarán en la ubicación que se seleccione en la pantalla de la figura 31

Figura 31: Pantalla de selección de directorio donde se almacenan los informes.

En el caso de que el análisis sea ascendente (SLR1, LR1 o LALR1) se preguntará si se quiere rotar el autómata (para verlo en la página en formato horizontal) con la pantalla de la figura 32.

Figura 32: Pantalla que pregunta al usuario si quiere rotar el autómata.

En el caso de que se haya introducido una entrada a simular en el análisis (tanto ascendentes como descendentes) se preguntará si se desea rotar el árbol de análisis con la pantalla de la figura 33.

Figura 33: Pantalla que pregunta al usuario si quiere rotar el árbol de análisis.

En el caso de que los informes se hayan generado correctamente se mostraría la pantalla de la figura 34 donde se indica la ruta en la que se han creado los informes.

Figura 34: Pantalla que informa de la finalización de los análisis

En el caso de que los informes no se hayan podido generar, se mostraría la pantalla de la figura 35.

Figura 35: Pantalla que informa de que no se han generado los informes