From c8f1e8a74ac54c9d19d5bcb9042884fcd1d9677d Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Thu, 28 Apr 2016 21:59:06 +0100 Subject: [PATCH] user:term_expansion --- C/exec.c | 10 +++++++++- pl/modules.yap | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/C/exec.c b/C/exec.c index dd30b7012..dc267368c 100755 --- a/C/exec.c +++ b/C/exec.c @@ -1105,9 +1105,17 @@ static Int do_term_expansion(USES_REGS1) { Term g = Yap_YapStripModule(ARG1, &cmod); yhandle_t h1 = Yap_InitSlot(g), h2 = Yap_InitSlot(ARG2); + /* user:term_expansion(A,B) */ + ARG1 = g; + if ((pe = RepPredProp(Yap_GetPredPropByFunc(FunctorTermExpansion, USER_MODULE))) && + pe->OpcodeOfPred != FAIL_OPCODE && pe->OpcodeOfPred != UNDEF_OPCODE && + Yap_execute_pred(pe, NULL, false PASS_REGS)) { + return complete_ge(true, omod, sl, creeping); + } /* CurMod:term_expansion(A,B) */ ARG1 = g; - if ((pe = RepPredProp(Yap_GetPredPropByFunc(FunctorTermExpansion, cmod))) && + if (cmod != USER_MODULE && + (pe = RepPredProp(Yap_GetPredPropByFunc(FunctorTermExpansion, cmod))) && pe->OpcodeOfPred != FAIL_OPCODE && pe->OpcodeOfPred != UNDEF_OPCODE && Yap_execute_pred(pe, NULL, false PASS_REGS)) { return complete_ge(true, omod, sl, creeping); diff --git a/pl/modules.yap b/pl/modules.yap index 2cfccc3db..6341f7940 100644 --- a/pl/modules.yap +++ b/pl/modules.yap @@ -500,6 +500,7 @@ export_list(Module, List) :- '$add_to_imports'(Tab, Module, ContextModule). '$do_import'(op(Prio,Assoc,Name), _Mod, ContextMod) :- + writeln(ContextMod:Name), op(Prio,Assoc,ContextMod:Name). '$do_import'(N0/K0-N0/K0, Mod, Mod) :- !. '$do_import'(N0/K0-N0/K0, _Mod, prolog) :- !.