fix goal_expansion

This commit is contained in:
Vitor Santos Costa 2010-03-01 22:30:31 +00:00
parent 1b5038cc9e
commit 0546df7ac3

View File

@ -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)
).