]> git.llucax.com Git - z.facultad/75.42/calculadora.git/blob - parser_variable_test.c
Se completa el TP. Aparentemente anda todo. Falta documentación.
[z.facultad/75.42/calculadora.git] / parser_variable_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_parser_variable().
21  */
22
23 #include <stdio.h>
24 #include <stdlib.h>
25 #include <string.h>
26
27 #include "memdebug_debugger.h"
28 #include "variable_list.h"
29 #include "parser_variable.h"
30
31 /**
32  * Programa para probar parser_variable().
33  *
34  * \return EXIT_SUCCESS si se realizó bien, EXIT_FAILURE si no.
35  */
36 int main(int argc, char* argv[]) {
37     /* Declaración de variables. */
38     int i;
39     DLList* lista;
40     ParseError* error;
41
42     if (argc < 2) {
43         fprintf(stderr, "Debe pasar variables a evaluar como parámetros.\n");
44         fprintf(stderr, "Ejemplo: %s 'b = 50' 'a   = 1.7\n", argv[0]);
45         return EXIT_FAILURE;
46     }
47
48     lista = DLList_new();
49     if (!lista) {
50         fprintf(stderr, "No se pudo crear la lista.\n");
51         return EXIT_FAILURE;
52     }
53
54     error = ParseError_new();
55     if (!error) {
56         fprintf(stderr, "No se pudo crear el error.\n");
57         return EXIT_FAILURE;
58     }
59
60     for (i = 1; i < argc; i++) {
61         if (!parser_variable(argv[i], strlen(argv[i]), lista, error)) {
62             error->line = i;
63             ParseError_print(error, stderr);
64         }
65     }
66
67     DLList_variable_print(lista, stdout);
68
69     DLList_variable_delete(lista);
70
71     ParseError_delete(error);
72
73     /* Veo si pierdo memoria. */
74     memdebug_end();
75
76     return EXIT_SUCCESS;
77 }
78