Manual J-Flex

Páginas: 6 (1296 palabras) Publicado: 2 de julio de 2012
Manual Jflex Sin Cup Compiladores 1 Sección B

EN WINDOWS
Universidad De San Carlos Facultad de Ingeniería Escuela de Ciencias y Sistemas Organización de Lenguajes y Compiladores 1 Ing. Manuel Haroldo Castillo Reyna Aux. Aura Luz Cifuentes Reyes

Jflex es una herramienta desarrollada en Java, la cual genera un programa en Java a partir de una especificación en el que se indican los tokenspermitidos por nuestro lenguaje con la ayuda JAVACUP es un analizador sintáctico o sea un parser generador vamos a gestionar jflex. parser-generador

Manual Jflex Sin Cup Compiladores 1 Sección B

Instalación:
Paso 1: Descarga de Libreras
Descargamos las fuentes de JFlex en la página: http://jflex.de/download.html

Paso 2: Creación de Carpeta contenedora de fuentes
Creamos la Carpeta“Fuentes” dentro de la unidad C: Descomprimimos el contenido de la carpeta anteriormente descargado: jflex-1.4.3 dentro de la carpeta de Fuentes.

Paso 3: Creación de Archivo de Configuración Lexico.bat
Cambiamos la dirección de JAVA_HOME por la dirección de nuestra actual JDK. Agregamos la dirección de nuestro actual proyecto. Fichero: Lexico.bat SET JAVA_HOME="C:\Program Files(x86)\Java\jdk1.6.0_17\bin" SET PATH=%JAVA_HOME%;%PATH% SET CLASSPATH=%JAVA_HOME%; SET JFLEX_HOME= C:\Fuentes\jflex-1.4.3 cd C:\Users\lucita\Documents\NetBeansProjects\SimpleLex\src\simplelex java -jar %JFLEX_HOME%\lib\JFlex.jar scanner.jflex pause

Paso 4: Creación de un proyecto de Netbeans
File -> New Project -> Java Application Project Name: SimpleLex

Manual Jflex Sin Cup Compiladores 1 Sección B Dentro dela carpeta del proyecto, agregamos una carpeta “lib”. Copiamos la librería: java-cup-11a-runtime.jar dentro de la carpeta lib. Clic secundario en Librerías, y le damos Agregar nuevo JAR/FOLDER.

Paso 5: Creación Scanner.jflex
Scanner.jflex: package simplelex; import java_cup.runtime.Symbol; import java.util.LinkedList;

%% tstring numero letra iden =[\"] [^\"\n]+ [\"\n] =[0-9]+ "."? [0-9]*=[a-zA-ZÑñ]+ ={letra}({letra}|{numero}|"_")*

%cupsym simbolo %class scanner %cup %unicode %public %line

Manual Jflex Sin Cup Compiladores 1 Sección B %char %ignorecase %{ /* Lista con errores sintacticos */ public LinkedList lista=new LinkedList(); /* Metodo que es llamado al encontrar un error lexico */ private void ErrorScan(int linea, int columna, String valor){ lista.add(new Errores(linea,columna, "Error lexico en el caracter "+valor) ); } %} %%

{tstring} {numero} {iden} [ \t\r\f\n]+ .

{return new Symbol(simbolo.tstring, yychar,yyline,new String(yytext()));} {return new Symbol(simbolo.numero, yychar,yyline,new String(yytext()));} {return new Symbol(simbolo.iden, yychar,yyline,new String(yytext()));} { /* Se ignoran */} { ErrorScan(yyline,yychar,yytext()); }

Paso 6:Creación Errores.java
Fichero: Errores.java package simplelex; public class Errores { protected Integer Linea; protected Integer Columna; protected String Descripcion; public Errores(Integer Linea, Integer Columna, String Descripcion) { this.Linea = Linea; this.Columna = Columna; this.Descripcion = Descripcion; } }

Paso 7: Creación Simbolo.java
Fichero: Simbolo.java Aquí declaras todos los tokensque definistes en el análisis lexico.

Manual Jflex Sin Cup Compiladores 1 Sección B public class simbolo { public static final int iden = 12; public static final int tstring = 11; public static final int EOF = 0; public static final int numero = 10; public static final int error = 1; } NO OLVIDES DECLARAR EOF=0 y error=1. ESTA CLASE REPRESENTA LOS TOKEN O COMPONENTES LEXICOS QUE FUERONDECLARADOS EN JFLEX ej: {tstring} {return new Symbol(simbolo.tstring, yychar,yyline,new String(yytext()));}

Paso 8: Creación Main.java
Fichero: Main.java package simplelex; import java_cup.runtime.Symbol; import java.io.BufferedReader; import java.io.StringReader; import java.util.Iterator; import java.util.LinkedList; public class Main { public static void main(String[] args) { //Archivo de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Manual de Flex
  • Manual FLEX-PDE español
  • Manual Power Flex 70
  • Manual Power Flex
  • flexo
  • Flex
  • Flexo
  • Flex

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS