Jlex y Cup en
Java
Requerimientos


Tener instalado.




JDK cualquiera de sus versiones.

Sitios de descarga




JLex
http://www.cs.princeton.edu/~appel/modern/j
ava/JLex/
Java Cup
http://www.cs.princeton.edu/~appel/modern/jav
a/CUP/java_cup_v10k.zip
Antes de Comenzar
 Se



requiere configurar las variables de entorno.

Abrimos cmd
Ingresamos al directorio donde esté instalado el
JDK
 Ej:



c:ProgramFilesJavajdk1.7.0_02bin>

Tipeamos el comando
 set

CLASSPATH=c:ProgramFilesJavajdk1.7.0_0
2bin>;%CLASSPATH%
 set

CLASSPATH=c:ProgramFilesJavajdk1.7.0_0
2bin>;%PATH%
INSTALACIÓN JLEX
 El

archivo que se descargará es el
archivo Main.java correspondiente a
JLex. Este archivo se puede guardar en
cualquier lugar del disco duro, pero luego
será necesario, para su integración con
Netbeans, moverlo al directorio de
instalación de JDK.
COMPILACIÓN DE JLEX


Luego de haber copiado/movido el archivo a
esta nueva locación, es necesario compilar desde
consola esta clase, para que se generen los
archivos .class necesario para la completa
integración de JLex a Netbeans.



Para compilar el archivo Main.java desde la
consola será necesario ubicarse en consola en la
carpeta de instalación de JDK y luego dirigirse al
subdirectorio donde se copió el archivo Main.java
perteneciente a JLex.



El resultado de la compilación terminará con la
creación de los archivos .class necesarios para la
total integración de JLex.
INTEGRACIÓN DE CUP
 Para

integrar JLex y Cup al proyecto será
necesario pegar las carpetas JLex y
Java_Cup que han sido previamente
colocadas en la carpeta del JDK. Estas dos
carpetas deberán de ser copiadas en el
subdirectorio src del proyecto creado.
ANALIZADOR LEXICO JLEX





La definición de reglas para el analizador léxico,
deberá declarase en un ARCHVO.
En este ejemplo la case con las reglas del analizador
léxico está bajo el nombre “Scanner”.
Para la creación de esta clase se deberá de utilizar
un editor de texto. Quedando estructurado
el
archivo de la siguiente manera:


(NOTA: ABRIR ARCHIVO SCANNER )
USO DEL JFLEX






Abrimos una consola (cmd)
Nos ubicamos en el directorio del JDK
Y procedemos a compilar el archivo scanner

Dentro del directorio donde esté Scanner se
crea Scanner.Java que es el archivo
compilado
USO DE JAVA_CUP
 De

igual manera desde una consola
 Nos ubicamos en el directorio del JDK y
compilamos el archivo parser
 Nos

dirigimos al directorio del JDK y
ubicamos los archivos parser.java y
sym.java
 Estos archivos deben ser trasladados al
directorio src del Proyecto de Netbeans
 Al igual que scanner.java
 Quedando algo asi:----------->
PRUEBA DE LA GRAMÁTICA
En proyecto creamos una clase denominada token la cual contiene lo sig:



package jlexcup;
public class token {
String valor;
public token(String val)
{
this.valor=val;
}
public String getValue() {
return valor;
}
}

//Esta es la funcion que vamos a necesitar
GRAMÁTICA A USAR


La gramática a utilizar en este ejemplo de integración de
JLex y Cup con Java utilizando un IDE como Netbeans
para el desarrollo del ejemplo consiste en la gramática
libre de contexto necesaria para reconocer una
estructura de una instrucción IF en lenguaje Lisp.



Un ejemplo de la construcción de una instrucción IF en
LISP se denota de la siguiente manera:
(IF<condicion><consecuencia><alternativa>)

Ejemplo:
(if (= y 0) 9999999 (/ x y))
Para poder utilizar en nuestro proyecto creamos un archivo
.txt y ponemos la gramática ya mencionada Para el
ejemplo lo llamaremos Entrada.txt
Ejecución
package jlexcup;
import java.util.logging.Logger;
public class Jflexcup {
public static void main(String[] args) {
try{
parser P=new parser();
P.cargar("C:UsersPaulDesktopjflexcupEntrada.txt");
}catch(Exception ex){
//Logger.getLogger(jlexcup.class.getName()).log(level.SEVERE,null,ex);}
}
}
}

