APRENDIENDO JLEX

8

Click here to load reader

Transcript of APRENDIENDO JLEX

Page 1: APRENDIENDO JLEX

Aprendiendo JFlex 1 de enero de 2010

APRENDIENDO

JFLEX EN 12

PASOS

Page 2: APRENDIENDO JLEX

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:

Page 3: APRENDIENDO JLEX

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

Page 4: APRENDIENDO JLEX

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

Page 5: APRENDIENDO JLEX

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:

Page 6: APRENDIENDO JLEX

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 {

}

Page 7: APRENDIENDO JLEX

Aprendiendo JFlex 1 de enero de 2010

12) Compilamos, y obtenemos lo siguiente:

Hemos creado exitosamente el analizador léxico.

Page 8: APRENDIENDO JLEX

Aprendiendo JFlex 1 de enero de 2010