Closed BraulioVM closed 6 years ago
110c0699585a913ecdfb424da1a24d1d8527e72d debería haber solucionado esto (?)
En efecto, 110c069 debería haberlo solucionado, pero introdujimos otro error en 6e3b0d956f9164dad263b490ec6284ee591c34b9. El problema era que
procedimiento foo(entero a){}
triggereaba https://github.com/BraulioVM/pl/blob/6e3b0d956f9164dad263b490ec6284ee591c34b9/compilador/gramatica.y#L115, pero también, obviamente,
https://github.com/BraulioVM/pl/blob/6e3b0d956f9164dad263b490ec6284ee591c34b9/compilador/gramatica.y#L89-L90
De modo que en la tabla aparecían una variable y un parámetro de nombre n
entre el procedimiento
y la marca
. Al terminar el bloque TS_fin_bloque
eliminaba el parametro_formal
pero no la variable
y en la siguiente declaración de procedimiento se intentaba introducir de nuevo n
como variable
, produciendo un error.
828d48e soluciona esto y #9 de forma más elegante.
Actualmente el código:
da un error por haber redeclarado
a
. Habría que evitar ese comportamiento