X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=oberon.c;h=28a351a6fdbfd4e315d4b2959b40a3b440a85f1e;hb=679da1b129ba6077d1c44ebdf260d3813afdcf65;hp=b0bb6aa6fa3ba13a60fe7f956fc8dc820d683501;hpb=d3438ae51da4c98b47441911495f10e686191abd;p=dsw-obn.git diff --git a/oberon.c b/oberon.c index b0bb6aa..28a351a 100644 --- 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; }