X-Git-Url: https://git.llucax.com/z.facultad/75.42/calculadora.git/blobdiff_plain/7c3053f3f1930121b3ef87d1864f67069d28fe66..b30c891ff0ea6f7cfeb24fdd4044ec287c3df4d1:/parseerror.h?ds=sidebyside diff --git a/parseerror.h b/parseerror.h index 63f3d8c..628e9f0 100644 --- a/parseerror.h +++ b/parseerror.h @@ -21,27 +21,65 @@ #include #include +/** + * 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 */