Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Objetivo
El objetivo de este laboratorio es ver la implementacin de un analizador lxico por medio de la
herramienta JFlex.
En la variable path, vamos a poner la ruta de nuestro archivo lexer, normalmente est dentro
del sr del paquete que hemos creado.
8. Ahora ejecutamos la clase principal, para poder generar el archivo yylex (Es el que contiene el
analizador lexico). Debio aparecer un nuevo archivo llamado Lexer.java
9. Ahora vamos a crear una interfaz, para esto aadimos un nuevo formulario con el nombre
Interfaz, agregamos un textarea, un label y un botn. El label dir Resultado anlisis y el botn
dir Realizar Anlisis. En el textarea aparecern los resultados del anlisis.
10. A la clase Interfaz le agregamos el import para manejo de archivos
11. Creamos un metodo nuevo que se llama probarLexerFile
public void probarLexerFile() throws IOException{
Reader reader = new BufferedReader(new
FileReader("codigo.txt"));
Lexer lexer = new Lexer (reader);
while(true){
Token token = lexer.yylex();
if(token==null){
resultado = resultado+"EOF";
jTextArea1.setText(resultado);
return;
}
switch(token){
case ERROR:
resultado = resultado + "Error, simbolo no
reconocido \n";
case ID: case INT:
resultado = resultado + "TOKEN: "+token+"
"+lexer.lexeme+"\n";
break;
default:
resultado = resultado +"TOKEN: "+token+"\n";
}
}
}
12. Ahora vamos a definir la accin del botn analizar.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
jTextArea1.setText("");
File fichero= new File("codigo.txt");
BufferedWriter writer;
try{
writer = new BufferedWriter(new FileWriter(fichero));
writer.write(jTextArea2.getText());
writer.close();
}
catch(IOException ex){
JOptionPane.showMessageDialog(null, "No se pudo guardar
archivo de entrada debido a "+ ex.toString());
}
try{
//probamos nuestra clase Lexer.java
probarLexerFile();
}
catch(IOException ex){
System.out.println(ex.getMessage());
}
}
Hemos terminado, ahora pueden ejecutar el archivo interfaz para probar el resultado.