Práctica 4 Manejo avanzado de Bison



Documentos relacionados
Práctica 4 Manejo Avanzado de Bison

Prácticas de Lenguajes, Gramáticas y Autómatas

2ª Convocatoria 2008/2009 (15-IX-2009) 4º Ing. Informática. CPS. Universidad de Zaragoza Tiempo de realización: 3 horas

Teoría de la Computación

Sistemas de Información 12/13 XML (extensible Mark-up Language)

Creación de documentos XML

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Análisis de esquemas XML [1]

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

2 Estructura de un Documento XML

Para crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.

Fundamentos de las tecnologías de la información

XML. Introducción. Cómo se usa? XML Tree. Sintaxis XML

Curso Internet Básico - Aularagon

XML. Escuela Técnica Superior de Ingeniería de Telecomunicación Universidad Rey Juan Carlos. Marzo de gsyc-profes (arroba) gsyc.urjc.

Manejo y gestión del Campus Virtual para tareas colaborativas

Centro de Capacitación en Informática

INSTRUCTIVO DEL COMANDO MAKE

Práctica 1 Definición de un lenguaje de programación básico: milenguaje

extensible Markup Language (XML)

Índice general de materias LECCIÓN 7 74

Un kilobyte (KB) son 1024 bytes, un Megabyte (MB) son 1024 KB, un Gigabyte son 1024 Mb

3.1 Tipos de DTDs. ! Si queremos validar un documento XML (para comprobar si cumple las normas de un dialecto) tendremos que validarlo contra el DTD.

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

FAQ: SEPA 03/11/2015 Página 1 de 16

MATERIAL 2 EXCEL 2007

ESCUELA DE ADMINISTRACIÓN

Introducción a XML - Validación y Parseo. Huibert Aalbers, Senior Certified Software IT Architect

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Capítulo 3: XML Spy como editor de documentos XML. 2. La interfaz de usuario de XML Spy

MATEMÁTICAS CON LA HOJA DE CÁLCULO

Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

UTILIZACION DE ESQUEMAS XML DE LA AGENCIA TRIBUTARIA PARA CALCULO RETENCIONES

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

Informática 1 Grado en Matemáticas

Manual de OpenOffice Impress

Instrucciones para la familiarización de los alumnos con el instrumento de evaluación de EECL (ES)

Manual de Usuario. Terra Nómina Electrónica

XML para FP : Introducción

LINUX - Los archivos de órdenes I

Introducción a Visual Studio.Net

Datos Estadísticos y el Lenguaje XML

INFORMATICA Y REDES, SA DE CV.

CAPÍTULO I: UNA PRESENTACIÓN EN POCOS MINUTOS

(Altas de prestaciones por ERE S): guía para las empresas

Guía para realizar trabajos universitarios

Operación Microsoft Access 97

JHAN EVER ANDRADE CASTRO

Descarga Automática. Manual de Usuario. Operador del Mercado Ibérico de Energía - Polo Español Alfonso XI, Madrid

Manual de Usuario. Railton da Encarnação Cardoso Teléfono:

GUÍA PARA MANEJAR GOOGLE DRIVE

MANEJANDO FICHEROS Y CARPETAS

Modelos y Bases de Datos

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Ficheros Electrónicos

Para acceder al campus virtual de Espiral debes realizar los siguientes pasos:

17º Concurso de Trabajos Estudiantiles, EST 2014

GUÍA DEL ALUMNO. 1.- Estructura y contenido de la página web. 2.- Cómo usar esta página web. 3.- Contenidos. 4.- Metodología didáctica.

DATOS IDENTIFICATIVOS:

Informe de Servicio Social. actividades tienen en la población meta y acerca del aprendizaje obtenido por el prestador de

El proceso de edición digital en Artelope y CTCE

CREAR UN BLOG CON BLOGGER

Trabajo realizado por Vicente Soler y José Martí

