Un poco de todo lo relacionado al area de la informatica... programacion, ocio, configuraciones, en fin herramientas que pueden ser utiles para un estudiante de ingenieria en ciencias y sistemas.

martes, 31 de enero de 2012

On 18:51 by RC in    No comments
El post anterior trata sobre como utilizar jflex cambiando las variables de entorno en windows, es una manera funcional de hacerlo pero no es eficaz, una alternativa es utilizar una clase en java y con ella darle lectura a un archivo .jflex y generar la clase .java con el analizador lexico, esto importando la librería de jflex a nuestro proyecto.

Para esta demostración se trabajara sobre Ubuntu pero es totalmente funcional para windows.

1.      Lo primero es descargar jflex, ya sea por el gestor de paquetes o directamente desde la página oficial.

ya que lo descargamos creamos un nuevo proyecto.

2.  Agregamos la librería jflex.jar al proyecto



3.  Ahora debemos crear una clase auxiliar que leerá el archivo de entrada .jflex para generar una clase de java y trabajar con ella nuestro proyecto. El código de la clase auxiliar es el siguiente:


import java.io.File;
public class milexer{
public static void main(String[] args){
/*ubicacion exacta del archivo a leer, preferentemente ponerlo dentro de la carpeta del proyecto
que creamos */
JFlex.Main.generate(new File("/home/ubuntu/NetBeansProjects/simplelex/src/simplelex/archi.flex"));
}}
Una vez creada la clase la ejecutamos y nos tienen que aparecer los resultados de la ejecución en pantalla



Y como podemos ver se ha agregado al proyecto la clase generada a partir de la lectura de nuestro archivo .jflex, en este caso la clase creada fue la Scanner.java.



Como se puede observar en la clase lo único que hay que ir cambiando al generar diferentes analizadores es el string para leer el archivo y que a la misma vez es lo único que incluye tal clase.

lunes, 30 de enero de 2012

On 21:11 by RC in    No comments
Jflex es un generador de analizadores lexicos utilizado para java, tiene una sintaxis especifica en la cual a partir
de expresiones regulares declaradas permite generar un analizador lexico como una clase para java.

El siguiente post es para mostrar como utilizarlo en un ambiente windows realizando un cambio en las variables
de entorno del sistema operativo.

1.     1.   Descargar Jflex de la pagina :  http://jflex.de/
2.     2.  Una vez descargado extraer en alguna carpeta que sea del disco local de preferencia.
3.     3.  Entramos a la carpeta donde fue extraído jflex e ingresamos a la carpeta “bin”

   En esa carpeta vamos y editamos el archivo jflex.bat que contiene lo siguiente:

__________________________________________________________________________
@echo off
REM Please adjust the paths JFLEX_HOME and JAVA_HOME to suit your needs
REM (please do not add a trailing backslash)

set JFLEX_HOME=C:\jflex-1.4.3

REM only needed for JDK 1.1.x:
set JAVA_HOME="C:\Program Files (x86)\Java\jdk1.6.0_21"

REM -------------------------------------------------------------------

set CLPATH=%JAVA_HOME%\lib\classes.zip;%JFLEX_HOME%\lib\JFlex.jar

REM for JDK 1.1.x
%JAVA_HOME%\bin\java -classpath %CLPATH% JFlex.Main %1 %2 %3 %4 %5 %6 %7 %8 %9

REM for JDK 1.2
rem java -Xmx128m -jar %JFLEX_HOME%\lib\JFlex.jar %1 %2 %3 %4 %5 %6 %7 %8 %9

_____________________________________________________________________________

Las líneas de color rojo son las únicas que han sido modificadas colocando primero la ubicación de donde tenemos la carpeta de jflex y la segunda es la ubicación de donde se encuentra instalado nuestro jdk.

4.       Una vez editado el archivo jflex.bat damos clic derecho a MIPC , clic en propiedades, luego   seleccionamos opciones avanzadas y ahí le damos clic a variables de entorno.


Vamos a sustituir el valor original por :

;C:\Program Files (x86)\Java\jdk1.6.0_21\bin;C:\jflex-1.4.3\bin

Donde primero se incluye un punto y coma (;) luego la ubicación del jdk, después nuevamente punto y coma y la ubicación de jflex, clic en todos los “ok” necesarios.

Nota: al cambiar las variables de entorno algunos comandos como por ejemplo "ipconfig" ya 
no son reconocidos por el cmd, por lo que se recomienda guardar el valor original del valor
de las variables de entorno en un archivo de texto por si se desea regresar a los valores originales.


5. Tomamos el archivo .jflex que queramos compilar y lo guardamos en alguna carpeta del disco local, para mayor comodidad lo guardo en una carpeta directamente ubicada en el disco local por ejemplo una carpeta llamada “archivosjflex” para que sea un poco más fácil accederla desde la consola.

          Abrimos la consola (cmd)  y nos dirigimos a la carpeta “archivos”  escribiendo
   cd “c:\archivosjflex” y luego que nos coloque dentro de la carpeta tecleamos jflex     <nombre_archivo>.jflex, que en este caso seria  jflex ejemplo.txt  
(la extension del archivo a ejecutar es indiferente pero se recomiendoa utilizar .jflex , en        este caso se trabaja con un .txt)

        si todo va bien nos debe mostrar en la consola:



Lo cual nos debe generar un archivo .java que es una clase que estará lista para utilizar en nuestro proyecto.

la clase generada se encuentra en la carpeta "c:/ archivosjflex"


Ahora para incluir la clase generada con jflex solo la incluimos en nuestro proyecto copiándola dentro de la carpeta “src” (donde se encuentran todas las clases) del proyecto en el que vayamos a trabajar e incluyendo la librería jflex.jar en nuestro proyecto y ya se puede modificar, compilar, ejecutar, etc  el proyecto completo.

ACTUALIZACION:
Lo mencionado de las variables de entorno pues no es necesario borrar las que ya teníamos y sustituirlas sino simplemente al final de nuestra variable de entorno podemos agregar ";" si no lo tiene y pegar nuestra nueva linea de variable de entorno que seria:
C:\Program Files (x86)\Java\jdk1.6.0_21\bin;C:\jflex-1.4.3\bin 
y todos los comandos funcionaran correctamente en el cmd.

Por ultimo sino se desea trabajar todo lo de jflex en el cmd podemos ejecutar el jflex en consola escribiendo "jflex" en el cmd y nos abrirá un pequeño programa con el cual podemos trabajar la fase de creación del analizador léxico.

sábado, 21 de enero de 2012

On 19:24 by RC   No comments