#include #include #include #include #include "config.h" #include "exceptions.h" #include "meta.h" #include "parser.h" #include "hash.h" #include "assembler.h" typedef void (*sighandler_t) (int); void invite(void) { fprintf(stderr, _("Assembler v1.0\n\n")); } void usage(void) { fprintf(stderr, _("Usage: compilo program.asm objet.out\n")); exit(0); } void init_all(void) { fprintf(stderr, _(" o Initialising the meta engine... ")); if (meta_init()) { exception(1, _("Meta parser init failed.")); } fprintf(stderr, _(" Done!\n o Meta language loading... ")); if (meta_load("instructions.txt")) { exception(1, _("Meta language loading failed.")); } fprintf(stderr, _(" Done!\n o Initialising the assembler core...")); if (assembler_init()) { exception(1, _("Assembler core init failed.")); } fprintf(stderr, _(" Done!\n")); } void flush_all(void) { assembler_flush(); meta_flush(); } void segfaulthand(int i) { exception(1, _("Signal received: segfault")); } int main(int argc, char **argv) { invite(); /* signal(SIGSEGV, segfaulthand); */ if (argc != 3) usage(); fprintf(stderr, _("\nPerforming initialisation...\n\n")); init_all(); assemble_file(argv[1], argv[2]); fprintf(stderr, _("\nPerforming shutdown...\n\n")); flush_all(); fprintf(stderr, _("Exitting, bye!\n")); return 0; }