PROGRAMACIÓN BÁSICA DE APLICACIONES MÓVILES

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

Dominios y Subtipos en Geodatabase

CIERRE EJERCICIO CON BECONTA

Una plantilla es un modelo que puede servir como base para muchas hojas de cálculo. Puede incluir tanto datos como formatos.

Índice 1 Instalación de la herramienta 2 Descripción de la herramienta 2 Arranque de la aplicación 3 Proyecto 4 Diagrama de clases 5

Versión Boletín de Novedades

Modulo 1 El lenguaje Java

VAST: Manual de usuario. Autores: Francisco J. Almeida-Martínez Jaime Urquiza-Fuentes

DCU Diagramas de casos de uso

Manual del software para la creación de mapas conceptuales MIND42. Maria José Ciudad Mas

Conceptos SOA: XSD, Estructurando XML Por Medio de Esquemas

Facturas Electrónicamente Firmadas en formato XML

Dando nuestros primeros pasos con 3DS Max. 1. Objetivos

MANUAL DE USUARIO SICVECA DESKTOP. Código: R-02-I-IF-312 Versión: de 19 SICVECA DESKTOP. Manual de Usuario Versión 1.0.

Instructivo Asesoría Básica Comunidad Virtual SharePoint 2010

Dropbox. Parte 2. Práctica 02-ud03 15/01/2013 Pág. 1 de 6

ModusOne. ModusOne Client. Version: 5.2

FLICKR Flickr y sus Herramientas

Exportación e Importación horarios XML

Reservas - Rooming List

ÍNDICE. Acceso a nivel de agencias...3. Organización por carpetas...4. Descarga de facturas desde el portal...5. Búsquedas de facturas...

XML Schema. Sergio Luján Mora.

Ejercicio Nº 3: Realizar aumentos en una Tabla de Sueldos

COMO HACER UN CUMENTO DE WORD PARA TRABAJOS LARES

Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)

La visualización de la ventana de Word tiene las siguientes partes:

Guía rápida del alumno. Versión 6.2

GENERACIÓN DE REMESAS DE EFECTOS

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Requisitos para la generación de Xml válido

BIBLIOTECA CENTRAL. "Prof. Augusto Raúl Cortázar" Guía de Búsquedas. Avanzadas en Internet

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

La Gestión Operativa: La Clave del Éxito.

Transcripción:

Práctica 4 Manejo avanzado de Bison Tareas 1. Estudia la información sobre trazas en el Capítulo 8 - Depurando Su Analizador del manual de Bison (bison-es-1.27.pdf). 2. Realiza el ejercicio propuesto. 3. Elabora la memoria de la práctica y entrégala junto con los ficheros fuente según el Procedimiento de Entrega de Prácticas explicado en la Introducción a las Prácticas de la Asignatura (página 3 del guión de la Práctica 1). La fecha tope de entrega será hasta el viernes 11 de enero de 2013. Nota: El incumplimiento de las normas de entrega se reflejará en la calificación de la memoria. Debes crear un directorio que contenga exclusivamente el fichero con la memoria en formato PDF, los ficheros fuente con tu código (.l de Flex y.y de Bison) y los de prueba (.txt de texto). No uses subdirectorios. En caso de que el fichero.zip resultante tenga un tamaño mayor de 512 KB deberás repetir la creación del directorio dividiéndolo en varios ficheros.zip de como máximo 512 KB cada uno, en ese caso llama a los ficheros resultantes nipprx1.zip, nipprx2.zip, etc. Introducción El objetivo de esta cuarta práctica es aplicar Flex y Bison a un ejemplo real en el que se plantea la verificación (parcial) de la sintaxis de documentos XML. Así, después de presentar los aspectos básicos del estándar XML, se plantea la construcción de un analizador sintáctico que reconozca un subconjunto determinado de documentos XML bien formados. 1

