From 6c16f4e9538156577fa46a15f877cfa900fa2b8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADtor=20Santos=20Costa?= Date: Tue, 14 Feb 2012 09:54:56 +0000 Subject: [PATCH] iadd export functionality. --- pl/modules.yap | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/pl/modules.yap b/pl/modules.yap index 818328d22..8fd637f7c 100644 --- a/pl/modules.yap +++ b/pl/modules.yap @@ -664,6 +664,37 @@ abolish_module(Mod) :- fail. abolish_module(_). +export(P) :- + var(P), + '$do_error'(instantiation_error,export(P)). +export(P) :- + P = F/N, atom(F), number(N), N > 0, !, + '$current_module'(Mod), + ( recorded('$module','$module'(F,Mod,ExportedPreds),R) -> + erase(R), + recorda('$module','$module'(F,Mod,[P|ExportedPreds]),_) + ; + recorda('$module','$module'(user_input,Mod,[P]),_) + ). +export(P0) :- + P0 = F//N, atom(F), number(N), N > 0, !, + N1 is N+2, P = F/N1, + '$current_module'(Mod), + ( recorded('$module','$module'(F,Mod,ExportedPreds),R) -> + erase(R), + recorda('$module','$module'(F,Mod,[P|ExportedPreds]),_) + ; + recorda('$module','$module'(user_input,Mod,[P]),_) + ). +export(op(Prio,Assoc,Name)) :- !, + op(Prio,Assoc,prolog:Name). +export(P) :- + '$do_error'(type_error(predicate_indicator,P),export(P)). + +export_list(Module, List) :- + recorded('$module','$module'(_,Module,List),_). + + '$reexport'(ModuleSource, Spec, Module) :- nb_getval('$consulting_file',TopFile), (