Está en la página 1de 39

Anagra 2.0.

Manual de Usuario

Anagra 2.0. Un entorno para el estudio de las fases de anlisis en el desarrollo de traductores

Manual de usuario

Realizado por: Ral Novoa Mnguez Dirigido por: Joaqun Ezpeleta Mateo

Dpto. Informtica e Ingeniera de Sistemas

Universidad de Zaragoza

-1-

Anagra 2.0. Manual de Usuario

Manual de Usuario
1. Introduccin
1.1. Gua de lectura del manual
La ejecucin de ANAGRA as como el uso de este manual, est dirigido a usuarios habituales de sistemas de ventanas (Windows, X-Windows,..). Los usuarios de ANAGRA son personas con conocimientos avanzados de informtica, por lo que la descripcin de las opciones es bastante tcnica. Esta aplicacin realiza el anlisis de gramticas para determinar su tipo, por lo que es conveniente un conocimiento general sobre este tema. Asimismo, el programa permite la simulacin de los analizadores sintcticos asociados a las gramticas con el fin de mostrar paso a paso como funcionan stos. Se incluyen tambin mtodos para la transformacin de gramticas en otras equivalentes para conseguir que las gramticas sean de un tipo determinado. Es conveniente la lectura de la seccin de procedimientos, con el fin de realizar las tareas de esta aplicacin, en caso de duda, con mayor seguridad. En caso de ejecucin errnea de estas opciones, existe una seccin de anlisis de errores, donde se proporciona al usuario una relacin de los errores ms frecuentes, su posible causa y su solucin.

1.2. Propsito
El propsito del documento actual es ofrecer una ayuda al futuro usuario de la aplicacin. En este documento se enunciarn todas las posibilidades que ofrece la aplicacin as como los pasos que hay que ejecutar para poder llevarlas a cabo. De igual manera se intentarn solucionar todos los posibles problemas que se plantean al usuario mediante el manejo e instalacin del programa. El propsito del software desarrollado es poder analizar gramticas, de manera que el usuario pueda reconocer si la gramtica que ha introducido al programa es del tipo LL(1), SLR(1), LR(1) LALR(1). Para cada uno de estos anlisis el programa mostrar todos los pasos ejecutados as como los resultados intermedios que se obtienen en la comprobacin del tipo de gramtica (tablas...), para que el usuario no slo sepa s una gramtica es de un tipo u otro, sino que adems pueda deducir por qu la gramtica no es de un tipo determinado. Por otra parte una vez que determinemos de qu tipo es la gramtica introducida podremos simular los distintos analizadores sintcticos asociados a dichas gramticas, introducindoles una entrada de smbolos y comprobando si dicha entrada es reconocida o no por la gramtica. Es este caso tendremos dos opciones, una de ellas ser ver todo el proceso de anlisis de la entrada viendo todas las estructuras internas que se utilizan en el anlisis. La segunda opcin de simulacin ser la introduccin directa del conjunto de smbolos a analizar, y el programa nos dir directamente si dicha entrada es reconocida o no por la gramtica pero sin entrar en ningn tipo de detalles de porque es as. Para ambas opciones podremos obtener el rbol de sintaxis resultante de la simulacin. Adems el programa nos da la posibilidad de operar sobre las gramticas editndolas y aplicando sobre ellas distintas transformaciones (que se vern mas adelante) de modo que generen otras gramticas equivalentes que se adapten as a un tipo concreto de gramtica.

-2-

Anagra 2.0. Manual de Usuario Tambin nos ofrece el programa los conjuntos PRI y SIG de los smbolos de la gramtica y obtener el conjunto PRI de una determinada forma de frase formada por smbolos de la gramtica.

1.3. Visin general del documento


Este manual comprende unas secciones introductorias acerca de la herramienta y sus funcionalidades (seccin 1). En la seccin 2 podemos encontrar la descripcin funcional del software en s, esto es qu hace cada una de las opciones que podremos elegir al ejecutar nuestra aplicacin, as como precauciones que debemos tomar al ejecutarlas y una lista de errores, posibles causas y comportamientos de la aplicacin si estos sucedieran.Tambin se hace una referencia a la descripcin de entradas y resultados para cada una de las operaciones implementadas. En la seccin 3 encontramos un tutorial del sistema que describe la manera de poder realizar todos los procedimientos descritos en la seccin 2.

2. Descripcin funcional del software


2.1. Procedimientos y precauciones
2.1.1. Apertura de la gramtica
Previos Aplicacin inicializada con xito. Aparicin de un dilogo de apertura de fichero donde seleccionaremos el fichero de la gramtica que queremos abrir.

Resultados tras la apertura de la gramtica Ejecucin exitosa: Gramtica mostrada en pantalla, y calculados sus conjuntos PRI y SIG. Ejecucin errnea: Ver errores de apertura de gramtica.

2.1.2. Edicin de la gramtica


Previos Aplicacin inicializada con xito (si se desea escribir la gramtica). Apertura correcta de la gramtica (si se desea modificar una gramtica ya abierta).

Resultados tras la edicin de la gramtica Ejecucin exitosa: Gramtica editada mostrada en pantalla, y calculados sus conjuntos PRI y SIG. Ejecucin errnea: Ver errores de edicin de gramticas.

-3-

Anagra 2.0. Manual de Usuario

2.1.3. Calculo del conjunto PRI de una forma de frase


Previos Apertura o edicin correcta de la gramtica. Aparicin de la ventana donde se introduce la forma de frase. Introducimos la forma de frase que queremos analizar.

Resultados tras el clculo del conjunto PRI de una forma de frase Ejecucin exitosa: Muestra en pantalla del conjunto de smbolos PRI correspondiente a la forma de frase que hemos introducido. Ejecucin errnea: Ver errores del clculo del conjunto PRI de una forma de frase.

2.1.4. Transformaciones de las gramticas


Previos Apertura o edicin correcta de la gramtica. Seleccin del men del tipo de transformacin que queremos aplicar.

