Documente Academic
Documente Profesional
Documente Cultură
Manual de sfalas
Se ejecuta el ejecutable Sefalas.jar Primero se va a : Archivo=> editar posteriormente se escribe lo siguiente /es una nueva interfaz
Ahora tenemos que ir a: Especificacin LEX => validar y listo se activara Anlisis Lxico=> Generar Automata
Manual de Jflex
Es un ejecutable Jflex.jar que procesa informacin a extensin java Primero tenemos que guardar un archivo con extensin ejemplo.flex /* Identifica los nmero en base 2 y a 16 */ %% %class ejemplo %standalone Blanco = [\r\n \t\f] %% {Blanco}+ {;} [01]+ {System.out.print("BASE 2\n");} [0-2]+ {System.out.print("BASE 3\n");} [0-3]+ {System.out.print("BASE 4\n");} [0-4]+ {System.out.print("BASE 5\n");} [0-5]+ {System.out.print("BASE 6\n");} [0-6]+ {System.out.print("BASE 7\n");} [0-7]+ {System.out.print("BASE 8\n");} [0-8]+ {System.out.print("BASE 9\n");} [0-9]+ {System.out.print("BASE 10\n");} [0-A]+ {System.out.print("BASE 11\n");} [0-B]+ {System.out.print("BASE 12\n");} [0-C]+ {System.out.print("BASE 13\n");} [0-D]+ {System.out.print("BASE 14\n");} [0-E]+ {System.out.print("BASE 15\n");} [0-F]+ {System.out.print("BASE 16\n");}
. {} Ahora tenemos que ejecutar el archivo jflex.jar y buscar la ruta donde se ha guardado el ejemplo.flex y seleccionamos
Ahora compilamos el archiva ejemplo.java copiamos al disco C o en la misma carpeta se puede compilar y nos genera un archivo ejemplo.class
Ahora guardamos el ejemplo a compilar en el mismo lugar donde se genero el archivo ejemplo.class
Manual de flex
flex-2.5.4a-1 => instlalo 1. primero tenemos que descomprimir el , el ejemplo se guarda con extensin uno.flex
%{ unsigned NroCaracteres=0, NroPalabras=0,NroLineas=0; %} word [a-z]+ eol \n %% {word} { NroPalabras++; NroCaracteres+=yyleng; } {eol} { NroCaracteres++; NroLineas++; } . { NroCaracteres++; } %%
int main(int argc, char **argv) { if(argc>1) { FILE *file; file=fopen(argv[1],"r"); if(!file) { fprintf(stderr, "no se puede abrir el archivo %s\n",argv[1]); exit(1); } yyin=file; } yylex(); printf("Nro Lineas:%d\nNro Palabras:%d\nNro Caracteres:%d\n",NroLineas,NroPalabras,NroCaracteres); } En la ruta C:\Archivos de programa\GnuWin32\bin la ruta es donde se a instalado el flex2.14-1
Ahora se copia los ejemplos con extensin .lex por ejemplo uno.lex
Ahora copiamos el archivo generado a la siguiente ruta con nombre cambiado, dice: lex.yy a debe decir: lex como podemos observar es un archivi con extencion .c
Ahora tenemos que crea un archivo txt para ingresar los datos y guardarlo en la ruta C:\TC\BIN
Manual de JLexCUP
Los ejemplos que se guardan con exrencion lexico.lex y extensin sintac01.cup 1. guardamos en la carpeta C:\JLexCUPcon el nombre : lxico.lex package Binario; import java_cup.runtime.Symbol; import java.io.*; import java.lang.*; %% binario="0"|"1" pcoma=";" %cup
%line %char %% {binario} {return new Symbol(sym.BINARIO, new String(yytext()));} {pcoma} {return new Symbol(sym.PCOMA, new String(yytext()));} [ \t\r\f\n]+ {} . {System.out.println("Error lexico");}
2. guardamos en la carpeta C:\JLexCUPcon el nombre : sintac01.cup package Binario; import java_cup.runtime.*; import java.io.*; import java.lang.*; parser code {: public static void main(String args[]) throws Exception { System.out.println("Archivo de entrada: "+args[0]); new parser(new Yylex(new FileInputStream(args[0]))).parse(); } // fin procedimiento public void syntax_error(Symbol s) { String cadena=""; report_error("Error de sintaxis",null); } // fin procedimiento :} action code {: int decimal=0; // Variable que almacena el numero decimal String cadena=""; // Cadena que contiene el numero binario :} terminal String BINARIO, PCOMA; non terminal S, F, E; start with S;
10
S ::= F; F ::= F E PCOMA {:System.out.println(cadena+" = "+decimal); decimal=0; cadena="";:}; F ::= E PCOMA {:System.out.println(cadena+" = "+decimal); decimal=0; cadena="";:}; E ::= E BINARIO:val {:cadena=cadena+val; decimal=decimal*(2)+(new Integer(val).intValue());:}; E ::= BINARIO:val {:cadena=cadena+val; decimal=new Integer(val).intValue();:}; Primero tenemos que extraer en JLexCUP en el disco C
11
Se generaron 3 archivos de los cuales y una carpeta => es el nombre del paquete package
Cambiamos el nombre de archivo jenerado Dice Debe decir :lesico1.lex : Yylex se encuentra con extencion java se encuentra con extencion java
12
b. Si no queremos entrar por un texto los valores podemos introducir por teclado tenemos que hacer lo siguiente
13
14