#include #include #include #include #include "../include/oberon.h" static oberon_context_t * ctx; static oberon_module_t * mod; static const char * import_module(const char * name) { assert(name); FILE * fp; char fname[256]; snprintf(fname, 256, "%s.obn", name); fp = fopen(fname, "r"); if(fp == NULL) { printf("can't open file %s\n", fname); exit(1); return NULL; } char * source; size_t len; fseek(fp, 0, SEEK_END); len = ftell(fp); fseek(fp, 0, SEEK_SET); source = calloc(1, len + 1); fread(source, len, 1, fp); return source; } int main(int argc, char ** argv) { const char * code; if(argc != 2) { printf("use: %s \n", argv[0]); return 1; } code = import_module(argv[1]); ctx = oberon_create_context(import_module); mod = oberon_compile_module(ctx, code); oberon_destroy_context(ctx); return 0; }