martes, 21 de agosto de 2007

Instalacion Jlex y Java cup

El semestre pasado que tenia que instalar las herramientas de Jlex y Java cup que son para hacer los primeros tres analisis de un compilador, analisis lexico, sintactico y semantico en linux me lo instalo un amigo.
Yo uso fedora y ahora si lo instale yo, quede un poco sorprendido de lo facil que es, cada herramienta viene en una carpeta.
Primero se instala el jdk de java, yo instale el 1.6.2 que es el ultimo que ha salido, se pone una carpeta en donde quedara instalado, a mi me quedo en: /usr/java/jdk1.6.0_02
Agarre las dos carpetas y las puse en esa carpeta que es donde esta el jdk y listo, herramientas instaladas.
Para exportar el classpath y poder hacer que nos corra desde cualquier carpeta el java se usa este comando:
export CLASSPATH=.:/usr/java/jdk1.6.0_02
donde /usr/java/jdk1.6.0_02 solo es la direccion donde tengo el jdk de java

Para correr Jlex me meti a la carpeta donde tengo mi archivo llamado lexico.lex y corro el comando:
java JLex.Main lexico.lex

esto produce una clase que se llama lexico.lex.java, cambiemole el nombre a Yylex.java
Debemos compilar la clase Yylex.java
Para compilar una clase se corre el comando:
javac .java
en este caso javac Yylex.java

para correr java cup estoy en la misma carpeta donde tengo el cup que se llama sintactico.cup y donde estaba el lex y corro el comando:
java java_cup.Main sintactico.cup

esto produce una clases llamadas sym.java y parser.java
hay que compilar las dos y tenemos nuestro parser listo para meterlo a netbeans o usarlo como querramos

4 comentarios:

vicente dijo...

Fedora es linux

ENIO DE LEON dijo...

Mucho mas facil utilizando kubuntu (de las que nos a salvado), descargas desde terminal asi:
sudo apt-get install sun-java6-jdk
sudo apt-get install sun-java6-jre
sudo apt-get install sun-java6-bin
sudo apt-get install sun-java6-plugin
sudo apt-get install jlex
sudo apt-get install cup

configuras el classpath de la siguiente manera (ubicado dentro de la carpeta donde se encuentren tus archivos .lex y .cup):
export CLASSPATH=$CLASSPATH:/usr/share/java/cup.jar:/usr/share/java/JLlex.jar
export CLASSPATH=$CLASSPATH:/usr/share/java/cup.jar:/usr/share/java/cup.jar

Y todo a la perfeccion!! :)

Unknown dijo...

Tengo una duda, como es que manejas la tabla de simbolos en jlex y cup?, necesito interpertar cierta sintaxis, pero no logro entender como gestionas las llamadas a procedimientos y funcione y vectores. Gracias de antermano por tu orientacion

Unknown dijo...

Tengo una duda, como es que manejas la tabla de simbolos en jlex y cup?, necesito interpertar cierta sintaxis, pero no logro entender como gestionas las llamadas a procedimientos y funcione y vectores. Gracias de antermano por tu orientacion

 
;