Jlex y cup en java

  • 1.
    Jlex y Cupen Java
  • 2.
    Requerimientos  Tener instalado.   JDK cualquierade sus versiones. Sitios de descarga   JLex http://www.cs.princeton.edu/~appel/modern/j ava/JLex/ Java Cup http://www.cs.princeton.edu/~appel/modern/jav a/CUP/java_cup_v10k.zip
  • 3.
    Antes de Comenzar Se   requiere configurar las variables de entorno. Abrimos cmd Ingresamos al directorio donde esté instalado el JDK  Ej:  c:ProgramFilesJavajdk1.7.0_02bin> Tipeamos el comando  set CLASSPATH=c:ProgramFilesJavajdk1.7.0_0 2bin>;%CLASSPATH%  set CLASSPATH=c:ProgramFilesJavajdk1.7.0_0 2bin>;%PATH%
  • 4.
    INSTALACIÓN JLEX  El archivoque se descargará es el archivo Main.java correspondiente a JLex. Este archivo se puede guardar en cualquier lugar del disco duro, pero luego será necesario, para su integración con Netbeans, moverlo al directorio de instalación de JDK.
  • 5.
    COMPILACIÓN DE JLEX  Luegode haber copiado/movido el archivo a esta nueva locación, es necesario compilar desde consola esta clase, para que se generen los archivos .class necesario para la completa integración de JLex a Netbeans.  Para compilar el archivo Main.java desde la consola será necesario ubicarse en consola en la carpeta de instalación de JDK y luego dirigirse al subdirectorio donde se copió el archivo Main.java perteneciente a JLex.  El resultado de la compilación terminará con la creación de los archivos .class necesarios para la total integración de JLex.
  • 6.
    INTEGRACIÓN DE CUP Para integrar JLex y Cup al proyecto será necesario pegar las carpetas JLex y Java_Cup que han sido previamente colocadas en la carpeta del JDK. Estas dos carpetas deberán de ser copiadas en el subdirectorio src del proyecto creado.
  • 7.
    ANALIZADOR LEXICO JLEX    Ladefinición de reglas para el analizador léxico, deberá declarase en un ARCHVO. En este ejemplo la case con las reglas del analizador léxico está bajo el nombre “Scanner”. Para la creación de esta clase se deberá de utilizar un editor de texto. Quedando estructurado el archivo de la siguiente manera:  (NOTA: ABRIR ARCHIVO SCANNER )
  • 8.
    USO DEL JFLEX     Abrimosuna consola (cmd) Nos ubicamos en el directorio del JDK Y procedemos a compilar el archivo scanner Dentro del directorio donde esté Scanner se crea Scanner.Java que es el archivo compilado
  • 9.
    USO DE JAVA_CUP De igual manera desde una consola  Nos ubicamos en el directorio del JDK y compilamos el archivo parser
  • 10.
     Nos dirigimos aldirectorio del JDK y ubicamos los archivos parser.java y sym.java  Estos archivos deben ser trasladados al directorio src del Proyecto de Netbeans  Al igual que scanner.java  Quedando algo asi:----------->
  • 11.
    PRUEBA DE LAGRAMÁTICA En proyecto creamos una clase denominada token la cual contiene lo sig:  package jlexcup; public class token { String valor; public token(String val) { this.valor=val; } public String getValue() { return valor; } } //Esta es la funcion que vamos a necesitar
  • 12.
    GRAMÁTICA A USAR  Lagramática a utilizar en este ejemplo de integración de JLex y Cup con Java utilizando un IDE como Netbeans para el desarrollo del ejemplo consiste en la gramática libre de contexto necesaria para reconocer una estructura de una instrucción IF en lenguaje Lisp.  Un ejemplo de la construcción de una instrucción IF en LISP se denota de la siguiente manera: (IF<condicion><consecuencia><alternativa>) Ejemplo: (if (= y 0) 9999999 (/ x y)) Para poder utilizar en nuestro proyecto creamos un archivo .txt y ponemos la gramática ya mencionada Para el ejemplo lo llamaremos Entrada.txt
  • 13.
    Ejecución package jlexcup; import java.util.logging.Logger; publicclass Jflexcup { public static void main(String[] args) { try{ parser P=new parser(); P.cargar("C:UsersPaulDesktopjflexcupEntrada.txt"); }catch(Exception ex){ //Logger.getLogger(jlexcup.class.getName()).log(level.SEVERE,null,ex);} } } }