#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*[]);
#define DONE -1
#define SCANPATH (cargs['d'] ? cargs['d'] : "./")
{ int opt;
- if ((sys_pagesize = sysconf(_SC_PAGESIZE)) == 0)
- sys_pagesize = DEFAULT_PAGESIZE;
- if (ir_init())
- { perror("init");
- exit(EXIT_FAILURE);
- }
+ cargs = (const char**) malloc('Z');
getopt:
switch (opt = getopt(argc, argv, OPTS))
{ case 'd' :
case DONE:
break;
}
+ if ((sys_pagesize = sysconf(_SC_PAGESIZE)) == 0)
+ sys_pagesize = DEFAULT_PAGESIZE;
+ if (ir_init())
+ { perror("init");
+ free(cargs);
+ exit(EXIT_FAILURE);
+ }
if (scanner_scanpath(SCANPATH))
{ perror("scanner");
+ free(cargs);
exit(EXIT_FAILURE);
}
ir_test();
ir_linker();
ir_condenser();
+ free(cargs);
exit(EXIT_SUCCESS);
}