Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porHil Serr Modificado hace 4 años
1
Implementación del analizador léxico Prácticas EDI - © Juan Ramón Pérez1
2
Codificar el AFD en Java Prácticas EDI - © Juan Ramón Pérez2 No vamos a utilizar ningún generador de analizadores léxicos. Vamos a codificar (a mano) el AFD. Crearemos una nueva clase Lexico. Los códigos de los tokens se corresponderán con constantes. Utilización de constantes: permiten fácil mantenimiento y se autocomentan.
3
Clase Lexico Prácticas EDI - © Juan Ramón Pérez3 Lexico Buffer estadoActual: entero caracterActual: caracter […] create(URL) siguienteToken(): Token Token codigo: entero lexema: String create(codigo:entero, lexema: String) set...() get...()
4
Implementación autómata en Java Prácticas EDI - © Juan Ramón Pérez4 estadoActual= ESTADO_INICIAL; do { caracterActual= buffer.siguienteCaracter(); switch (estadoActual) { case 1: transicionEstado1(); break; case 2: transicionEstado2(); […] } while (!esFinal(estadoActual)); Contiene estado actual del autómata Obtenemos carácter del buffer Realizamos transición correspondiente en función del estado actual Todo esto lo repetimos hasta llegar a un estado final
5
Implementación de transicionEstado1() Prácticas EDI - © Juan Ramón Pérez5 […] lexema += caracterActual; switch(caracterActual) { case '"':estadoActual = 5; break; case '=':estadoActual = 11; token= new Token(TOKEN_IGUAL, lexema); break; […] } Si llegan unas comillas, el Autómata pasa al estado q5 Si llega “=", el Autómata pasa al estado q11 que es un estado final Concatenamos la cadena con el último carácter leído Carácter leído en método principal desde el buffer
6
Analizar excepciones al funcionamiento normal Prácticas EDI - © Juan Ramón Pérez6 ¿Qué pasa cuando llega un fin de buffer a mitad de lectura de un token? ¿Qué pasa al ir a leer otro token llega un fin buffer?
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.