Resultados tras el clculo del conjunto PRI de una forma de frase Ejecucin exitosa: Gramtica equivalente mostrada en una ventana aparte. Tambin quedan calculados los conjuntos PRI y SIG de la nueva gramtica. Ejecucin errnea: Ver errores de transformacin de gramticas.

2.1.5. Anlisis LL(1)


Previos Apertura o edicin correcta de la gramtica.

Resultados tras el anlisis LL(1) Ejecucin exitosa: Se muestra en pantalla la tabla del anlisis LL(1) correspondiente a dicha gramtica. En esta tabla se especifica si la gramtica es o no del tipo LL(1) y las causas. Ejecucin errnea: Ver errores del anlisis LL(1).

2.1.6. Ver tabla de anlisis LL(1)


Previos Gramtica analizada segn el tipo LL(1). -4-

Anagra 2.0. Manual de Usuario

Resultados tras ver la tabla de anlisis LL(1) Ejecucin exitosa: La tabla de anlisis LL(1) se muestra en pantalla. Ejecucin errnea: Ver errores de Ver tabla de anlisis LL(1).

2.1.7. Anlisis SLR(1)


Previos Apertura o edicin correcta de la gramtica.

Resultados tras el anlisis SLR(1) Ejecucin exitosa: Se muestra en pantalla la gramtica ampliada utilizada durante el anlisis, la tabla de anlisis SLR(1) y el autmata de conjuntos de configuraciones LR(0) en modo grfico y en modo texto correspondientes a dicha gramtica. En la tabla se especifica si la gramtica es o no del tipo SLR(1) y las causas de ello. Ejecucin errnea: Ver errores del anlisis SLR(1).

2.1.8. Ver tabla de anlisis y el autmata SLR(1)


Previos Gramtica analizada segn el tipo SLR(1).

Resultados tras ver la tabla y el autmata SLR(1) Ejecucin exitosa: La gramtica ampliada utilizada durante el anlisis, la tabla del anlisis SLR(1) y el autmata de conjuntos de configuraciones LR(0) en modo grfico y en modo texto correspondientes a dicha gramtica se muestran en pantalla. Ejecucin errnea: Ver errores de Ver tabla de anlisis SLR(1).

2.1.9. Anlisis LR(1)


Previos Apertura o edicin correcta de la gramtica.

Resultados tras el anlisis LR(1) Ejecucin exitosa: Se muestra en pantalla la gramtica ampliada utilizada durante el anlisis, la tabla de anlisis LR(1) y el autmata de conjuntos de configuraciones LR(1) en modo grfico y

-5-

Anagra 2.0. Manual de Usuario en modo texto correspondientes a dicha gramtica. En la tabla se especifica si la gramtica es o no del tipo LR(1) y las causas de ello. Ejecucin errnea: Ver errores del anlisis LR(1).

2.1.10. Ver tabla de anlisis y el autmata LR(1)


Previos Gramtica analizada segn el tipo LR(1).

Resultados tras ver la tabla y el autmata LR(1) Ejecucin exitosa: La gramtica ampliada utilizada durante el anlisis, la tabla del anlisis LR(1) y el autmata de conjuntos de configuraciones LR(1) en modo grfico y en modo texto correspondientes a dicha gramtica se muestran en pantalla. Ejecucin errnea: Ver errores de Ver tabla de anlisis LR(1).

2.1.11. Anlisis LALR(1)


Previos Apertura o edicin correcta de la gramtica.

Resultados tras el anlisis LALR(1) Ejecucin exitosa: Se muestra en pantalla la gramtica ampliada utilizada durante el anlisis, la tabla de anlisis LALR(1) y el autmata de conjuntos de configuraciones LR(0) en modo grfico y en modo texto correspondientes a dicha gramtica. En la tabla se especifica si la gramtica es o no del tipo LALR(1) y las causas de ello. Ejecucin errnea: Ver errores del anlisis LALR(1).

2.1.12. Ver tabla de anlisis y el autmata LALR(1)


Previos Gramtica analizada segn el tipo LALR(1).

Resultados tras ver la tabla y el autmata LALR(1) Ejecucin exitosa: La gramtica ampliada utilizada durante el anlisis, la tabla del anlisis LALR(1) y el autmata de conjuntos de configuraciones LR(0) en modo grfico y en modo texto correspondientes a dicha gramtica se muestran en pantalla. Ejecucin errnea: Ver errores de Ver tabla de anlisis LALR(1).

-6-

Anagra 2.0. Manual de Usuario

2.1.13. Simular entrada LL(1)


Previos Gramtica analizada segn el tipo LL(1). Gramtica correspondiente al tipo LL(1). Aparicin de la ventana donde introducimos la frase que va a ser simulada para ver si es reconocida por la gramtica.

Resultados tras simular entrada LL(1) Ejecucin exitosa: Se muestra en pantalla las estructuras necesarias en la simulacin (pila de smbolos, producciones emitidas y entrada del simulador) y cada vez que se presiona sobre el botn de simular 1 paso se ejecuta un paso de la simulacin y se actualizan los valores de las estructuras. Asimismo, a la vez que se ejecuta la simulacin se muestra el rbol de sintaxis asociado a la entrada que se est comprobando. Se determina si la entrada es aceptada por la gramtica segn el analizador LL(1) o no. Ejecucin errnea: Ver errores de simular entrada LL(1).

2.1.14. Simular entrada SLR(1)


Previos Gramtica analizada segn el tipo SLR(1). Gramtica correspondiente al tipo SLR(1). Aparicin de la ventana donde introducimos la frase que va a ser simulada para ver si es reconocida por la gramtica.

