X-Git-Url: https://git.llucax.com/z.facultad/75.42/calculadora.git/blobdiff_plain/a8a23ec5e446b056284de0976cc1f3344ee8c6ad..0030baf01844749eb88b276c6e8ce417cdd6914d:/parseerror.c?ds=inline diff --git a/parseerror.c b/parseerror.c index 71f00f4..038314d 100644 --- a/parseerror.c +++ b/parseerror.c @@ -19,6 +19,8 @@ #include #include +#include "memdebug_debugger.h" + ParseError* ParseError_new(void) { ParseError* pe = malloc(sizeof(ParseError)); if (pe) { @@ -31,7 +33,9 @@ ParseError* ParseError_new(void) { void ParseError_delete(ParseError* pe) { if (pe) { - free(pe->message); + if (pe->message) { + free(pe->message); + } } free(pe); } @@ -81,10 +85,12 @@ size_t ParseError_print(ParseError* pe, FILE* fp) { if (!pe->pos) { /* Si hay mensaje. */ if (pe->message) { - return fprintf(fp, "Error: %s.\n", pe->message); + return fprintf(fp, "Error en la línea %u: %s.\n", pe->line, + pe->message); /* Si no hay mensaje. */ } else { - return fprintf(fp, "Error no especificado.\n"); + return fprintf(fp, "Error en la línea %u no especificado.\n", + pe->line); } /* Es un error de interpretación en una posición específica. */ } else {