void sigint_handler(int signum) { heap_clean(); printf("\nBye Bye!\n"); exit(EXIT_SUCCESS); return; }
int main(int argc, char *argv[]) { int opt; static struct option long_options[] = { {"load", 1, NULL, 'l'}, {"help", 0, NULL, 'h'}, {0, 0, 0, 0} }; signal(SIGINT, sigint_handler); /* Initialize heap. */ heap = heap_init(); /* Define global alias to TRUE object. */ t = heap_grab(NEW_SYMBOL("T")); /* Define global alias to NIL object. */ nil = NULL; /* Configure environment. */ environment = heap_grab(env_init()); welcome(); while((opt = getopt_long_only(argc, argv, "", long_options, NULL)) != -1) { switch(opt) { case 'l': #if 0 printf("load file: %s.\n", optarg); if(load(optarg)) { printf("file loaded.\n"); } else { printf("file loading failed.\n"); } #endif load(optarg); break; case 'h': default: usage(); heap_clean(); exit(EXIT_FAILURE); } } repl(stdin); return 0; }
static inline void astar_search_init(void) { heap_clean(schedule); }