#include "bool.h"
#include <stdlib.h>
+#include <stdio.h>
+/**
+ * Error de interpretación.
+ */
typedef struct {
+ /** Línea en la que se produjo el error. */
size_t line;
+ /** Posición en la que se produjo el error. */
size_t pos;
+ /** Mensaje de error. */
char* message;
} ParseError;
+/**
+ * Crea un nuevo ParseError.
+ *
+ * \return Nuevo ParseError.
+ */
ParseError* ParseError_new(void);
+/**
+ * Elimina un ParseError.
+ *
+ * \param pe ParseError a eliminar.
+ */
void ParseError_delete(ParseError* pe);
/**
+ * Cambia el mensaje al ParseError.
+ *
+ * \param pe ParseError al cual cambiar el mensaje de error.
+ * \param msg Nuevo mensaje.
+ *
* \return TRUE si se pudo alocar la memoria necesaria, FALSE si no.
*/
bool ParseError_set_message(ParseError* pe, const char* msg);
/**
+ * Cambia el mensaje especificando posición del error.
+ * Se epecifica la posición, el caracter incorrecto y que tipo de caracteres se
+ * esperaban.
+ *
+ * \param pe ParseError al cual cambiar el mensaje de error.
+ * \param msg Mensaje con los caracteres que se esperaban.
+ * \param pos Posición en la que se produjo el error.
+ * \param wrong_char Caracter incorrecto.
+ *
* \return TRUE si se pudo alocar la memoria necesaria, FALSE si no.
*/
bool ParseError_set_pos_message(ParseError* pe, const char* msg, size_t pos,
char wrong_char);
+/**
+ * Imprime un ParseError.
+ *
+ * \param pe ParseError a imprimir.
+ * \param fp Archivo en el cual imprimirlo.
+ *
+ * \return cantidad de caracteres impresos.
+ */
+size_t ParseError_print(ParseError* pe, FILE* fp);
+
#endif /* PARSEERROR_H */