ir treewalk fixes
[henge/apc.git] / src / apc.c
index 0e7c124..df4810e 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};
 long  sys_pagesize;
-
+  
 int main(int, char*[]);
 
 extern //lexer.c
@@ -35,8 +36,14 @@ extern //scanner.c
 void scanner_quit(void);
 extern //scanner.c
 int  scanner_scanpath(char const*);
-//extern //ir.c
-//int  ir_init(void);
+extern //ir.c
+int  ir_init(void);
+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
@@ -58,12 +65,9 @@ int main
 #define DONE   -1
 #define SCANPATH (cargs['d'] ? cargs['d'] : "./")
 { int   opt;
-
  getopt:
   switch (opt = getopt(argc, argv, OPTS))
-  { case DONE:
-      break;
-    case 'd' :
+  { case 'd' :
     case 'o' :
       if (strnlen(optarg, MAXSTR) != MAXSTR)
         { cargs[opt] = optarg;
@@ -77,16 +81,45 @@ int main
       printf(USAGE);
       printf(USAGE_LONG);
       exit(EXIT_SUCCESS);
+    case DONE:
+      break;
   }
   if ((sys_pagesize = sysconf(_SC_PAGESIZE)) == 0)
     sys_pagesize = DEFAULT_PAGESIZE;
-
-  if (scanner_init())// || ir_init())
+  if (ir_init())
     { perror("init");
       exit(EXIT_FAILURE);
     }
-  scanner_scanpath(SCANPATH);
-  scanner_quit();  
+#if 0
+  if (scanner_scanpath(SCANPATH))
+    { perror("scanner");
+      exit(EXIT_FAILURE);
+    }
+#endif
+  ir_class class;
+  ir_set   set;
+  int i, j;
+  char wordbuf[0xFFF];
+  for (class = ir_class_root(), i = 0, j = 0; i < 100; i++)
+    { sprintf(wordbuf,"Class%i",i);
+      class = ir_class_addchild(class,(uint8_t*)wordbuf);
+      sprintf(wordbuf,"c%i-s%i",i,j++);
+      set = ir_class_addset(class, (uint8_t*)wordbuf);
+      sprintf(wordbuf,"c%i-s%i",i,j++);
+      ir_class_addset(class, (uint8_t*)wordbuf);
+      sprintf(wordbuf,"c%i-s%i",i,j++);
+      ir_class_addset(class, (uint8_t*)wordbuf);
+      sprintf(wordbuf,"c%i-sc%i",i,j=0);
+      set = ir_set_addchild(set, (uint8_t*)wordbuf);
+      sprintf(wordbuf,"c%i-sc%i",i,++j);
+      ir_set_addchild(set, (uint8_t*)wordbuf);
+      sprintf(wordbuf,"c%i-sc%i",i,++j);
+      set = ir_set_addchild(set, (uint8_t*)wordbuf);
+      sprintf(wordbuf,"c%i-sb%i",i,j=0);
+      ir_set_addchild(set, (uint8_t*)wordbuf);
+    }
+  ir_test();
+  ir_linker();
+  ir_condenser();
   exit(EXIT_SUCCESS);
 }
-