Resultados tras simular entrada LL(1) Ejecucin exitosa: Se muestra en pantalla las estructuras necesarias en la simulacin (pila de smbolos, producciones emitidas y entrada del simulador) y cada vez que se presiona sobre el botn de simular 1 paso se ejecuta un paso de la simulacin y se actualizan los valores de las estructuras. Asimismo, a la vez que se ejecuta la simulacin se muestra el rbol de sintaxis asociado a la entrada que se est comprobando. Se determina si la entrada es aceptada por la gramtica segn el analizador SLR(1) o no. Ejecucin errnea: Ver errores de simular entrada SLR(1).

2.1.15. Simular entrada LR(1)


Previos Gramtica analizada segn el tipo LR(1). Gramtica correspondiente al tipo LR(1).

-7-

Anagra 2.0. Manual de Usuario Aparicin de la ventana donde introducimos la frase que va a ser simulada para ver si es reconocida por la gramtica.

Resultados tras simular entrada LR(1) Ejecucin exitosa: Se muestra en pantalla las estructuras necesarias en la simulacin (pila de smbolos, producciones emitidas y entrada del simulador) y cada vez que se presiona sobre el botn de simular 1 paso se ejecuta un paso de la simulacin y se actualizan los valores de las estructuras. Asimismo, a la vez que se ejecuta la simulacin se muestra el rbol de sintaxis asociado a la entrada que se est comprobando. Se determina si la entrada es aceptada por la gramtica segn el analizador LR(1) o no. Ejecucin errnea: Ver errores de simular entrada LR(1).

2.1.16. Simular entrada LALR(1)


Previos Gramtica analizada segn el tipo LALR(1). Gramtica correspondiente al tipo LALR(1). Aparicin de la ventana donde introducimos la frase que va a ser simulada para ver si es reconocida por la gramtica.

Resultados tras simular entrada LALR(1) Ejecucin exitosa: Se muestra en pantalla las estructuras necesarias en la simulacin (pila de smbolos, producciones emitidas y entrada del simulador) y cada vez que se presiona sobre el botn de simular 1 paso se ejecuta un paso de la simulacin y se actualizan los valores de las estructuras. Asimismo, a la vez que se ejecuta la simulacin se muestra el rbol de sintaxis asociado a la entrada que se est comprobando. Se determina si la entrada es aceptada por la gramtica segn el analizador LALR(1) o no. Ejecucin errnea: Ver errores de simular entrada LALR(1).

2.1.17. Comprobar entrada


Previos Gramtica analizada, como mnimo, por uno de los cuatro tipos (LL(1), SLR(1), LR(1) y LALR(1)). Gramtica correspondiente, como mnimo, a uno de los cuatro tipos (LL(1), SLR(1), LR(1) y LALR(1)). Aparicin de la ventana donde introducimos la frase que va a ser simulada para ver si es reconocida por la gramtica, el tipo de analizador que utilizaremos y si queremos obtener el rbol de sintaxis o no.

Resultados tras comprobar entrada Ejecucin exitosa:

-8-

Anagra 2.0. Manual de Usuario Se muestra en pantalla si la entrada es reconocida o no por el analizador sintctico que hemos elegido asociado a la gramtica. Asimismo se mostrar una nueva ventana con el rbol de sintaxis obtenido, si as se ha especificado. Ejecucin errnea: Ver errores de comprobar entrada.

2.2. Errores y posibles causas


Se muestran ahora una relacin de los diferentes tipos de error que se pueden dar al elegir la opcin que las precede. Estos errores estn numerados y su especificacin consta del nombre del error, cabecera del mensaje que nos aparece por pantalla al producirse un error, la explicacin del error en s, una generalizacin de las posibles causas por las que se ha producido y el resultado que desencadena. Al producirse un error aparecer una ventana indicando el error producido. En dicha ventana habr un botn de Aceptar que desencadenar los resultados producidos por el error. Un ejemplo de esta ventana se muestra en la figura siguiente:

2.2.1. Apertura de la gramtica


ERROR 1: Error sintctico Cabecera del mensaje de error: Error en el fichero de la gramtica. Mensaje de error que aparece en pantalla: Error sintctico en la gramtica, lnea x, columna y. Causas: Error sintctico en el fichero del que se quiere leer la gramtica que usar ANAGRA. Resultados del error: Se abre el fichero pero solo se permite su edicin. Para poder analizar la gramtica y transformarla se deber de presionar la opcin Aceptar gramtica del men Edicin para volver a ver la correccin de la gramtica. ERROR 2: Error lxico Cabecera del mensaje de error: Error en el fichero de la gramtica. Mensaje de error que aparece en pantalla: Error lxico en la gramtica, lnea x, columna y. Causas: Error lxico en el fichero del que se quiere leer la gramtica que usar ANAGRA. Resultados del error: Se abre el fichero pero solo se permite su edicin. Para poder analizar la gramtica y transformarla se deber de presionar la opcin Aceptar gramtica del men Edicin para volver a ver la correccin de la gramtica. ERROR 3: Token desconocido Cabecera del mensaje de error: Error en el fichero de la gramtica. Mensaje de error que aparece en pantalla: Token no definido: tk, linea x, columna y.

-9-

Anagra 2.0. Manual de Usuario Causas: Se ha localizado en la gramtica que se quiere usar, un smbolo terminal que no ha sigo definido como tal en la gramtica y es un smbolo no literal. Resultados del error: Se abre el fichero pero solo se permite su edicin. Para poder analizar la gramtica y transformarla se deber de presionar la opcin Aceptar gramtica del men Edicin para volver a ver la correccin de la gramtica. ERROR 4: Fichero no encontrado Cabecera del mensaje de error: Error en el fichero de la gramtica. Mensaje de error que aparece en pantalla: Fichero no encontrado. Causas: El fichero que se especific para su lectura no ha sido encontrado. Resultados del error: Se aborta la operacin de apertura del fichero.

2.2.2. Edicin de la gramtica


