Anda di halaman 1dari 7

Universidad de San Carlos de Guatemala Facultad de Ingeniera Escuela de Ciencias y Sistemas Organizacin de Lenguajes y Compiladores 1

Manual de Integracin de JLex y Cup a Java

Javier Estuardo Tello Flores 2009-15255

Page 1

Gramatica a utilizar
La gramtica a utilizar en este ejemplo de integracin de JLex y Cup con Java utilizando un IDE como Netbeans para el desarrollo del ejemplo consiste en la gramtica libre de contexto necesaria para reconocer una estructura de una instruccin IF en lenguaje Lisp. Un ejemplo de la construccin de una instruccin IF en LISP se denota de la siguiente manera: (IF<condicion><consecuencia><alternativa>) Ejemplo: (if (= y 0) 9999999 (/ x y))

Creacion de proyecto en Netbeans


Como paso inicial se proceder a crear un proyecto nuevo en Netbeans.

Luego se procedi a crear el proyecto con el nombre jflexcup

Page 2

Integracion de JLex y 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 debern de ser copiadas en el subdirectorio src del proyecto creado.

Analizador lxico (JLex)


La definicin de reglas para el analizador lxico, deber declarase en una clase. En este ejemplo la case con las reglas del analizador lxico est bajo el nombre ReglasLexicas.java. Para la creacin de esta clase se deber de utilizar un editor de texto. Quedando estructurado el archivo de la siguiente manera:

Page 3

Implementacin de Parser utilizando Cup


Para implementar un parser en Cup es necesario que se cree un archivo con sintaxis cup, conteniendo las reglas de la gramtica en notacin BNF para que esta sea reconocida por Cup. El archivo con las directrices de la gramtica de este ejemplo queda constituido de la siguiente manera:

Ambos archivos Scanner.java y Parser.java deben ser compilados mediante comandos de consola. Estos archivos han sido guardados en una carpeta en el disco C en una carpeta llamada JLexCup dentro de un directorio llamado Gramticas.

Page 4

Para lograr la compilacin de los archivos ser necesario ingresar las siguientes lneas de comando en la terminal de Windows.

Los archivos generados de la compilacin de Java_Cup se crean en la carpeta del JDK, estos habr que moverlos al directorio de la aplicacin, al igual que el archivo resultante de la compilacin de JLex.

Al terminar la compilacin de los archivos, estos deben ser trasladados a la carpeta del proyecto de Netbeans donde se desean utilizar.

Page 5

A la clase principal de este proyecto, llamada JLexCup.java le he agregado una instancia a la clase parser, clase en la cual se encuentra el mtodo de carga de archivo de entrada.

Teniendo el archivo de texto Entrada la siguiente informacin:

Page 6

La salida en la consola de Netbeans, sino se ha programado e implementado de manera correcta la gramtica para el reconocimiento de nuestra estructura de ejemplo, deber de ser la siguiente:

Page 7