0 calificaciones0% encontró este documento útil (0 votos)
249 vistas8 páginas
Este documento describe el desarrollo de un analizador léxico para el lenguaje HTML usando la herramienta JFlex. Se reconocen las subcadenas correspondientes a tokens del lenguaje HTML mediante expresiones regulares. Luego, el analizador léxico generado regresa pares de "token-lexema" que son mostrados al usuario. El proceso incluye la creación de un archivo JFlex, la generación de código Java y la visualización de resultados.
Este documento describe el desarrollo de un analizador léxico para el lenguaje HTML usando la herramienta JFlex. Se reconocen las subcadenas correspondientes a tokens del lenguaje HTML mediante expresiones regulares. Luego, el analizador léxico generado regresa pares de "token-lexema" que son mostrados al usuario. El proceso incluye la creación de un archivo JFlex, la generación de código Java y la visualización de resultados.
Este documento describe el desarrollo de un analizador léxico para el lenguaje HTML usando la herramienta JFlex. Se reconocen las subcadenas correspondientes a tokens del lenguaje HTML mediante expresiones regulares. Luego, el analizador léxico generado regresa pares de "token-lexema" que son mostrados al usuario. El proceso incluye la creación de un archivo JFlex, la generación de código Java y la visualización de resultados.
CARRERA PROFESIONAL DE INGENIERIA INFORMATICA Y DE SISTEMAS ANALIZADOR LEXICO CURSO : Construccin de Compiladores. DOCENTE : Ing. Lino Flores. ALUMNOS : Carreo P. Irwing Dario Cdigo: 070684 Gamarra Salas Jisbaj Cdigo: 080738 SEMESTRE: 2008 - II Cusco Per 2011 UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA INFORMATICA Y DE SISTEMAS ANALIZADOR LEXICO CURSO : Construccin de Compiladores. DOCENTE : Ing. Lino Flores. ALUMNOS : Carreo P. Irwing Dario Cdigo: 070684 Gamarra Salas Jisbaj Cdigo: 080738 SEMESTRE: 2008 - II Cusco Per 2011 UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO CARRERA PROFESIONAL DE INGENIERIA INFORMATICA Y DE SISTEMAS ANALIZADOR LEXICO CURSO : Construccin de Compiladores. DOCENTE : Ing. Lino Flores. ALUMNOS : Carreo P. Irwing Dario Cdigo: 070684 Gamarra Salas Jisbaj Cdigo: 080738 SEMESTRE: 2008 - II Cusco Per 2011 Construccin de Compiladores | Ing. Informtica y de Sistemas 2 INTRODUCCIN Entre las fases del proceso de compilacin, que son ejecutadas a travs de distintas etapas, estn la de anlisis y sntesis; fases que son ejecutadas de forma secuencial. Para poder cumplir con la fase de anlisis el compilador realiza una serie de acciones diferentes, agrupadas en etapas secuenciales dependientes principalmente del lenguaje fuente, estn la de anlisis lxico, sintctico y semntico, ejecutadas en ese orden. La etapa de anlisis lxico es realizado por un analizador lxico (tambin llamado scanner), quien agrupa los caracteres individuales en entidades lgicas, que posteriormente sern empleadas por las etapas siguientes de la fase de anlisis. Este documento constituye un instrumento orientador, que puede calificarse como pautas para la realizacin de un analizador lxico a partir de la herramienta JFLEX, la cual genera automticamente analizadores lxicos partiendo de una especificacin basada en expresiones regulares. Pautas que resaltan lo siguiente: 1. Reconocer las subcadenas que corresponde a tokens. 2. Regresar el valor o lexema de un token, es decir el par token-lexema. Construccin de Compiladores | Ing. Informtica y de Sistemas 3 I. GENERALIDADES A. OBJETIVOS 1. GENERAL a) Realizacin de un analizador lxico a partir de la herramienta JFLEX. 2. ESPECIFICOS a) Reconocer las subcadenas que corresponden a tokens. b) Regresar el valor o lexema de un token. Construccin de Compiladores | Ing. Informtica y de Sistemas 4 II. MARCO TEORICO A. HTML Siglas de HyperText Markup Language (Lenguaje de Marcado de Hipertexto), es el lenguaje de marcado predominante para la elaboracin de pginas web. Es usado para describir la estructura y el contenido en forma de texto, as como para complementar el texto con objetos tales como imgenes. HTML se escribe en forma de etiquetas, rodeadas por corchetes angulares (<,>). HTML tambin puede describir, hasta un cierto punto, la apariencia de un documento, y puede incluir un script (por ejemplo Javascript), el cual puede afectar el comportamiento de navegadores web y otros procesadores de HTML. 1. ELEMENTOS Los elementos son la estructura bsica de HTML. Los elementos tienen dos propiedades bsicas: atributos y contenido. Cada atributo y contenido tiene ciertas restricciones para que se considere vlido al documento HTML. Un elemento generalmente tiene una etiqueta de inicio y una etiqueta de cierre. Los atributos del elemento estn contenidos en la etiqueta de inicio y el contenido est ubicado entre las dos etiquetas. Algunos elementos, tales como <br>, no tienen contenido ni llevan una etiqueta de cierre. 2. ATRIBUTOS La mayora de los atributos de un elemento son pares nombre-valor, separados por un signo de igual = y escritos en la etiqueta de comienzo de un elemento, despus del nombre de ste. El valor puede estar rodeado por comillas dobles o simples, aunque ciertos tipos de valores pueden estar sin comillas en HTML (pero no en XHTML). De todas maneras, dejar los valores sin comillas es considerado poco seguro. En contraste con los pares nombre-elemento, hay algunos atributos que afectan al elemento simplemente por su presencia (tal como el atributo ismap para el elemento img). B. ANALIZADOR LEXICO 1. CONCEPTO El anlisis lxico constituye la primera fase del Proceso de Compilacin, en esta fase se lee el programa fuente de izquierda a derecha y se agrupa en componentes lxicos o tokens, que son secuencias de caracteres que tienen un significado. Adems, todos los espacios en blanco, lneas en blanco, comentarios y dems informacin innecesaria se elimina del programa fuente. Tambin se comprueba que los Construccin de Compiladores | Ing. Informtica y de Sistemas 5 smbolos del lenguaje (palabras clave, operadores,...) se han escrito correctamente. Para el caso de nuestro Trabajo, utilizamos el JFLEX que es un analizador lxico prediseado para la utilizacin con el lenguaje Java. Su especificacin se realiz a continuacin. 2. JFLEX Es una herramienta que genera Analizadores Lxicos mediante el lenguaje de programacin JAVA, es capaz de generar analizadores lxicos, es decir, construye, de forma rpida y sencilla programas que analicen las cadenas que aparecen en un fichero de texto y realicen diversas acciones en respuesta a ellas. 3. ESTRUCTURA JFLEX Un fichero JFlex se divide en 3 partes: Cdigo de usuario %% Directivas JFLex %% Reglas para las expresiones regulares Cdigo de Usuario En esta seccin se incluyen sentencias propias de Java de importacin, as como tambin la definicin de clases y estructura de datos que sean necesarios para la construccin del analizador lxico a generar. Directivas JFLEX Se utiliza para particularizar algunas caractersticas del explorador generado y, tambin, es donde se declaran las macros y estados que se usarn en la definicin de las reglas lxicas. Ejemplo: DIGITO = [0-9] IDENT = [a-z][a-z0-9]* Reglas Lxicas Contiene las reglas lxicas que se utilizarn para generar el explorador. Construccin de Compiladores | Ing. Informtica y de Sistemas 6 III. DESARROLLO DEL TRABAJO Para cumplir con el objetivo general del proyecto a partir de los objetivos especficos se desarroll las siguientes etapas, mostradas a continuacin. A. RECONOCER LAS SUBCADENAS QUE CORRESPONDEN A TOKENS Esta etapa comprende la creacin de un fichero con la extensin flex, que contiene las expresiones regulares codificadas (reglas lxicas), para la obtencin de las subcadenas correspondientes a cada token especificado, del script en el lenguaje de programacin HTML que se ingresa para su respectivo anlisis lexico. Asi mismo en este fichero contiene directivas JFLEX, y algunas sentencias java necesarias para la generacin de un archivo con la extensin java. B. REGRESAR EL PAR TOKEN-LEXEMA En esta etapa el JFLEX produce la generacin de un cdigo con la extensin java, que por defecto es unca clase con nombre yylex. Una vez obtenida dicha clase, se procede a mostrar el par token-lexema producto del anlisis al que es sometido el script ingresado, que para las pruebas a realizarse se requiere de un archivo de texto plano con sentencias HTML. El resultado se muestra en un formulario, donde se tiene los botones para cargar el archivo, y para realizar el anlisis; adems de una rea de texto donde se visualiza los pares token-lexema. Asi mismo para el proceso de anlisis se hacen uso de funciones propias de la clase generada por el JFLEX, como: 1. YYTEX: Devuelve el valor de la entidad lgica. 2. YYLINE: Devuelve el nmero de lnea de la entidad lgica en el texto ingresado. 3. YYCOLUMN: Devuelve el nmero de columna de la entidad lgica en el texto ingresado. Construccin de Compiladores | Ing. Informtica y de Sistemas 7 El siguiente grfico muestra todo el proceso de generacin del analizador lxico y as como del anlisis lxico. JFLEX Fichero de Especificacion Analizador.jflex Construccin de Compiladores | Ing. Informtica y de Sistemas 8 IV. CONCLUSIONES El JFLEX es una potente herramienta para la generacin de analizadores lxicos a partir de expresiones regulares, debido a que es una herramienta multiplataforma. La aplicacin de los temas estudiados; como autmatas, expresiones regulares; en cursos previos han sido de vital importancia para el cumplimiento de este proyecto. Se ha podido comprobar que la etapa de anlisis lxico, constituye una parte importante del proceso de compilacin ya que su salida es la entrada para las dems etapas de dicho proceso. V. BIBLIOGRAFIA http://es.wikipedia.org/wiki/HTML (Esta pgina fue modificada por ltima vez el 24 jun 2011, a las 03:20.) https://sites.google.com/site/tutoriasdeingenieria/lenguajes-de- programacion/Manejo-de-archivos-en-java-swing---Netbeans http://download.oracle.com/javase/tutorial/uiswing/examples/components/FileC hooserDemoProject/src/components/FileChooserDemo.java http://download.oracle.com/javase/tutorial/uiswing/components/filechooser.html http://forums.netbeans.org/topic39938.html http://crysol.org/es/node/819 http://jflex.de/docu.html http://jflex.de/