Universidad de Costa Rica
|
|
Algunas veces los programadores C++ deben trasladar código
de un lugar a otro en sus programas, con el desafortunado problema
de algún corchete "{
" se queda perdido. Pese a
que el compilador C++ siempre emite un mensaje de error
pertinente, no siempre es fácil saber cuál es es
último corchete abierto que no está cerrado.
Escriba un programa Lex/Yacc (o, más bien,
Flex/Bison)
que determine si un programa C++ tiene correctamente anidados los
corchetes. Además, también haga que su programa
reporte aquellos casos en que la declaración de una clase
no termina con el caracter ";
" (punto y coma). Use el
lenguaje C++ para construir su programa.
01: template <class T> 02: class SinFinal { 03: // ... 04: } /* no tiene ";" */ 05: 06: void fun(); 07: |
01: // fun.cpp 02: void fun() { 03: #if 0 04: yin(); yan() 05: if ( false ) { 06: } 07: // EOF: fun.cpp |
Error(04): Falta ";" para la clase SinFinal
|
Error(07): Falta "} " para corchete en línea (02)
|
Entregue su tarea por correo electrónico, como lo hizo anteriormente.
|
Adolfo Di Mare <adolfo@di-mare.com>.
|