Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-1322
I Semestre 2007
[<=] [home] [<>] [\/] [=>]
CI-1322 Autómatas y compiladores

Tarea #5 [solución]

Cierra corchetes C++

      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.

[mailto:] Entrega de Tareas

Tiempo de entrega: 1 semana
Modalidad: En parejas

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2007
Derechos de autor reservados © 2007
[home] <> [/\]