#include #include #include #include "../../../include/oberon.h" #include "../../oberon-internals.h" #include "generator-libgccjit.h" void oberon_generator_init_context(oberon_context_t * ctx) { gen_context_t * gen_context = GC_MALLOC(sizeof *gen_context); memset(gen_context, 0, sizeof *gen_context); ctx -> gen_context = gen_context; } void oberon_generator_destroy_context(oberon_context_t * ctx) { ctx -> gen_context = NULL; } void oberon_generator_init_type(oberon_context_t * ctx, oberon_type_t * type) { type -> gen_type = NULL; } void oberon_generator_init_record(oberon_context_t * ctx, oberon_type_t * type) { assert(type -> class == OBERON_TYPE_RECORD); // init record fields } void oberon_generator_init_var(oberon_context_t * ctx, oberon_object_t * var) { var -> gen_var = NULL; } void oberon_generator_init_proc(oberon_context_t * ctx, oberon_object_t * proc) { proc -> gen_proc = NULL; } // ======================================================================= // GENERATOR // ======================================================================= void oberon_generate_begin_module(oberon_context_t * ctx) { } void oberon_generate_end_module(oberon_context_t * ctx) { } void oberon_generate_begin_proc(oberon_context_t * ctx, oberon_object_t * proc) { } void oberon_generate_call_proc(oberon_context_t * ctx, oberon_expr_t * desig) { } void oberon_generate_end_proc(oberon_context_t * ctx) { } void oberon_generate_return(oberon_context_t * ctx, oberon_expr_t * expr) { } void oberon_generate_assign(oberon_context_t * ctx, oberon_expr_t * src, oberon_expr_t * dst) { } void oberon_generate_code(oberon_context_t * ctx) { } void oberon_generator_dump(oberon_context_t * ctx, char * path) { } void * oberon_generator_get_procedure(oberon_context_t * ctx, const char * name) { return NULL; } void * oberon_generator_get_var(oberon_context_t * ctx, const char * name) { return NULL; }