ERROR 1: Error sintctico Cabecera del mensaje de error: Error en la gramtica introducida. Mensaje de error que aparece en pantalla: Error sintctico en la gramtica, lnea x, columna y. Causas: Error sintctico en la gramtica que ha sido editada. Resultados del error: Continua la operacin de edicin de la gramtica hasta que se eliminen los errores o desestime su edicin. ERROR 2: Error lxico Cabecera del mensaje de error: Error en la gramtica introducida. Mensaje de error que aparece en pantalla: Error lxico en la gramtica, lnea x, columna y. Causas: Error lxico en la gramtica que ha sido editada. Resultados del error: Continua la operacin de edicin de la gramtica hasta que se eliminen los errores o desestime su edicin. ERROR 3: Token desconocido Cabecera del mensaje de error: Error en la gramtica introducida. Mensaje de error que aparece en pantalla: Token no definido: tk, linea x, columna y. Causas: Se ha localizado en la gramtica que ha sido editada, un smbolo terminal que no ha sigo definido como tal en la gramtica y es un smbolo no literal. Resultados del error: Continua la operacin de edicin de la gramtica hasta que se eliminen los errores o desestime su edicin.

2.2.3. Clculo del conjunto PRI de una forma de frase


ERROR 1: Forma de frase incorrecta Cabecera del mensaje de error: Error en la forma de frase. Mensaje de error que aparece en pantalla: Smbolo x no perteneciente a la gramtica. Causas: Algn smbolo de la forma de frase introducida no pertenece la gramtica. Resultados del error: Continua activa la ventana de obtencin del conjunto PRI de una forma de frase a la espera de que la forma de frase introducida sea correcta.

2.2.4. Transformaciones de la gramtica


Al realizar la transformacin de eliminacin de lo anulables puede aparecer el siguiente mensaje de aviso: -10-

Anagra 2.0. Manual de Usuario

AVISO1: La gramtica reconoce a la palabra vaca en la eliminacin de anulables Cabecera del mensaje de error: ATENCIN !!!. Mensaje de error que aparece en pantalla: La gramtica que desea transformar reconoce la palabra vaca, por lo que la gramtica resultante contendr tambin a la palabra vaca. Causas: La gramtica que se desea transformar reconoce a la palabra vaca. Resultados del aviso: Si se elige la opcin de continuar la transformacin, la gramtica resultante reconocer tambin a la palabra vaca, siendo el smbolo inicial el nico no terminal anulable de la gramtica. En caso contrario de se anular la transformacin y se volver a la pantalla inicial.

2.2.5. Simular entrada LL(1)


ERROR 1: Entrada no reconocida por la gramtica Cabecera del mensaje de error: Error en la entrada del simulador. Mensaje de error que aparece en pantalla: La entrada NO es reconocida por la gramtica. Causas: La forma de frase que introducimos no es reconocida por la gramtica. Resultados del error: Se mantiene visible la ventana del simulador para que se puedan observar las distintas estructuras con el fin de razonar el error producido. La nica posibilidad que se puede realizar en este momento es cerrar la ventana del simulador.

2.2.6. Simular entrada SLR(1)


ERROR 1: Entrada no reconocida por la gramtica Cabecera del mensaje de error: Error en la entrada del simulador. Mensaje de error que aparece en pantalla: La entrada NO es reconocida por la gramtica. Causas: La forma de frase que introducimos no es reconocida por la gramtica. Resultados del error: Se mantiene visible la ventana del simulador para que se puedan observar las distintas estructuras con el fin de razonar el error producido. La nica posibilidad que se puede realizar en este momento es cerrar la ventana del simulador.

2.2.7. Simular entrada LR(1)


ERROR 1: Entrada no reconocida por la gramtica Cabecera del mensaje de error: Error en la entrada del simulador. Mensaje de error que aparece en pantalla: La entrada NO es reconocida por la gramtica. Causas: La forma de frase que introducimos no es reconocida por la gramtica. Resultados del error: Se mantiene visible la ventana del simulador para que se puedan observar las distintas estructuras con el fin de razonar el error producido. La nica posibilidad que se puede realizar en este momento es cerrar la ventana del simulador.

-11-

Anagra 2.0. Manual de Usuario

2.2.8. Simular entrada LALR(1)


ERROR 1: Entrada no reconocida por la gramtica Cabecera del mensaje de error: Error en la entrada del simulador. Mensaje de error que aparece en pantalla: La entrada NO es reconocida por la gramtica. Causas: La forma de frase que introducimos no es reconocida por la gramtica. Resultados del error: Se mantiene visible la ventana del simulador para que se puedan observar las distintas estructuras con el fin de razonar el error producido. La nica posibilidad que se puede realizar en este momento es cerrar la ventana del simulador.

2.2.9. Comprobar entrada


ERROR 1: Entrada no reconocida por la gramtica Cabecera del mensaje de error: Error en la entrada del simulador. Mensaje de error que aparece en pantalla: La entrada NO es reconocida por la gramtica. Causas: La forma de frase que introducimos no es reconocida por la gramtica. Resultados del error: La nica posibilidad que se puede realizar en este momento es cerrar la ventana donde se muestra la forma de frase a simular y el tipo de analizador.

2.2.10. Salir de la aplicacin


Cuando salimos de la aplicacin con la opcin Salir del men Gramtica, aparece un mensaje en el que se advierte que todas las ventanas de la aplicacin sern cerradas perdindose los datos que no hayan sido guardados en disco.

-12-

Anagra 2.0. Manual de Usuario

3. Tutorial del sistema


Una vez que la aplicacin est en funcionamiento el usuario se encuentra ante una pantalla que a partir de ahora denominaremos Pantalla Principal (ver Figura 1).

-13-

Anagra 2.0. Manual de Usuario

Figura 1: Pantalla Principal.

-14-

Anagra 2.0. Manual de Usuario Esta pantalla consta de una serie de mens que ofrecen al usuario todas las posibilidades de la aplicacin, un cuadro de texto donde se muestra la gramtica con la que estamos trabajando, una barra de estado donde se muestra el estado del editor (escritura, lectura) y la lnea y columna donde se encuentra el cursor, y un cuadro de texto en la parte inferior donde se va informando de las operaciones que se realizan. Los mens desplegables que aparecen en la Pantalla Principal se detallan en los puntos siguientes.

