APRENDIENDO JLEX
Click here to load reader
-
Upload
saul-hernandez-hernandez -
Category
Documents
-
view
244 -
download
0
Transcript of APRENDIENDO JLEX
Aprendiendo JFlex 1 de enero de 2010
APRENDIENDO
JFLEX EN 12
PASOS
Aprendiendo JFlex 1 de enero de 2010
MANUAL
El siguiente manual se desarrollara en el entorno JDeveloper, versión 11g.
NOTA: Puedes descargar JDeveloper en el siguiente enlace:
http://www.oracle.com/technology/software/products/jdev/index.html
Java lo puedes descargar en este enlace:
http://www.java.com/es/download/
No olvides instalar el jdk (java development kit), lo puedes descargar en el
siguiente enlace: http://java.sun.com/javase/downloads/index_jdk5.jsp
1) Descargar JFlex del siguiente enlace:
http://jflex.de/download.html
2) A continuación ya que tenemos todas las herramientas, procedemos a
crear un nuevo proyecto en jDeveloper de la siguiente manera:
2.1) El proyecto y el paquete se llamaran “usandoJFlex”
3) Deberás de buscar , si estas en Windows, en la carpeta “Mis
Documentos”, la carpeta JDeveloper, myWork, usandoJFlex,
src,usandoJFlex.
4) Ya estando en el src , dentro de “usandoJFlex” deberas crear con un
notepad un archivo llamado lexer.flex. Fíjate bien que sea .flex y no
.flex.txt. Se deberá de ver asi:
Aprendiendo JFlex 1 de enero de 2010
5) Crea en JDeveloper una clase llamada main (main.java). Se deberá de
ver así :
Nota: Si no aparece el “lexer.flex” , refresca la página de java (circulado de
color rojo en el screenshot).
6) Seleccionamos “lexer.flex” y desarrollaremos la sección 1 que puede
ser usada para indicar el paquete del analizador generado o para
importar paquetes necesarios dentro del código del analizador.
Debe señalarse que el archivo a generarse (lexer.flex) consta de 3
secciones, la ya nombrada en el punto 6, y dos más que iremos
desarrollando paso a paso para su mejor entendimiento.
7) A continuación desarrollaremos la sección 2 del lexer.flex. Esta sección
es la encargada de declarar las variables miembro, crear métodos,
funciones y cualquier instrucción java útil –complementaria. Se señala
de la siguiente manera:
/*Esta sección (permite que este archivo “lexer.flex” esté ligado
con la aplicación de java “usandoJFlex”*/
package usandoJFlex; ”
%% // marcador para indicar el final de la sección 1
/*Sección 2*/
%{
/*Indican el inicio y el fin de un bloque*/
%}
%standalone //Indica que funciona sin parser (analizador sintáctico)
%line //permite contar líneas automáticamente
%char //contador de caracteres
Aprendiendo JFlex 1 de enero de 2010
Deberá ir quedando asi:
8) A continuación trabajaremos la Sección 3. Esta sección es la encargada
de la escritura y manipulación de las expresiones regulares.
Para este ejemplo únicamente se reconocerán el token palabra y el
token espacio (espacio en blanco, enter y tabulador).Debemos escribir
el siguiente código:
El archivo debe quedar así:
%% // marcador de fin de la sección 2
/*Sección 3*/
[a-zA-Z]+ // letras de la a minúscula a la z minúscula, y de la A mayus a Z mayus una o más veces
/*Aquí puede ir cualquier código java */
{ System.out.println (“Token Palabra”); }
[\n\r\t ]+ //uno o más espacios
{ System.out.println (“Token Espacio”); }
. { System.out.println (“Error léxico, carácter no valido”);} //Así es la forma de decir que hay un error léxico
Aprendiendo JFlex 1 de enero de 2010
9) Ahora crearemos un archivo de entrada, llamado “prueba.txt”
localizado en el escritorio. En el archivo prueba hemos escrito las
palabras:
- Hola
- Esto es una prueba
- 10
10) Es hora de hacer funcionar el lexer.flex, por decirlo de una manera,
compilarlo, y para ello haremos lo siguiente:
- Ya que hemos extraído o descomprimido de la carpeta de JFlex
(.zip) , buscamos la carpeta lib, y dentro de esta se encontrara un .jar
llamado JFlex.
-
- Damos doble clic en el JFlex.jar y a continuación saldrá una
interfaz como esta:
Aprendiendo JFlex 1 de enero de 2010
- En browse, damos clic, y saldrá un cuadro de dialogo en el que
debemos buscar donde hemos guardado el lexer.flex, que está en
mis documentos, dentro de jDeveloper.
-
- A continuación damos clic en “Generate”. Y tendra que haber
dicho que ha sido exitoso.
- Regresamos a la carpeta del proyecto y deberá aparecer el
archivo generado por JFlex, el “Yylex.java”
11) Ahora iremos a la clase main en el método main, y escribiremos el
siguiente código, que servirá para que la clase “Yylex.java” identifique
que nuestro archivo de entrada, llamado “prueba.txt” localizado en el
escritorio, sea válido o si contiene errores léxicos.
//dentro del método main , de la clase main
try {
Yylex lexer = new Yylex(new FileReader("C:\\Users\\Witchy\\Desktop\\prueba.txt"));
int res =0; //variable usada para ir guardando el codigo del token , cuando sea -1 , sera fin de archivo
do {
// Agarrar el siguiente token, hasta que llegue final de archivo "-1"
res = lexer.yylex();
System.out.println( "Codigo del Token " + res ) ;
} while (res != -1);
} catch (Exception ex) {
ex.printStackTrace();
} finally {
}
Aprendiendo JFlex 1 de enero de 2010
12) Compilamos, y obtenemos lo siguiente:
Hemos creado exitosamente el analizador léxico.
Aprendiendo JFlex 1 de enero de 2010