// Verificador de paréntesis, corchetes y llaves. Paso 6 del laboratorio.
#ifndef BRACKETS_H
#define BRACKETS_H

#include <string>

struct BracketReport {
    int line;             // Línea del primer error, desde 1. Es 0 si no hay errores.
    std::string message;  // Vacío si no hay errores.
};

// Busca el primer error de ( ) [ ] { } en un texto. Todo lo demás se ignora.
// Hay tres errores posibles, con estos mensajes exactos:
//   ')' sin abrir                                 en la línea del cierre.
//   '}' no cierra el '(' de la línea 3            en la línea del cierre.
//   '(' sin cerrar                                al terminar el texto, en la línea de la
//                                                 última apertura pendiente, la del tope.
BracketReport check_brackets(const std::string& text);

#endif