3.1. Men Gramtica


Lo primero que tenemos que hacer para trabajar con ANAGRA es disponer de una gramtica sobre la que poder operar. Para ello tenemos dos posibilidades: la podemos obtener desde un fichero o la podemos escribir nosotros mismos.

3.1.1. Nueva (CTRL+N)


Esta opcin crea una ventana nueva ventana independiente de la actual donde se puede trabajar con otra gramtica distinta.

3.1.2. Abrir (CTRL+O)


Esta opcin permite obtener la gramtica con la que vamos a trabajar de un fichero que seleccionaremos de un cuadro de dilogo de apertura de fichero. El formato de dicho fichero aparece en el punto 3.10. Formatos de entrada del presente documento. En la figura 2 aparece un cuadro de dilogo de apertura de fichero:

Figura 2: Dilogo de apertura de fichero Una vez que hayamos seleccionado la gramtica y esta no sea errnea, se mostrar en la Pantalla Principal.

3.1.3. Editar (CTRL+E)


La segunda posibilidad que tenemos es escribir la gramtica nosotros mismos. Para ello utilizaremos esta opcin del men. Al arrancar la aplicacin ya estamos en modo edicin. Utilizaremos esta opcin para modificar una gramtica abierta anteriormente o editada

-15-

Anagra 2.0. Manual de Usuario anteriormente y que ya hayan sido comprobadas. Cuando una gramtica se comprueba que es correcta pasa a modo lectura para poder actuar con ella.

3.1.4. Cerrar (CTRL+W)


Con esta opcin se cierra la ventana actual perdindose toda aquella informacin que no haya sido guardada.

3.1.5. Guardar (CTRL+G)


Con esta opcin se guarda la gramtica actual de trabajo en disco. Si la gramtica ya haba sido guardada previamente o haba sido leda de disco, se guardar automticamente. En caso contrario de comportar como la opcin Guardar como explicada en el apartado siguiente.

3.1.6. Guardar como


Esta opcin permite lo mismo que la anterior pero dando la opcin de que el fichero donde se guarde la gramtica sea introducido. En la figura 3 aparece un dilogo de ejemplo:

Figura 3: Dilogo guardar como...

3.1.7. Salir (CTRL + Q)


Provoca el cierre de todas las ventanas abiertas de la aplicacin y la prdida de toda aquella informacin que no haya sido guardada. Aparece un dilogo recordndonos esto ltimo y dndonos la posibilidad de continuar la operacin o cancelarla. En la figura 4 aparece este dilogo:

-16-

Anagra 2.0. Manual de Usuario

Figura 4: Dilogo de salida de la aplicacin

3.2. Men Edicin


Este men solo aparece presente cuando se ha activado el modo edicin presionado la opcin Editar del men Gramtica.

3.2.1. Cortar (CTRL + X)


Borra el trozo de texto seleccionado del rea de edicin de la gramtica y lo copia en el portapapeles del sistema.

3.2.2. Copiar (CTRL + C)


Copia el trozo de texto seleccionado del rea de edicin de la gramtica al portapapeles del sistema.

3.2.3. Pegar (CTRL + V)


Pega el contenido del portapapeles en el rea de edicin de la gramtica.

3.2.4. Borrar
Borra el trozo de texto seleccionado.

3.2.5. Seleccionar todo (CTRL+A)


Selecciona todo el texto introducido en el rea de edicin de gramticas.

3.2.7. Aceptar Gramtica


Se ha de presionar esta opcin cuando se haya terminado de editar la gramtica y se quiera poder utilizar las opciones de anlisis y transformacin sobre ella. Una vez presionado se verificar la correccin de la gramtica editada. Si es correcta finalizar el modo edicin. En caso contrario se mostrar un mensaje de error, permaneciendo en el modo edicin.

3.2.8. Desestimar Gramtica


Esta opcin sirve para olvidar los cambios hechos durante la edicin de la gramtica y volver a la gramtica antes de ser editada. Si no haba ninguna gramtica anterior no hace nada.

3.3. Men Buscar


3.3.1. Buscar (CTRL + B)
Esta opcin muestra el cuadro de dilogo de la figura 5. Sirve para realizar la bsqueda de determinado texto siguiendo diferentes opciones.

-17-

Anagra 2.0. Manual de Usuario

Figura 5: Dilogo Buscar El cuadro de dilogo guarda las diez ltimas bsquedas realizadas.

3.3.2. Reemplazar (CTRL + R)


Esta opcin muestra el cuadro de dilogo de la figura 6. Sirve para realizar el reemplazamiento de determinado texto siguiendo diferentes opciones.

Figura 6: Dilogo Reemplazar El cuadro de dilogo guarda los diez ltimos reemplazamientos. Esta opcin solamente est activa en modo edicin.

3.3.3. Buscar de nuevo (SHIFT + B)


Esta opcin sirve para buscar de nuevo la ltima palabra buscada mediante la opcin de bsqueda a partir de la posicin actual del cursor.

-18-

Anagra 2.0. Manual de Usuario

3.3.4. Ir a lnea
Esta opcin permite al usuario ir a una determinada lnea de la gramtica. La figura 7 muestra el dilogo en cuestin.

Figura 7: Dilogo Ir a lnea...

3.4. Men Texto


En este men aparecen opciones de cambio de tipo de letra, de color, etc..

3.4.1. Fuente
Permite cambiar el tipo de letra con el que estamos editando o mostrando la gramtica. En la figura 8 aparece el dilogo.

Figura 8: Dilogo Fuente

3.4.2. Color
Permite cambiar el color de letra con el que estamos editando o mostrando la gramtica. En la figura 9 aparece el dilogo.

-19-

Anagra 2.0. Manual de Usuario

Figura 9: Dilogo Color

