Análisis Léxico Usando JFlex
Análisis Léxico Usando JFlex
Análisis Léxico Usando JFlex
Jonathan
Jonathan Búcaro
Búcaro
Búcaro
Developer | Planeswalker
Al realizar una tarea sobre el Análisis Léxico, me pude dar cuenta lo difícil que es encontrar un ejemplo
que muestre como utilizar la herramienta JFlex. En casi la totalidad de los ejemplos, se realiza en
conjunto el análisis sintáctico
En esta publicación se dejará constancia de un ejemplo sencillo de cómo realizar un análisis léxico con
JFlex.
Como requisito para este ejemplo, se debe tener Java y JFlex instalado y configurado correctamente.
Luego, se debe de crear un archivo con extensión flex, el cual será el que tendrá las reglas para el
Análisis Léxico.
He comentado el código en las diferentes secciones como para tomar una idea de que es lo que se
realiza en cada una, sin embargo el mejor apoyo es la documentación oficial.
Por último se creará una clase que tendrá la lógica necesaria para leer el contenido de un archivo y
pasar la información a JFlex para su análisis. El archivo tendrá de nombre PruebaJFlex.
1 import java.io.BufferedReader;
2 import java.io.FileReader;
3
4 public class PruebaJFlex {
5
6 public static void main(String[] args) {
7
8 try{
9
10 // Asignación del nombre de archivo por defecto que usará la aplicac
11 String archivo = "prueba.txt";
12
13 // Se trata de leer el archivo y analizarlo en la clase que se ha cr
14 BufferedReader buffer = new BufferedReader(new FileReader(archivo));
15 AnalizadorLexico analizadorJFlex = new AnalizadorLexico(buffer);
16
17 while(true){
18
19 // Obtener el token analizado y mostrar su información
20 TokenPersonalizado token = analizadorJFlex.yylex();
21
22 if (!analizadorJFlex.existenTokens())
23 break;
24
25 System.out.println(token.toString());
26 }
27 }
28 catch (Exception e){
29 System.out.println(e.toString());
30 }
31 }
32 }
Para probar el desarrollo, es necesario un archivo prueba.txt que tendrá la siguiente información.
1 1777*
2 #*1
3 *#06#
4 a123
5 12345
6 este es un
7 ejemplo
8 de
9 analisis
10 lexico
11 con
12 JFlex
Para ejemplificarlo de mejor manera, colocaremos todos los archivos que se han creado durante este
ejemplo en una misma carpeta.
1 jflex AnalizadorLexico.flex
Al ejecutarse el comando, JFlex crea el código java necesario para realizar el análisis léxico según las
reglas que se establecieron en el archivo AnalizadorLexico.flex.
1 javac PruebaJFlex.java
1 java PruebaJFlex
Al ejecutarse, mostrará los diferentes Tokens que ha reconocido del archivo prueba.txt.
Con estos sencillos pasos, se ha logrado mostrar el funcionamiento de un analizador léxico creado con
la herramienta JFlex.
Icono utilizado en la Imagen destacada, “Sports Hand Biceps Icon” gracias a Icons8.
Jonathan Búcaro 26 abril, 2015 Código JFlex
Entrada anterior
Instalación JFlex
Entrada siguiente
13 Comentarios
baker1562
Este mismo codigo sirve para hacer o efectuar operaciones con su orden especifico, por ejemplo 2+3*5,
donde primero se haga la multiplicacion y luego la suma.
Gracias
Me gusta
Responder
Antonio
Ejemplo sencillo y explicado paso a paso, me ha sido de gran ayuda para empezar.
Muchas gracias,
Antonio B.
Me gusta
Responder
Jonathan Búcaro
d(^_^)z
Me gusta
Responder
uchihaandre94
Buena Jonhy 👍, No sabia que tenias blog… pero a la próxima te pido los archivos solo pa
descargarlos jajajaja, Saludos 😁
Le gusta a 1 persona
Responder
Jonathan Búcaro
Me gusta
Responder
Sebastián
Hola que tal, tienes la idea de que muestre solo las vocales del texto que es ingresado en el archivo de
prueba. Saludos
Me gusta
Responder
andres
Me gusta
Responder
Jonathan Búcaro
Que tal Andres, puedes compartir los errores que te están generando, así tu comentario es más
constructivo y específico. Hasta el momento no habían reportado inconvenientes 😉
Me gusta
Responder
Armando
3 errors
Me gusta
Responder
Jonathan Búcaro
Hola, el ejemplo se realizó asumiendo que todos los archivos se encuentran en la misma carpeta o
que pertenecen al mismo paquete. Podrías revisar si se creó el archivo AnalizadorLexico.java al
ejecutar la instrucción jflex AnalizadorLexico.flex, adicionalmente que este se encuentre en la
misma carpeta que PruebaJFlex.java
Me gusta
Responder
Armando
Me gusta
Jonathan Búcaro
Si, parece que no logra hacer esa referencia al fuente, en el ejemplo todos los archivos están en
la misma carpeta y no pertenecen a algún namespace o paquete declarado explicitamente,
debido a esta razón es que logra encontrarlo y compilar
Me gusta
Deja un comentario
Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *
Comentario *
Web
Publicar el comentario
Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.
Buscar … Buscar
Etiquetas
C#
Electrónica
JFlex
Logro
aplicaciones
desbloqueado
pfSense
Python
SQL
SQL Server
Windows 10
Visual Studio
VS Code
WSL
Windows Forms
Categorías
.NET (2)
Código (2)
General (13)
Personal (7)
Python (2)
Inicio
Blog
Libros que he leído
Mi lista imposible