Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porJenaro Jacobo Modificado hace 9 años
1
Mejorar la gestión del vacio 1Prácticas EDI - © Juan Ramón Pérez
2
Gestión de vacío (I) Hay reglas en las que una de las alternativas es vacío: ::= | vacío El vacío indica que no debemos verificar nada en esta regla: siempre devolverá true. Dejaremos que la siguiente regla en el orden del análisis compruebe que todo funciona correctamente. ::= En este caso, el token debería verificar 2Prácticas EDI - © Juan Ramón Pérez
3
Problema Prácticas EDI - © Juan Ramón Pérez3 ¿Qué ocurre si cuando estamos analizando la primera parte de la regla hay un error por el medio? ::= | vacío ::= TOKEN_IDENTIFICADOR ‘=’ TOKEN_CADENA
4
Solución En las reglas que contengan vacío obtenemos un Token, aunque no lo tengamos que procesar en esta regla. Buscamos el primer terminal que debería aparecer si se verifica la primera parte de la regla. Comprobamos si es ese token el que hemos leído. Si es así, nos ponemos a analizar la primera parte de la regla: Si es correcta devolvemos true Si hay alguna discordancia de tokens devolvemos false Si no, devolvemos true y dejamos que otras reglas analicen el token devuelto. 4Prácticas EDI - © Juan Ramón Pérez
5
Nueva versión para atributos ::= | vacío Implementación: token=lexico.siguienteToken(); if (token.verCodigo()==TOKEN_IDENTIFICADOR) { // Evalua primera parte de la regla if (atributo()) { if (atributos()) { return true; } return false; } else // segunda parte de la regla return true; // vacío … 5Prácticas EDI - © Juan Ramón Pérez
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.