Manual Instalacion Jflex Cup
Universidad de San Carlos de Guatemala Facultad de Ingeniería – Escuela de Ciencias y Sistemas
INSTALACIÓN
instalado JDK dentro de nuestra máquina.
IMPORTANTE: Para poder instalar JFlex y Cup primeramente se tiene que tener
Para efecto de este tutorial usaremos el IDE Netbeans para los archivos de configuración. DESCARGA DE LIBRERÍAS ••
http://jflex.de/download.html.
Descargamos
las
fuentes
de
JFlex
(versión
1.4.3)
desde
la
siguiente
página:
Descargamos las fuentes de Cup (CUP 10k) y el ejecutable CUP 11a beta 20060608 runtime en la página: http://www2.cs.tum.edu/projects/cup/.
CREACIÓN DE CARPETA CONTENEDORA DE LAS FUENTES • • • Creamos la carpeta “Fuentes” dentro de la unidad C: (Puedenescoger el lugar que ustedes prefieran, siempre tomando en cuenta dicha dirección para los siguientes pasos de la instalación, para este manual escogimos directamente la unidad C:). Descomprimimos la carpeta de JFlex anteriormente descargada (jflex-1.4.3) dentro de la carpeta “Fuentes”. Descomprimimos el contenido de la carpeta Cup anteriormente descargada (CUP 10K) y copiamos la carpeta java_cupen la carpeta “Fuentes”.
CREACIÓN DE UN PROYECTO EN NETBEANS • • • Creamos un proyecto nuevo en Netbeans. File-New Project-Java Application. En este manual llamaremos “Escaner” al nuevo proyecto en Netbeans. Dentro de la carpeta del proyecto creamos una carpeta “lib”, y colocamos el archivo java-cup11a-runtime descargado anteriormente. Dentro del árbol de carpetas del proyecto, damos clickderecho en la carpeta “Libraries”, seguidamente seleccionamos la opción “Add JAR/Folder…”.
Laboratorio de Compiladores I
Manual de instalación de JFlex y CUP Windows
Después buscamos en nuestra carpeta “lib” que se encuentra en la carpeta del proyecto, y seleccionamos el JAR java-cup-11a-runtime.
Laboratorio de Compiladores I
Manual de instalación de JFlex y CUP Windows
CREACIÓN DEARCHIVOS jflex y cup Escaner.jflex Para crear el archivo Escaner.jflex deben agregar a su proyecto un archivo vacío.
package escaner; import java_cup.runtime.Symbol; %% numero =[0-9]+ "."? [0-9]*
%cupsym tabla_simbolos %class lexico %cup %public %unicode %line %column %char %ignorecase %% /* PALABRAS RESERVADAS */ "IF" "WHILE" "FOR" {return new Symbol(tabla_simbolos.tif, yychar,yyline); }{return new Symbol(tabla_simbolos.twhile, yychar,yyline); } {return new Symbol(tabla_simbolos.tfor, yychar,yyline); }
/* OPERADOR */ "=" "+" "-" ";" /* {return new Symbol(tabla_simbolos.tigual, yychar,yyline); } {return new Symbol(tabla_simbolos.tmas, yychar,yyline); } {return new Symbol(tabla_simbolos.tmenos, yychar,yyline); } {return new Symbol(tabla_simbolos.tpcoma, yychar,yyline); } NUMEROS */{numero} /* BLANCOS */ [ \t\r\f\n]+
{return new Symbol(tabla_simbolos.tnumero, yychar,yyline,new String(yytext()));}
{ /* Se ignoran */}
/* CUAQUIER OTRO */ . { return new Symbol(tabla_simbolos.terrorlex, yychar,yyline,new String(yytext())); }
Laboratorio de Compiladores I
Manual de instalación de JFlex y CUP Windows
Parser.cup Para crear el archivo Parser.cup deben agregar asu proyecto un archivo vacío.
package escaner; import java_cup.runtime.*; parser code {: /**Metodo al que se llama automáticamente ante algún error sintactico.*/ public void syntax_error(Symbol s){ System.out.println("Error en la Línea " + (s.right+1) +" Columna "+s.left+ ". Identificador " +s.value + " no reconocido." ); } /**Metodo al que se llama en el momento en que ya no es posible unarecuperación de errores.*/ public void unrecovered_syntax_error(Symbol s) throws java.lang.Exception{ System.out.println("Error en la Línea " + (s.right+1)+ "Columna "+s.left+". Identificador " + s.value + " no reconocido."); } :} action code {: :} terminal tif , twhile, tfor, tigual, tmas, tmenos, tpcoma, tnumero, terrorlex; non terminal INICIA,L, TIPOS; start with INICIA; INICIA::= L; L::=L...
Regístrate para leer el documento completo.