4.2 DIAGRAMAS DE SINTAXIS INTEGRANTES: Cisneros cervantes miguel Ortiz Caudillo Juan Diego Pérez Juárez Luis Angel Solano Delgado Miguel Angel IRAPUATO GTO 24/09/10 . un diagrama de sintaxis es un grafo dirigido en el que los nodos representan los símbolos terminales y no terminales de la gramática. y los arcos expresan las secuencias en que pueden combinarse tales símbolos para formar frases aceptables según la gramática.A grandes rasgos. Cada diagrama de sintaxis representa un símbolo no terminal (que se puede expandir). Los símbolos terminales (palabras o tokens) se dibujan como círculos o elipses etiquetadas con el nombre del token. . de manera que la gramática completa estará formada por tantos diagramas distintos e inter-relacionados como no terminales se quieran incluir en su descripción. mientras que los no terminales que aparecen en un grafo se dibujan como rectángulos etiquetados con su nombre correspondiente. .Todo diagrama posee un punto de entrada (generalmente situado a la izquierda) y un punto de salida (a la derecha). y que están representados por un arco sin origen y un arco sin destino respectivamente. Si dicho camino no existe. la frase se rechaza. se llega a su punto de salida.En toda gramática existe un símbolo no terminal principal que representa a la gramática en su conjunto. . y siguiendo algún camino en dicho diagrama. se parte de su punto de entrada. para reconocer una frase. de manera que. el “flujo” continúa recursivamente a través del diagrama asociado a ese no terminal.Cuando en dicho camino nos encontramos con un no terminal. la aparición de un no terminal en un diagrama se expande en otro diagrama que lo define. De esta forma. . pasando por una secuencia de tokens idéntica a la secuencia a reconocer.una secuencia de palabras se reconoce si y sólo si hay un camino en los diversos diagramas de sintaxis que. partiendo inicio del diagrama inicial llega al final de dicho diagrama. . DIAGRAMAS DE SINTAXIS EXTENDIDOS UNA SECUENCIA DE PALABRAS SE RECONOCE SI Y SÓLO SI HAY UN CAMINO EN LOS DIVERSOS DIAGRAMAS DE SINTAXIS DIAGRAMA DE UNA LISTA DE DATOS . ¿CÓMO PODRÍAMOS HACER PARA QUE EL PROPIO DIAGRAMA NOS DIJESE AL FINAL (SUPONIENDO LA FRASE VÁLIDA) CUÁNTAS VECES HA APARECIDO LA PALABRA DATO? . . REALIZAN UNA ACCIÓN U OPERACIÓN. QUE NO SON MÁS QUE NODOS QUE. CUANDO SE “CAMINA” SOBRE ELLOS.LOS DIAGRAMAS SE EXTIENDEN CON NODOS DE CÓDIGO. DIAGRAMA CON NODOS DE CÓDIGO C INTERCALADOS . dando la posibilidad de incorporarlas a nuestros programas sin costo alguno. utilizando la herramienta Visual C@fe 2. MEDISE ha sido desarrollado íntegramente en lenguaje Java. . que suministra algunos componentes gráficos muy útiles.0 for Java [VCJ97].DESCRIPCIÓN DE MEDISE. MEDISE es un metacompilador que admite gramáticas LL(1) descritas mediante diagramas de sintaxis extendidos y genera el correspondiente analizador sintáctico escrito en lenguaje C. MEDISE. se han incorporado dos nodos inexistentes uno destinado a la gestión de errores. el analizador debe indicar los problemas sintácticos encontrados. . sin abortar la compilación tras el primer error. El primero es necesario ya que. durante la compilación. y otro a la incorporación de acciones en lenguaje C. se van ignorando palabras hasta encontrar el token de seguridad. de forma que. ante una frase incorrecta.El símbolo gestor de errores (llamado token de seguridad) permite establecer un control del tipo“ignorar la entrada” (panic mode [AHO86]). momento a partir del cual continua el reconocimiento del resto de la frase. . . a través del suministro del lexema leído. Además. se han incorporado otros mecanismos que permiten la creación completa de un compilador.El segundo punto ha sido introducido y sirven para colocar bloques de código que se ejecutan a medida que la ejecución fluye por los diagramas. así como la comunicación necesaria entre el analizador sintáctico y ele lexicográfico. panel del diagrama.INTERFAZ DE MEDISE. cuadro informativo y botones de código global. . barra de botones y propiedades. MEDISE permite la introducción de diagramas de Conway mediante una ventana dividida en 5 bloques principales distribuidos verticalmente: barra de menús. pudiéndose ampliar o reducir el panel. Las características del panel se controlan mediante la barra de propiedades.El panel del diagrama visualiza en todo momento la regla o diagrama en edición. . 20/.390 :3.9.77. .4 -494308 /0 .2.30 /0 /.:.079.7. /0 2038 -./08 5.O3 /0 /.039.77.//.%# $ $ 507290 .8 /0 43. /0 -494308 57450/. /. 03 -46:08 573.20390 -. 3974/:. .O/4 4-.../74 31472. .5.08 /897-:/48 .3.2.7. 7..390.7.4/.7470/:.705. 70.30 .2.30/0/.907J89.2.3080./08 5:/F3/480..O3.5.8.030/.25.8:./057450/.320/..77.0394/42420394.7.43974.-...8/0 5.