From 0546df7ac38f252b819698b524e223ea7da3a793 Mon Sep 17 00:00:00 2001 From: Vitor Santos Costa Date: Mon, 1 Mar 2010 22:30:31 +0000 Subject: [PATCH] fix goal_expansion --- pl/modules.yap | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/pl/modules.yap b/pl/modules.yap index e84aeff15..192058c52 100644 --- a/pl/modules.yap +++ b/pl/modules.yap @@ -297,7 +297,8 @@ module(N) :- '$module_expansion'(M:G,G1,GO,_,CM,_,HVars) :- !, '$module_expansion'(G,G1,GO,M,M,HM,HVars). '$module_expansion'(G, G1, GO, CurMod, MM, HM, HVars) :- - '$do_expand'(CurMod:G, CurMod:GI), !, + '$pred_goal_expansion_on', + '$do_expand'(G, CurMod, GI), !, '$module_expansion'(GI, G1, GO, CurMod, MM, HM, HVars). '$module_expansion'(G, G1, GO, CurMod, MM, HM,HVars) :- % is this imported from some other module M1? @@ -310,24 +311,25 @@ module(N) :- '$module_expansion'(G, G1, GO, CurMod, MM, HM, HVars) :- '$complete_goal_expansion'(G, CurMod, MM, HM, G1, GO, HVars). -expand_goal(G, NG) :- - '$current_module'(Mod), - '$do_expand'(G, M, NG), !. +expand_goal(G, G) :- + var(G), !. expand_goal(M:G, M:NG) :- '$do_expand'(G, M, NG), !. +expand_goal(G, NG) :- + '$current_module'(Mod), + '$do_expand'(G, M, NG), !. expand_goal(G, G). -'$do_expand'(G, CurMod, NG) :- - '$pred_goal_expansion_on', - ( user:goal_expansion(G, CurMod, GI) +'$do_expand'(G, CurMod, GI) :- + ( + '$pred_exists'(goal_expansion(G,GI), CurMod), + call(CurMod:goal_expansion(G, GI)) + -> + true + ; + user:goal_expansion(G, CurMod, GI) -> true - ; - ( - '$pred_exists'(goal_expansion(G,GI), CurMod) - -> - call(CurMod:goal_expansion(G, GI)) - ) ; user:goal_expansion(G, GI) ).