Lenguajes y Autómatas 2 Trabajo: JFLEX. Presentan: Gustavo Ramos González
Profesora: Wendy Cancino Reyes
Gustavo Ramos González
JFLEX ¿Qué es?
es una herramienta JAVA que permite actuar sobre aquellas cadenas de un fichero de texto que encajan en una expresión regular Flex es un meta compilador que permite generar rápidamente analizadores léxicos que se integran con Java.
¿Para qué sirve? Para generar escáneres: programas que reconocen patrones léxicos en un texto. flex lee los ficheros de entrada dados, o la entrada estándar si no se le ha indicado ningún nombre de fichero, con la descripción de un escáner a generar. La descripción se encuentra en forma de parejas de expresiones regulares y código C, denominadas reglas. Flex. El programa jflex produce código Java a partir de esta especificación, en concreto, produce un archivo de nombre Yylex.java, con la definicion de la clase Yylex, que encapsula el código de análisis léxico Su instalación:
Primero de esta página se descarga la versión que se desea
Gustavo Ramos González
Creamos en (c:) una carpeta que se llame JFlex
Gustavo Ramos González
Descomprimimos el archivo descargado en la carpeta que creamos dentro de C:
Abrimos nuestro Netbeans y vamos a tools o herramientas y seleccionamos librerías
Gustavo Ramos González
Ahora en la ventana que nos apareció le damos clic en nueva librería y en la ventana que nos aparece escribimos JFlex y presionamos ok
Ahora precionamos en el botón add JAR/Folder
Gustavo Ramos González
Seleccionamos el archivo JFlex.jar ubicado en "C:\JFlex\jflex-1.6.0\lib\JFlex.jar" Más o menos se encuentra en esa ruta, jflex-1.6.0 puede variar dependiendo cual se descargue y le damos add JAR/FOLDER
Por ultimo presionamos “OK”
Gustavo Ramos González
Un ejemplo:
Primero tenemos que agregar un archivo vacío
Gustavo Ramos González
Con el nombre siguiente Lexer.flex aquí el nombre no importa, sino como es el tipo del archivo
Ahora le agregamos este código al archivo creado
Importaciones
Definiciones
Reglas léxicas
En la primera parte pondremos las clases que se van a utilizar, luego las letras, los dígitos, los espacios en blanco, tabulaciones y saltos de línea y en la última parte podremos la reglas léxicas que estarán definidas por expresiones regulares
Gustavo Ramos González
Agregamos otra clase de tipo enum
Ahí ponemos lo anterior, y es id= identificador, int =entero, suma, resta, div= división, mult=multiplicación, assign=asignación y error
Gustavo Ramos González
Agregamos la librería JFlex
Gustavo Ramos González
Algo así tiene que aparecer
Agregamos el código y cambiamos la ruta en String path
Gustavo Ramos González
La mía es esa pero ya dependerá de cada quien
Luego lo ejecutamos y nos tiene que mostrar un Lexer.java con todo ese código, ese es el analizador léxico
Gustavo Ramos González
Ahora para comprobar que nuestro analizador léxico funciona, de manera bonita hacemos una demostración de cómo funciona nuestro programita