3.4.3. Tabulador
Permite cambiar el nmero de espacios que formarn un tabulador por defecto.

3.4.4. Extendido
Permite cambiar el formato en el que aparece la gramtica editada o abierta al formato extendido. En este formato las producciones aparecen de la siguiente manera. Parte Izquierda : Parte Derecha1 | Parte Derecha2 | ................. | Parte Derecha n ;

3.4.5. Compacto
Permite cambiar el formato en el que aparece la gramtica editada o abierta al formato compacto. En este formato las producciones aparecen de la siguiente manera. Parte Izquierda : Parte Derecha1 | Parte Derecha2 | ................. | Parte Derecha n;

3.4.6. Guardar Preferencias


Permite guardar las opciones de tipo de letra, color de letra y espacios de tabulador elegidos, para que la prxima vez que se cargue la aplicacin sean tomados como valores por defecto.

-20-

Anagra 2.0. Manual de Usuario

3.5. Men Herramientas


3.5.1. Calcular Conjunto PRIMERO
Muestra una nueva ventana donde se muestra el conjunto de PRIMERO de los smbolos de una gramtica previamente abierta o editada.

3.5.2. Calcular Conjunto SIGUIENTE


Muestra una nueva ventana donde se muestra el conjunto de SIGUIENTE de los smbolos de una gramtica previamente abierta o editada.

3.5.3. Calcular PRIMERO de una forma de frase


Esta opcin permite calcular el conjunto PRI de una forma de frase formada por smbolos pertenecientes a la gramtica. Aparecer una ventana donde en el campo superior escribiremos la forma de frase smbolo a smbolo separados por uno o ms espacios o tabuladores (para consultar el formato de entrada de la forma de frase a introducir nos referimos al punto 3.10. Formatos de entrada). Una vez que hayamos escrito la forma de frase, pulsaremos el botn Calcular, y el conjunto PRI de smbolos aparecer en el campo inferior de la ventana. El smbolo EPS corresponde a Epsilon. En la figura 10 parece la ventana:

Figura 10: Ventana de clculo del conjunto PRI de una forma de frase

3.6. Men Transformaciones


En este men aparece la posibilidad de aplicar distintas transformaciones a la gramtica actual para convertirla en otra equivalente con objeto de que se pueda adaptar a uno u otro tipo de gramtica. Las posibles transformaciones se enumeran a continuacin: Eliminacin de los smbolos que no son capaces de derivar ningn otro smbolo (Eliminacin de no derivables). Factorizacin a izquierda de todas aquellas producciones que pueden provocar backtracking en el analizador (Factorizacin a izquierda). Eliminacin de todos aquellos smbolos no terminales de la gramtica que derivan en s mismos en uno o ms pasos (Eliminacin de ciclos). Eliminacin de todos aquellos smbolos de la gramtica que no pueden ser accedidos desde el smbolo inicial (Eliminacin de no accesibles). Eliminacin de todas aquellas producciones cuya parte derecha es lambda (Eliminacin de anulables). Eliminacin de la recursividad a izquierda de las producciones, que provoca que una gramtica no sea del tipo LL(1) (Eliminacin de la recursividad a izquierda). Para una mayor informacin acerca de estas transformaciones se ruega conferir los apuntes de la asignatura Compiladores I o el Documento de diseo de objetos. En estos documentos se explica claramente cul es el objetivo de estas transformaciones y los algoritmos empleados en ellas.

-21-

Anagra 2.0. Manual de Usuario Una vez aplicada la transformacin, la gramtica resultante aparece en una ventana nueva para que puedan compararse las diferencias entre la gramtica original y la transformada. Del mismo modo, si la transformacin provoca una eliminacin de smbolos gramaticales, estos smbolos eliminados aparecen en la parte inferior de la nueva ventana para informacin del usuario. La figura 11 representa la nueva ventana donde aparece una gramtica a la que se le han eliminado los smbolos que no son accesibles desde el smbolo inicial:

-22-

Anagra 2.0. Manual de Usuario

Figura 11: Ventana donde se muestra una gramtica transformada

-23-

Anagra 2.0. Manual de Usuario

3.7. Men Analizar


Con este men se puede analizar la gramtica actual para determinar el tipo al que pertenece. Los resultados que se obtiene segn el tipo de anlisis que se aplica se muestran a continuacin.

3.7.1. Analizar Gramtica LL(1)


Esta opcin ejecuta el anlisis LL(1) de la gramtica, mostrando la tabla obtenida de dicho anlisis en una ventana independiente. En la parte inferior de la tabla se indica si la gramtica pertenece o no al tipo LL(1), adems de unas estadsticas donde se muestran el nmero de terminales, el nmero de no terminales y el nmero de celdas en conflicto. Las casillas de la tabla que aparecen con el fondo rojo son aquellas en las que existe un conflicto que impide que la gramtica sea del tipo LL(1). En la figura 12 aparece una de estas tablas generadas a partir del anlisis LL(1) de la gramtica.

Figura 12: Tabla obtenida a partir del anlisis LL(1)

3.7.2. Ver tabla anlisis LL(1)


Esta opcin est solamente activa si hemos ejecutado el anlisis LL(1) anteriormente, mostrando la tabla que se genera a partir de dicho anlisis anterior.

3.7.3. Analizar Gramtica SLR(1)


Esta opcin ejecuta el anlisis SLR(1) de la gramtica, mostrando, en ventanas independientes, la tabla obtenida de dicho anlisis, el autmata de conjuntos de configuraciones LR(0) a partir del cual se ha obtenido la tabla, la gramtica ampliada a partir de la cual se ha obtenido el autmata y una versin del autmata en modo texto. En la parte inferior de la tabla se indica si la gramtica pertenece o no al tipo SLR(1), adems de unas estadsticas donde se muestran el nmero de terminales, el nmero de no terminales, el nmero de celdas en conflicto en la tabla accin y en la tabla ir_A, y el nmero de nodos. Las casillas de la tabla que aparecen con el fondo rojo son aquellas en las que existe un conflicto que impide que la gramtica sea del tipo SLR(1). En la figura 13 aparece una de estas tablas generadas a partir del anlisis SLR(1) de la gramtica. En otra de las ventanas aparece el autmata de conjuntos de configuraciones LR(0) a partir del cual se genera la tabla. Cuando aparece el autmata los nodos ya estn distribuidos por la ventana evitando cruces entre ejes en la medida de lo posible. En estos nodos solo aparece el nmero del conjunto de configuraciones. Para visualizar la informacin que se almacena en -24-

