La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Implementación del analizador léxico Prácticas EDI - © Juan Ramón Pérez1.

Presentaciones similares


Presentación del tema: "Implementación del analizador léxico Prácticas EDI - © Juan Ramón Pérez1."— Transcripción de la presentación:

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?


Descargar ppt "Implementación del analizador léxico Prácticas EDI - © Juan Ramón Pérez1."

Presentaciones similares


Anuncios Google