]> git.llucax.com Git - z.facultad/75.42/calculadora.git/blobdiff - parser_equation_test.c
Versión preliminar del programa del TP. Falta evaluar ecuaciones.
[z.facultad/75.42/calculadora.git] / parser_equation_test.c
index 0f6cae2214ea7ff812667bbe1c682c7d15f7fac1..2d9be3eb684a691205c6eef60f420babb2f5e63f 100644 (file)
  */
 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 +56,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;
 }