From bdb5df104a5904a041715dd3e53e1338624a5bf1 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Fri, 5 Feb 2021 22:50:57 -0700 Subject: [PATCH] shed module names from arguments of the (->)/2, (,)/2, (;)/2 predicates --- src/lib/builtins.pl | 54 +++++++++++++++++++++++++++++++++++++++++++++ src/loader.pl | 8 +++---- 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/src/lib/builtins.pl b/src/lib/builtins.pl index 2be9c783..588a12fe 100644 --- a/src/lib/builtins.pl +++ b/src/lib/builtins.pl @@ -243,15 +243,26 @@ call_or_cut(G, B, ErrorPI) :- call_or_cut(!, B) :- '$set_cp_by_default'(B). +call_or_cut(_:!, B) :- + '$set_cp_by_default'(B). call_or_cut((G1, G2), B) :- !, '$call_with_default_policy'(','(G1, G2, B)). +call_or_cut(_:(G1, G2), B) :- + !, + '$call_with_default_policy'(','(G1, G2, B)). call_or_cut((G1 ; G2), B) :- !, '$call_with_default_policy'(';'(G1, G2, B)). +call_or_cut(_:(G1 ; G2), B) :- + !, + '$call_with_default_policy'(';'(G1, G2, B)). call_or_cut((G1 -> G2), B) :- !, '$call_with_default_policy'(->(G1, G2, B)). +call_or_cut(_:(G1 -> G2), B) :- + !, + '$call_with_default_policy'(->(G1, G2, B)). call_or_cut(G, _) :- '$call_with_default_policy'(G). @@ -261,14 +272,26 @@ call_or_cut(G, _) :- !, '$call_with_default_policy'(','(G1, G2, B)), '$call_with_default_policy'(call_or_cut(G3, B, (',')/2)). +','(_:(G1, G2), G3, B) :- + !, + '$call_with_default_policy'(','(G1, G2, B)), + '$call_with_default_policy'(call_or_cut(G3, B, (',')/2)). ','((G1; G2), G3, B) :- !, '$call_with_default_policy'(';'(G1, G2, B)), '$call_with_default_policy'(call_or_cut(G3, B, (',')/2)). +','(_:(G1; G2), G3, B) :- + !, + '$call_with_default_policy'(';'(G1, G2, B)), + '$call_with_default_policy'(call_or_cut(G3, B, (',')/2)). ','((G1 -> G2), G3, B) :- !, '$call_with_default_policy'(->(G1, G2, B)), '$call_with_default_policy'(call_or_cut(G3, B, (',')/2)). +','(_:(G1 -> G2), G3, B) :- + !, + '$call_with_default_policy'(->(G1, G2, B)), + '$call_with_default_policy'(call_or_cut(G3, B, (',')/2)). ','(G1, G2, B) :- '$call_with_default_policy'(call_or_cut(G1, B, (',')/2)), '$call_with_default_policy'(call_or_cut(G2, B, (',')/2)). @@ -280,17 +303,33 @@ call_or_cut(G, _) :- ( '$call_with_default_policy'(','(G1, G2, B)) ; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2)) ). +';'(_:(G1, G2), G3, B) :- + !, + ( '$call_with_default_policy'(','(G1, G2, B)) + ; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2)) + ). ';'((G1; G2), G3, B) :- !, ( '$call_with_default_policy'(';'(G1, G2, B)) ; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2)) ). +';'(_:(G1; G2), G3, B) :- + !, + ( '$call_with_default_policy'(';'(G1, G2, B)) + ; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2)) + ). ';'((G1 -> G2), G3, B) :- !, ( '$call_with_default_policy'(call_or_cut(G1, B, (->)/2)) -> '$call_with_default_policy'(call_or_cut(G2, B, (->)/2)) ; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2)) ). +';'(_:(G1 -> G2), G3, B) :- + !, + ( '$call_with_default_policy'(call_or_cut(G1, B, (->)/2)) -> + '$call_with_default_policy'(call_or_cut(G2, B, (->)/2)) + ; '$call_with_default_policy'(call_or_cut(G3, B, (;)/2)) + ). ';'(G1, G2, B) :- ( '$call_with_default_policy'(call_or_cut(G1, B, (;)/2)) ; '$call_with_default_policy'(call_or_cut(G2, B, (;)/2)) @@ -303,16 +342,31 @@ call_or_cut(G, _) :- ( '$call_with_default_policy'(','(G1, G2, B)) -> '$call_with_default_policy'(call_or_cut(G3, B, (->)/2)) ). +->(_:(G1, G2), G3, B) :- + !, + ( '$call_with_default_policy'(','(G1, G2, B)) -> + '$call_with_default_policy'(call_or_cut(G3, B, (->)/2)) + ). ->((G1 ; G2), G3, B) :- !, ( '$call_with_default_policy'(';'(G1, G2, B)) -> '$call_with_default_policy'(call_or_cut(G3, B, (->)/2)) ). +->(_:(G1 ; G2), G3, B) :- + !, + ( '$call_with_default_policy'(';'(G1, G2, B)) -> + '$call_with_default_policy'(call_or_cut(G3, B, (->)/2)) + ). ->((G1 -> G2), G3, B) :- !, ( '$call_with_default_policy'(->(G1, G2, B)) -> '$call_with_default_policy'(call_or_cut(G3, B, (->)/2)) ). +->(_:(G1 -> G2), G3, B) :- + !, + ( '$call_with_default_policy'(->(G1, G2, B)) -> + '$call_with_default_policy'(call_or_cut(G3, B, (->)/2)) + ). ->(G1, G2, B) :- ( '$call_with_default_policy'(call_or_cut(G1, B, (->)/2)) -> '$call_with_default_policy'(call_or_cut(G2, B, (->)/2)) diff --git a/src/loader.pl b/src/loader.pl index 2f5f70ff..0ac97ac6 100644 --- a/src/loader.pl +++ b/src/loader.pl @@ -398,16 +398,16 @@ predicate_property(Callable, Property) :- ). -strip_module_(M0, G0, M1, G1) :- +strip_module(M0, G0, M1, G1) :- ( nonvar(G0), G0 = (MG1:G2) -> - strip_module_(MG1, G2, M1, G1) + strip_module(MG1, G2, M1, G1) ; M0 = M1, G0 = G1 ). -strip_module(Goal, M, G) :- - strip_module_(_, Goal, M, G). +strip_module(Goal, M, G) :- + strip_module(_, Goal, M, G). expand_subgoal(UnexpandedGoals, MS, Module, ExpandedGoals, HeadVars) :- -- 2.54.0