Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
|
|
CI-1322 Autómatas y compiladores
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.
Entrega de Tareas
Tiempo de entrega: |
1 semana |
Modalidad: |
En parejas |
|
Soluciones
Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2007
Derechos de autor reservados © 2007