El Estándar XML XML es un estándar para la creación de documentos de texto con una estructura bien definida. Aunque originalmente fue concebido como un formato de intercambio de datos entre distintas plataformas, en la actualidad su uso se ha generalizado como formato nativo para ficheros en multitud de aplicaciones, para la descripción de servicios Web, como formato de almacenamiento en algunas bases datos, etc. El estándar es accesible desde http://www.w3.org/xml/. Estructura de un documento XML Los documentos XML tienen una estructura definida con elementos delimitadores (etiquetas) que admiten cierto anidamiento. Las etiquetas XML son, básicamente, un texto entre los símbolos < y >. En XML se distinguen las mayúsculas de las minúsculas, con lo que < ET IQUET A > y < etiqueta > son etiquetas distintas. Hay etiquetas de apertura y etiquetas de cierre: < ET IQUET A > Contenido de etiqueta < /ET IQUET A > Puede haber etiquetas que aparezcan sin etiqueta de cierre (elemento vacío), pero lleven una barra / al final: < ET IQUET A/ > Los elementos pueden tener atributos en sus etiquetas de apertura o en su única etiqueta si son elementos vacíos. Los atributos tienen sus valores entre comillas (simples o dobles) y, si hay varios, tienen que ir separados por al menos un espacio (tabulador, fin de línea... ). < ET IQUET A AT RIBUT O = V alor AT RIBUT O2 = V alor > Los comentarios se escriben de la siguiente forma y pueden ocupar varias líneas: <! Esto es un comentario en XML > XML bien formado XML tiene una serie de reglas sintácticas determinadas: Los documentos XML comienzan con una declaración de la versión del estándar XML que cumple. Esta declaración puede llevar otros atributos opcionales: <?xml version = 1.0?> 2

El documento tiene un solo elemento raíz que engloba a todos los demás entre una etiqueta de apertura y una de cierre. Los elementos englobados por otro se denominan sub-elementos o hijos. Todas las etiquetas de apertura deben tener su correspondiente etiqueta de cierre para los elementos que contengan a otros, o que contengan datos. Si aparece una etiqueta sola es un elemento vacío y debe tener una barra / al final. Entre dos etiquetas puede haber espacios, texto y/o otras etiquetas. También puede no haber nada entre dos etiquetas. No pueden aparecer dentro del texto de un elemento caracteres especiales como es el caso de < (en su lugar se escribe < ) Los elementos deben anidarse correctamente. Esto quiere decir que la etiqueta de cierre de un elemento hijo de otro debe aparecer antes que la etiqueta de cierre de su elemento padre. Si aparecen atributos en algún elemento tienen que tener un valor escrito entre comillas simples o dobles. Un ejemplo de documento XML bien formado: <?xml version = 1.0 encoding= ISO-8859-1?> <Biblioteca> <Libro> La catalogación de este libro se ha llevado a cabo a partir de información histórica recopilada de varias fuentes <Titulo> El ingenioso hidalgo Don Quijote de la Mancha </Titulo> <Autor> <Nombre tipo = Nombre > Miguel de Cervantes </Nombre> <Nombre tipo = Apodo > El Manco de Lepanto </Nombre> </Autor> <Novela tiponovela = Caballerías /> </Libro> <Libro> <Titulo> Introducción a la Teoría de Autómatas, Lenguajes y Computación </Titulo> 3

