Closed cgosorio closed 3 years ago
Roberto, salvo quizás algunos de los test que tienes ahora, creo que no se «rompería» nada si sustituyes el antiguo toString
por el toString2
que he añadido en este pull request. Es mejor que el anterior, porque con este los ejercicios de evaluación son más interesantes al forzar que el alumno sepa manejar las precedencias y asociatividades de los operadores.
He descubierto un error en uno de los métodos.
Lo que sigue:
public boolean esBinario() {
return this.esCierre() || this.esUnion();
}
debería haber sido:
public boolean esBinario() {
return this.esConcat() || this.esUnion();
}
En todo caso, en un pull request que estoy preparando esto estaré corregido.
Roberto este pull request podrías ignorarlo, dado que he hecho otro a posteriori (rama improved-parser
) que incorpora los cambios de este y corrige el error del que informaba arriba.
Con este nuevo método, al generar la cadena que representa la expresión regular, se tienen en cuenta las precedencias y asociativiades de los operadores y no se generan paréntesis innecesarios.
He preferido crear un nuevo método
toString2
en vez de sustituir el antiguo para evitar «romper» nada. Pero creo que tal cual está podrías sustituir sin problemas eltoString
original.