jlex y cup en java

13
Jlex y Cup en Java

Upload: marco-silva

Post on 18-Dec-2014

312 views

Category:

Technology


6 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Jlex y cup en java

Jlex y Cup en Java

Page 3: Jlex y cup en java

Antes de Comenzar Se requiere configurar las variables de

entorno. Abrimos cmd Ingresamos al directorio donde esté instalado el

JDK Ej: c:\ProgramFiles\Java\jdk1.7.0_02\bin>

Tipeamos el comando set CLASSPATH=c:\ProgramFiles\Java\jdk1.7.0_02\bin>;%CLASSPATH%

set CLASSPATH=c:\ProgramFiles\Java\jdk1.7.0_02\bin>;%PATH%

Page 4: Jlex y cup en java

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.

Page 5: Jlex y cup en java

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.

Page 6: Jlex y cup en java

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.

Page 7: Jlex y cup en java

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 )

Page 8: Jlex y cup en java

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

Page 9: Jlex y cup en java

USO DE JAVA_CUP De igual manera desde una consola Nos ubicamos en el directorio del JDK y

compilamos el archivo parser

Page 10: Jlex y cup en java

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:----------->

Page 11: Jlex y cup en java

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() { //Esta es la funcion que vamos a necesitar return valor; } }

Page 12: Jlex y cup en java

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

Page 13: Jlex y cup en java

Ejecuciónpackage jlexcup;

import java.util.logging.Logger;

public class Jflexcup {

public static void main(String[] args) { try{ parser P=new parser(); P.cargar("C:\\Users\\Paul\\Desktop\\jflexcup\\Entrada.txt"); }catch(Exception ex){ //Logger.getLogger(jlexcup.class.getName()).log(level.SEVERE,null,ex);} } }}