Anagra 2.0. Manual de Usuario cada uno de estos nodos basta con hacer doble click con el ratn sobre el nodo que queremos obtener informacin. Aparecer una ventana independiente conteniendo esta informacin.

Figura 13: Tabla obtenida a partir del anlisis SLR(1) En la figura 14 se muestra el autmata y en la figura 15 se muestra la ventana que aparece cuando solicito informacin acerca del conjunto de configuraciones 0.

-25-

Anagra 2.0. Manual de Usuario

Figura 14: Autmata a partir del cual se genera la tabla SLR(1)

-26-

Anagra 2.0. Manual de Usuario

Figura 15: Informacin acerca del conjunto de configuraciones 0 Adems aparecen dos ventanas ms conteniendo el autmata en modo texto y la gramtica ampliada a partir de la cual se ha generado el autmata. En las figuras 16 y 17 se muestran dichas ventanas.

Figura 16: Gramtica ampliada

Figura 17: Autmata en modo texto

-27-

Anagra 2.0. Manual de Usuario

3.7.4. Ver tabla anlisis SLR(1)


Esta opcin est solamente activa si hemos ejecutado el anlisis SLR(1) anteriormente, y muestra las estructuras descritas en el punto anterior.

3.7.5. Analizar Gramtica LR(1)


Esta opcin ejecuta el anlisis LR(1) de la gramtica, mostrando, en ventanas independientes, la tabla obtenida de dicho anlisis, el autmata de conjuntos de configuraciones LR(1) a partir del cual se ha obtenido la tabla, la gramtica ampliada a partir de la cual se ha obtenido el autmata y una versin del autmata en modo texto. En la parte inferior de la tabla se indica si la gramtica pertenece o no al tipo LR(1), adems de unas estadsticas donde se muestran el nmero de terminales, el nmero de no terminales, el nmero de celdas en conflicto en la tabla accin y en la tabla ir_A, y el nmero de nodos. Las casillas de la tabla que aparecen con el fondo rojo son aquellas en las que existe un conflicto que impide que la gramtica sea del tipo LR(1). En la figura 18 aparece una de estas tablas generadas a partir del anlisis LR(1) de la gramtica.

Figura 18: Tabla obtenida a partir del anlisis LR(1) En otra de las ventanas aparece el autmata de conjuntos de configuraciones LR(1) a partir del cual se genera la tabla. Cuando aparece el autmata los nodos ya estn distribuidos por la ventana evitando cruces entre ejes en la medida de lo posible. En estos nodos solo aparece el nmero del conjunto de configuraciones. Para visualizar la informacin que se almacena en cada uno de estos nodos basta con hacer doble click con el ratn sobre el nodo que queremos obtener informacin. Aparecer una ventana independiente conteniendo esta informacin. En la figura 19 se muestra el autmata y en la figura 20 se muestra la ventana que aparece cuando solicito informacin acerca del conjunto de configuraciones 0. -28-

Anagra 2.0. Manual de Usuario

Figura 19: Autmata a partir del cual se genera la tabla LR(1)

-29-

Anagra 2.0. Manual de Usuario

Figura 20: Informacin acerca del conjunto de configuraciones 0 Adems aparecen dos ventanas ms conteniendo el autmata en modo texto y la gramtica ampliada a partir de la cual se ha generado el autmata. En las figuras 21 y 22 se muestran dichas ventanas.

Figura 21: Gramtica ampliada

Figura 22: Autmata en modo texto

-30-

Anagra 2.0. Manual de Usuario

3.7.6. Ver tabla anlisis LR(1)


Esta opcin est solamente activa si hemos ejecutado el anlisis SLR(1) anteriormente, y muestra las estructuras descritas en el punto anterior.

3.7.7. Analizar Gramtica LALR(1)


Esta opcin ejecuta el anlisis LALR(1) de la gramtica, mostrando, en ventanas independientes, la tabla obtenida de dicho anlisis, el autmata de conjuntos de configuraciones LR(0) a partir del cual se ha obtenido la tabla, la gramtica ampliada a partir de la cual se ha obtenido el autmata y una versin del autmata en modo texto. En la parte inferior de la tabla se indica si la gramtica pertenece o no al tipo LALR(1), adems de unas estadsticas donde se muestran el nmero de terminales, el nmero de no terminales, el nmero de celdas en conflicto en la tabla accin y en la tabla ir_A, y el nmero de nodos. Las casillas de la tabla que aparecen con el fondo rojo son aquellas en las que existe un conflicto que impide que la gramtica sea del tipo LALR(1). En la figura 23 aparece una de estas tablas generadas a partir del anlisis LALR(1) de la gramtica. En otra de las ventanas aparece el autmata de conjuntos de configuraciones LR(0) a partir del cual se genera la tabla. Cuando aparece el autmata los nodos ya estn distribuidos por la ventana evitando cruces entre ejes en la medida de lo posible. En estos nodos solo aparece el nmero del conjunto de configuraciones. Para visualizar la informacin que se almacena en cada uno de estos nodos basta con hacer doble click con el ratn sobre el nodo que queremos obtener informacin. Aparecer una ventana independiente conteniendo esta informacin. En la figura 24 se muestra el autmata y en la figura 25 se muestra la ventana que aparece cuando solicito informacin acerca del conjunto de configuraciones 0. Adems aparecen dos ventanas ms conteniendo el autmata en modo texto y la gramtica ampliada a partir de la cual se ha generado el autmata. En las figuras 26 y 27 se muestran dichas ventanas.

