]> git.llucax.com Git - z.facultad/75.42/calculadora.git/blob - parser_equation_test.c
Versión preliminar del programa del TP. Falta evaluar ecuaciones.
[z.facultad/75.42/calculadora.git] / parser_equation_test.c
1 /* vim: set et sts=4 sw=4 fdm=indent fdl=1 fdn=0 fo+=t:
2  *
3  * Taller de Programación (75.42).
4  *
5  * Ejercicio Número 2:
6  * Programa calculadora.
7  *
8  * Copyleft 2003 - Leandro Lucarella <llucare@fi.uba.ar>
9  * Puede copiar, modificar y distribuir este programa bajo los términos de
10  * la licencia GPL (http://www.gnu.org/).
11  *
12  * Creado: sáb ago 30 18:24:31 ART 2003
13  *
14  * $Id$
15  */
16
17 /**
18  * \file
19  *      Hace varios chequeos para probar si anda bien la función
20  *      parser_equation().
21  */
22
23 #include <stdio.h>
24 #include <stdlib.h>
25 #include <string.h>
26
27 #include "memdebug_debugger.h"
28 #include "parser_equation.h"
29
30 /**
31  * Programa para probar parser_equation().
32  *
33  * \return EXIT_SUCCESS si se realizó bien, EXIT_FAILURE si no.
34  */
35 int main(int argc, char* argv[]) {
36     /* Declaración de variables. */
37     int i;
38     DLList* lista;
39     ParseError* error;
40
41     if (argc < 2) {
42         fprintf(stderr, "Debe pasar ecuaciones a evaluar como parámetros.\n");
43         fprintf(stderr, "Ejemplo: %s 'b = 50 + h*2' 'a   = b+1\n", argv[0]);
44         return EXIT_FAILURE;
45     }
46
47     lista = DLList_new();
48     if (!lista) {
49         fprintf(stderr, "No se pudo crear la lista.\n");
50         return EXIT_FAILURE;
51     }
52
53     error = ParseError_new();
54     if (!error) {
55         fprintf(stderr, "No se pudo crear el error.\n");
56         return EXIT_FAILURE;
57     }
58
59     for (i = 1; i < argc; i++) {
60         if (!parser_equation(argv[i], strlen(argv[i]), lista, error)) {
61             error->line = i;
62             ParseError_print(error, stderr);
63         }
64     }
65
66     DLList_equation_print(lista, stdout);
67
68     DLList_equation_delete(lista);
69
70     ParseError_delete(error);
71
72     /* Veo si pierdo memoria. */
73     memdebug_end();
74
75     return EXIT_SUCCESS;
76 }
77