]> git.llucax.com Git - z.facultad/75.42/calculadora.git/blobdiff - parseerror.c
Últimos retoques.
[z.facultad/75.42/calculadora.git] / parseerror.c
index 71f00f413b0c1eea0b5eb644785023398f38704a..038314df067c434c55141a23ccdb923f183e6880 100644 (file)
@@ -19,6 +19,8 @@
 #include <stdio.h>
 #include <string.h>
 
+#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 {