]> git.llucax.com Git - z.facultad/75.42/calculadora.git/blobdiff - parser_equation_test.c
Últimos retoques.
[z.facultad/75.42/calculadora.git] / parser_equation_test.c
index 0f6cae2214ea7ff812667bbe1c682c7d15f7fac1..20f7efba798ce514a89ef46b914aedb3cf1da26e 100644 (file)
@@ -25,6 +25,7 @@
 #include <string.h>
 
 #include "memdebug_debugger.h"
+#include "equation_list.h"
 #include "parser_equation.h"
 
 /**
  */
 int main(int argc, char* argv[]) {
     /* Declaración de variables. */
+    int i;
     DLList* lista;
     ParseError* error;
 
-    if (argc != 2) {
-        fprintf(stderr, "Debe pasar la ecuación a evaluar como parámetro.\n");
-        fprintf(stderr, "Ejemplo: %s 'b = 50 + h*2'\n", argv[0]);
+    if (argc < 2) {
+        fprintf(stderr, "Debe pasar ecuaciones a evaluar como parámetros.\n");
+        fprintf(stderr, "Ejemplo: %s 'b = 50 + h*2' 'a   = b+1\n", argv[0]);
         return EXIT_FAILURE;
     }
 
@@ -55,14 +57,21 @@ int main(int argc, char* argv[]) {
         return EXIT_FAILURE;
     }
 
-    if (!parser_equation(argv[1], strlen(argv[1]), lista, error)) {
-        ParseError_print(error, stderr);
-        return EXIT_FAILURE;
+    for (i = 1; i < argc; i++) {
+        if (!parser_equation(argv[i], strlen(argv[i]), lista, error)) {
+            error->line = i;
+            ParseError_print(error, stderr);
+        }
     }
 
     DLList_equation_print(lista, stdout);
 
-    DLList_delete(lista);
+    DLList_equation_delete(lista);
+
+    ParseError_delete(error);
+
+    /* Veo si pierdo memoria. */
+    memdebug_end();
 
     return EXIT_SUCCESS;
 }