DEADSOFTWARE

Добавлено получение указателей на сгенерированные процедуры и переменные
[dsw-obn.git] / oberon.c
index b0bb6aa6fa3ba13a60fe7f956fc8dc820d683501..28a351a6fdbfd4e315d4b2959b40a3b440a85f1e 100644 (file)
--- a/oberon.c
+++ b/oberon.c
@@ -2334,27 +2334,16 @@ register_default_types(oberon_context_t * ctx)
 }
 
 static void
-oberon_new_intrinsic_function(oberon_context_t * ctx, char * name, GenerateFuncCallback generate)
+oberon_new_intrinsic(oberon_context_t * ctx, char * name, GenerateFuncCallback f, GenerateProcCallback p)
 {
        oberon_object_t * proc;
        proc = oberon_define_object(ctx -> decl, name, OBERON_CLASS_PROC);
        proc -> sysproc = 1;
-       proc -> genfunc = generate;
+       proc -> genfunc = f;
+       proc -> genproc = p;
        proc -> type = oberon_new_type_ptr(OBERON_TYPE_PROCEDURE);
 }
 
-/*
-static void
-oberon_new_intrinsic_procedure(oberon_context_t * ctx, char * name, GenerateProcCallback generate)
-{
-       oberon_object_t * proc;
-       proc = oberon_define_object(ctx -> decl, name, OBERON_CLASS_PROC);
-       proc -> sysproc = 1;
-       proc -> genproc = generate;
-       proc -> type = oberon_new_type_ptr(OBERON_TYPE_PROCEDURE);
-}
-*/
-
 static oberon_expr_t *
 oberon_make_abs_call(oberon_context_t * ctx, int num_args, oberon_expr_t * list_args)
 {
@@ -2398,7 +2387,7 @@ oberon_create_context()
        oberon_generator_init_context(ctx);
 
        register_default_types(ctx);
-       oberon_new_intrinsic_function(ctx, "ABS", oberon_make_abs_call);
+       oberon_new_intrinsic(ctx, "ABS", oberon_make_abs_call, NULL);
 
        return ctx;
 }