Cria dicionário de totais.
[cascardo/declara.git] / declara.c
index db113ad..fd1d534 100644 (file)
--- a/declara.c
+++ b/declara.c
 #include "declaracao.h"
 #include "cmd.h"
 #include "base.h"
+#include "contribuinte.h"
 #include "rendimento.h"
+#include "calcula.h"
+#include "gera.h"
 
 static int realprocess(struct declaracao *dec, int fd)
 {
@@ -34,11 +37,17 @@ static int realprocess(struct declaracao *dec, int fd)
        size_t lsz = 0;
        FILE *f;
        int r;
+       int n = 1;
        f = fdopen(fd, "r");
        if (!f)
                return -errno;
        while ((r = getline(&line, &lsz, f)) > 0) {
-               cmd_run(dec, line);
+               r = cmd_run(dec, line);
+               if (r < 0) {
+                       fprintf(stderr, "Não foi possível executar comando na linha %d: %s\n",
+                               n, strerror(-r));
+               }
+               n++;
        }
        free(line);
        return r;
@@ -79,7 +88,10 @@ int main(int argc, char **argv)
 
        cmd_init();
        base_cmd_init();
+       contribuinte_cmd_init();
        rendimento_cmd_init();
+       calcula_cmd_init();
+       gera_cmd_init();
 
        filename = argv[1];
        r = process(filename);