api update
[henge/apc.git] / src / apc.c
index e49d03b..4e71155 100644 (file)
--- a/src/apc.c
+++ b/src/apc.c
 #include <unistd.h> //getopt, sysconf
 /* Internal */
 #include "parser.tab.h" //bison
+#include "ir.h"
 
 #define DEFAULT_PAGESIZE 4096
-const char* cargs['Z'] = {0};
+const char** cargs;
 long  sys_pagesize;
-
+  
 int main(int, char*[]);
 
 extern //lexer.c
@@ -41,6 +42,8 @@ extern //ir.c
 int  ir_linker(void);
 extern //ir.c
 int  ir_condenser(void);
+extern
+void     ir_test(void);
 
 /* Main entry from terminal
    parses the command line and kicks off recursive scanning
@@ -62,7 +65,7 @@ int main
 #define DONE   -1
 #define SCANPATH (cargs['d'] ? cargs['d'] : "./")
 { int   opt;
-
+  cargs = (const char**) malloc('Z');
  getopt:
   switch (opt = getopt(argc, argv, OPTS))
   { case 'd' :
@@ -84,18 +87,19 @@ int main
   }
   if ((sys_pagesize = sysconf(_SC_PAGESIZE)) == 0)
     sys_pagesize = DEFAULT_PAGESIZE;
-
-  if (scanner_init() || ir_init())
+  if (ir_init())
     { perror("init");
+      free(cargs);
       exit(EXIT_FAILURE);
     }
   if (scanner_scanpath(SCANPATH))
     { perror("scanner");
+      free(cargs);
       exit(EXIT_FAILURE);
     }
-  scanner_quit();
+  ir_test();
   ir_linker();
   ir_condenser();
+  free(cargs);
   exit(EXIT_SUCCESS);
 }
-