Figura 23: Tabla obtenida a partir del anlisis LALR(1)

-31-

Anagra 2.0. Manual de Usuario

-32-

Anagra 2.0. Manual de Usuario Figura 24: Autmata a partir del cual se genera la tabla LALR(1)

Figura 25: Informacin acerca del conjunto de configuraciones 0

Figura 26: Gramtica ampliada

Figura 27: Autmata en modo texto

3.7.8. Ver tabla anlisis LALR(1)


Esta opcin est solamente activa si hemos ejecutado el anlisis LALR(1) anteriormente, y muestra las estructuras descritas en el punto anterior.

-33-

Anagra 2.0. Manual de Usuario

3.8. Men Simular


Con este men se puede simular entradas para una gramtica determinada.

3.8.1. Simular entrada LL(1)


Esta opcin permite, una vez que se ha comprobado que la gramtica actual es del tipo LL(1), simular el analizador sintctico tipo LL(1) asociado a la gramtica. Para ello el programa nos pedir la entrada (formada por smbolos terminales) que queremos simular mediante una ventana como la que se muestra en la figura 28. En esta ventana introduciremos los smbolos separados por uno o varios espacios en blanco o tabuladores (para consultar el formato de la forma de frase a introducir nos referiremos al punto 3.10. Formatos de entrada).

Figura 28: Peticin de entrada del simulador Una vez que pulsemos el botn Aceptar, aparecer la ventana de simulacin donde se recogen las estructuras internas del simulador (pila de smbolos, producciones emitidas, entrada que falta por analizar y entrada original del simulador). Esta ventana se muestra en la figura 29.

-34-

Anagra 2.0. Manual de Usuario

Figura 29: Ventana de simulacin En esta ventana, cada vez que pulsemos el botn Simular 1 Paso, se ejecutar un paso del proceso de simulacin y se actualizarn las estructuras del analizador en pantalla. Adems al comenzar la simulacin aparecer una nueva ventana donde se ir construyendo, tambin paso a paso, el rbol de sintaxis que corresponde a la entrada que se est simulando. Dicha ventana aparece en la figura 30.

Figura 30: rbol de sintaxis

-35-

Anagra 2.0. Manual de Usuario

3.8.2. Simular entrada SLR(1)


El proceso para esta opcin es idntico al que se explica en el punto anterior. La nica diferencia es que en este caso cambia el algoritmo de simulacin.

3.8.3. Simular entrada LR(1)


El proceso para esta opcin es idntico al que se explica en el 3.8.1. La nica diferencia es que en este caso cambia el algoritmo de simulacin.

3.8.4. Simular entrada LALR(1)


El proceso para esta opcin es idntico al que se explica en el 3.8.1. La nica diferencia es que en este caso cambia el algoritmo de simulacin.

3.8.5. Comprobar entrada


Esta opcin permite la simulacin directa de una entrada para una gramtica que haya sido analizada satisfactoriamente para algn tipo de gramtica. Tiene un campo donde se elige el tipo de analizador, otro campo para indicar si se quiere ver el rbol de sintaxis resultante de la simulacin, y un rea de texto para introducir la entrada a simular. En la figura 31 aparece la ventana de simulacin.

Figura 31: Ventana de simulacin

3.9. Men Ayuda


3.9.1. Acerca de
Contiene informacin acerca del proyecto y las personas que han intervenido en l. Tambin ofrece una direccin de e-mail donde poder enviar los posibles errores encontrados.

-36-

Anagra 2.0. Manual de Usuario

Figura 32: Dilogo Acerca de

3.10. Formatos de entrada


3.10.1. Formato de los ficheros que almacenan las gramticas
El formato de los ficheros para introducir las gramticas es el formato utilizado por YACC. Es decir, que podemos pasarle un fichero YACC y el programa lo reconocer y obtendr una gramtica de l. Hay que advertir que existen varias restricciones a lo indicado en el prrafo anterior. 1. Existen palabras reservadas a parte de las ya propias de YACC. A continuacin se enumeran: EPS Lambda $ 2. Los tokens terminales de la gramtica podrn ser definidos al inicio del fichero con la declaracin %token..., pero slo se podrn definir de esta manera identificadores de texto (caracteres, nmeros), esto es, si queremos tener un token que sea el signo mas + un parntesis (, etc.. deberemos definirlo dentro de las propias producciones como un smbolo literal (entre comillas simples). Si declaramos estos tokens en %token el programa dar un error en la gramtica. Cuando leamos una gramtica desde un fichero, en la pantalla principal aparecer el contenido ntegro del fichero. Cuando editemos la gramtica o apliquemos alguna transformacin sobre ella, en la pantalla principal solo aparecer informacin acerca de las producciones y definicin de tokens. Esta informacin ser la que se almacene en un fichero de disco en caso de que seleccionemos dicha opcin del men.

3.10.2. Formato de las formas de frase que se introducen en la aplicacin

-37-

Anagra 2.0. Manual de Usuario Forma de frase que se introduce para obtener el conjunto PRI. En este caso, se introducirn los smbolos de la gramtica separados por uno o ms espacios en blanco o tabuladores. Las mismas palabras reservadas que tenemos para los ficheros donde se almacenan las gramticas, los tenemos aqu. Dichas palabras se especifican en el punto anterior. Ante cualquier error en la formacin de la forma de frase, ANAGRA mostrara un mensaje de error indicndolo. Para ver posibles errores nos remitimos al punto 2.2.3. Calculo del conjunto PRI de una forma de frase. Entrada que simularemos con el analizador sintctico asociado a las gramticas. Similar al apartado anterior, pero puntualizando que aqu los smbolos de la gramtica que utilizamos son slo los terminales.

-38-

Anagra 2.0. Manual de Usuario

-39-

También podría gustarte