#include "oberon.h" #include "generator.h" #include #include static char source_test[] = "MODULE Test;" "IMPORT I := Imported;" "VAR" " x : I.Rider;" "BEGIN" " I.Ln;" "END Test." ; static char source_imported[] = "MODULE Imported;" "TYPE" " Rider* = RECORD i : INTEGER; END;" "" "PROCEDURE Ln*;" "END Ln;" "" "BEGIN;" "END Imported." ; static oberon_context_t * ctx; static oberon_module_t * mod; static const char * import_module(const char * name) { if(strcmp(name, "Test") == 0) { return source_test; } else if(strcmp(name, "Imported") == 0) { return source_imported; } else { return NULL; } } int main(int argc, char ** argv) { ctx = oberon_create_context(import_module); mod = oberon_compile_module(ctx, source_test); oberon_generate_code(ctx); oberon_generator_dump(ctx, "dump.txt"); oberon_destroy_context(ctx); return 0; }