instalacion jflex y cup
TRANSCRIPT
[Año]
Guía de Instalación JFlex y Cup
Organización de Lenguajes y Compiladores 1
Unas de las fases para realizar un compilador son el análisis léxico y análisis sintáctico del
lenguaje.
JFlex es una herramienta desarrollada en Java que se usa para realizar el analizador léxico
de un compilador; y CUP es la herramienta que se usa para generar el analizador
sintáctico.
La presente guía mostrará la instalación de JFlex y Cup para crear analizadores léxicos y
sintácticos en el lenguaje JAVA, instalados en el Sistema Operativo Windows 7.
Prerrequisitos
Para poder instalar JFlex y Cup es necesario de los siguientes requerimientos:
1. JDK de java, el cual puede ser descargado de la página
http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-
download-432154.html, se selecciona el tipo de JDK de acuerdo a la arquitectura y
SO del computador a utilizarse.
2. Ya instalado el JDK, tener las variables de entorno del equipo (Path y Classpath)
con la ruta de la carpeta BIN en donde se halla instalado el JDK.
3.
INSTALACIÓN DE JFLEX Y CUP
DESCARGA LAS FUENTES NECESARIAS.
- Descargar el archivo jflex-1.4.3.zip disponible en http://jflex.de/download.html.
- Descargar el CUP 11a beta 20060608 runtime y el archivo CUP 10k sourcecode
release disponible en http://www2.cs.tum.edu/projects/cup/
CREACIÓN DE CARPETA CONTENEDORA DE FUENTES
- Crear una carpeta en el directorio C:/ con el nombre deseado, en este documento
se creara una llamada “analizadores” (C:\analizadores).
- Descomprimir la carpeta JFlex descargada dentro de la carpeta “analizadores”.
- Descomprimir el archivo CUP 10k sourcecode release y copiar la carpeta java_cup
dentro de la carpeta “analizadores”.
CREACIÓN DE ARCHIVOS DE CONFIGURACIÓN
lexico.bat
Para compilar los archivos .jflex es necesario recurrir a la consola cada vez que se modifica
o se escribe algo nuevo en este tipo de documentos. Esto puede ser un trabajo que
consuma tiempo y esfuerzo del programador así que se crean estos archivos para que el
proceso sea más eficiente.
Se abre un documento de texto (bloc de notas o notepad++) y se escribe lo que se
muestra en la figura:
JAVA_HOME tiene la ruta en donde está instalado el JDK.
Se coloca la carpeta en donde se tiene el archivo el archivo .jflex
sintactico.bat
Es un archivo igual al lexico.bat y contiene las siguientes instrucciones:
NOTAS:
☞ Estos archivos pueden ser guardados en cualquier parte.
☞ Los nombres de los archivos pueden ser escogidos aleatoriamente o al gusto del
usuario.
IMPLEMENTACIÓN EN UN PROYECTO EN NETBEANS
- Se abre Netbeans y se crea un nuevo proyecto de tipo Java Application.
- Dentro de la carpeta del proyecto, agregar una carpeta llamada “lib” y copiar en
ella el ejecutable java-cup-11a-runtime.jar
- Regresar al IDE, dar clic derecho en bibliotecas, seguido de un clic en Agregar un
archivo JAR/Carpeta…
- Se busca el archivo lib creado recientemente y agregamos el java-cup-11a-
runtime.jar.
CREACIÓN DEL SCAN.JFLEX
CREACIÓN DEL ARCHIVO PARSER.CUP
Estos documentos se guardan en la carpeta src del proyecto.
PRUEBAS DE COMPILACIÓN Se da doble clic en los ficheros lexico.bat y sintactico.bat, esto creará 3 archivos .java
dentro del proyecto. Al tener estos tres archivos en el proyecto ya es más fácil incluir
funciones que puedan interactuar con ellos y crear el compilador.
lexico.java es el archivo que contiene un escáner para analizar léxicamente el
archivo fuente. El nombre que aparece se debe a las directivas del archivo .jflex
analizador_sintactico.java contiene el parser para analizar sintácticamente el
archivo fuente.
tabla_simbolos.java contiene la tabla de símbolos del compilador a crearse.
EXPRESIONES REGULARES
Identificadores
L _? ( L | D )*
Números
-? D ( . D+ | D*)
Comentarios
// (lo que sea) \n
/* lo que sea */
Operaciones matemáticas
-? D ( . D+ | D*) (( + | - | / | * ) -? D ( . D+ | D*) )+