<Autor> <Nombre tipo = Nombre > John E. Hopcroft </Nombre> </Autor> <LibroTexto clasificación = Informática Teórica /> </Libro> </Biblioteca> XML válido Un documento XML válido es aquel que además de estar bien formado, es conforme a cierta estructura previamente establecida. Esta estructura se especifica en forma de Definición de Tipo de Documento (DTD) o mediante un esquema (Schema). Un DTD o un esquema son gramáticas que especifican qué elementos pueden y/o deben aparecer en un documento XML y cómo deben estar estructurados. Los esquemas son más potentes que los DTDs y permiten definir con precisión los tipos de datos válidos en elementos y atributos, cardinalidades complejas, etc.... Nótese que en esta práctica no se aborda en ningún momento la validez de documentos XML. Lectura de XML con Flex A continuación se proporciona un esqueleto del programa en Flex que se usará para el análisis de ficheros XML. Recoge los patrones a reconocer y se proporciona un ejemplo comentado. La primera tarea de la práctica será completarlo: %{ include y.tab.h %} /...DEF INICIONES... / % % {opent ag} {return(op EN_T AG); /* < HOLA a = 45 > */} {closet ag} {return(close_t AG); /* < /HOLA > */} {emptyt ag} {return(emp T Y _T AG); /* < HOLA A = 12 / > */} {instr} {return(inst R); /* <?xml version = 1.0? > /} {comment} {/* LOS IGNORO */ /* <! COM > */} {spaces} {/* LOS IGNORO */ /* /n/t */ } {cdata} {return(cdat A); /* T ext = 3, &vale casi todo.\t\n */ }. {return(badcar); /* < */} % % 4

Notas: Esta no es, ni mucho menos, la única manera de analizar léxicamente la entrada. Es una propuesta bastante completa y no muy compleja. Si una etiqueta lleva varios atributos, éstos deberán estar separados por espacios. Se ignoran comentarios y espacios, salvo los que van entre los atributos. Éstos los trataremos dentro del patrón de la etiqueta correspondiente, dado que en general podemos organizar las etiquetas en un documento con margen para usar tabulaciones, espacios y fines de línea para indentarlo. Los comentarios se podrán poner allí donde se requieran. El patrón CDATA empareja el texto libre que podemos escribir entre etiquetas. Se admite casi cualquier carácter (incluyendo espacios, saltos de línea, signos de puntuación...), salvo el de abrir etiqueta < y algún otro del mismo tipo. Se tratan de forma distinta espacios y CDATA porque este último debe aparecer en nuestra gramática. Así, hay sitios donde es aceptable y sitios donde no lo es. En cuanto a los espacios, se podrán ignorar y no ser devueltos a Bison, excepto aquellos que estén entre atributos. Se devolverá un token cuando se encuentre carácter que no se ha emparejado antes. Casi con seguridad será un error del fichero XML y de esta forma es más sencillo que Bison. Dicho token no aparecerá en la gramática de Bison. Análisis sintáctico con Bison Construye una gramática en Bison que acepte ficheros XML bien formados. Los tokens se corresponderán con aquello que devuelva Flex y están en el esqueleto que se facilita en el ejemplo. 5

Notas: Los ficheros XML a aceptar tendrán la siguiente forma: INST R OP EN_T AG REST O DEL DOCUMENT O (CDAT A, ELEMENT OS ANIDADOS, ELEMENT OS V ACIOS...) CLOSE_T AG Se requiere que el documento empiece con una instrucción XML, que tenga una sola etiqueta de primer nivel (que englobe a todas las demás), y que tenga cualquier contenido aceptable (CDATA y elementos correctamente anidados). No se puede comprobar si la etiqueta de inicio corresponde con la de cierre sin entrar en aspectos más complejos de Bison, así que se aceptarán como buenos documentos incorrectos como este: <?xml version = 1.0?> < abro > < /cierro > Para hacer trazas de la ejecución de Bison se pueden utilizar acciones dentro de las reglas, con la misma estructura que ya se explicó para Flex. Aunque estas acciones sirven para muchas más cosas, se pueden utilizara para localizar problemas en la gramática. Por ejemplo: S : {printf( Entra en ELEMENT OS\n ); ELEMENT OS {printf( Entra en F IN\n ); F IN ; Esto escribirá por pantalla una traza del análisis realizado por la gramática. En la página web de la asignatura hay un paquete de ficheros XML para realizar pruebas sencillas. Adicionalmente, se aconseja que elabores ficheros de prueba más elaborados. 6