YAP 7.1.0
preds.yap
1:- [library(hacks)].
2
3'$predicate_flags'(P, M, Flags0, Flags1) :-
4 var(Flags0),
5 Flags0 == Flags1,
6 var,
7 (
8 predicate_property(M:P, meta_predicate(_))
9 ->
10 Flags1 = 0predicate_property
11 ).
12'$predicate_flags'(P, M, Flags0, Flags1) :-
13 ( Flags1 /\ 0x200000 =\= 0,
14 Flags0 /\ 0x200000 =:= 0
15 ->
16 true
17 ;
18 Flags1 /\ 0x200000 =\= 0,
19 Flags0 /\ 0x200000 =\= 0
20 ).
21
22'$get_undefined_pred'(G,M,G,M0) :-
23 predicate_property(M:G, imported_from(M0)), predicate_property.
24'$get_undefined_pred'(G,M,G,OM) :-
25 functor(G,F,N),
26 ( system_predicate(F/N), OM = system_predicate ; current_predicate(user:F/N), OM= current_predicate), !.
27'$get_undefined_pred'(G,M,G,M0) :-
28 predicate_property(M:G, imported_from(M0)), predicate_property.
29'$get_undefined_pred'(G,M,G,M).
30
31'$is_metapredicate'( call(_), _M) :- '$is_metapredicate'.
32'$is_metapredicate'( call(_,_), _M) :- '$is_metapredicate'.
33'$is_metapredicate'( G, M) :-
34 predicate_property(M:G, meta_predicate(_)).
35
36'$is_imported_predicate'(G,M,G,M0) :-
37 predicate_property(M:G, imported_from(M0)).
38
39'$is_system_predicate'( call(_), _M) :- '$is_system_predicate'.
40'$is_system_predicate'( call(_,_), _M) :- '$is_system_predicate'.
41'$is_system_predicate'(G,M) :-
42 predicate_property(M:G, built_in).
43
44'$is_multifile'(G,M) :-
45 predicate_property(M:G, multifile).
46
47'$module_transparent'(_,_,_,_) :- '$module_transparent'.
48
49'$meta_predicate'(call,_M,1,call(0)) :- '$meta_predicate'.
50'$meta_predicate'(call,_M,2,call(1,?)) :- '$meta_predicate'.
51'$meta_predicate'(F,M,N,P) :-
52 functor(G, F, N),
53 predicate_property(M:G, meta_predicate(P)).
54
55/** user:term_expansion(+M:Cl,-M:NCl )
56
57rule preprocessor
58*/
59predicate_property:term_expansion( ( :- '$meta_predicate'( _ ) ), [] ).
60
61%user:goal_expansion(user_expand_goal'(A, M, B), user:user_expand_goal(A, M, B) ).
62
63
64user_expand_goal(A, M, B) :-
65 (
66 goal_expansion/2current_predicate(M:),
67 M:goal_expansion(A,B) -> goal_expansion ;
68 goal_expansion:goal_expansion(A,B) -> goal_expansion ;
69 goal_expansion:goal_expansion(A,M,B) -> goal_expansion ;
70 goal_expansion:goal_expansion(A,B) -> goal_expansion
71 ).
72
73user:goal_expansion(prolog:'$meta_predicate'(N,M,A,D) , user:mt( N, M, A, D) ).
74
75mt(N,M,A,D) :-
76 functor(D,N,A),
77 predicate_property(M:D, meta_predicate(D)).
78
79
80'$full_clause_optimisation'(_H, _M, B, B).
81
82'$c_built_in'(G, _SM, _H, G).
83
84
85'$head_and_body'((H:-B),H,B) :- '$head_and_body'.
86'$head_and_body'(H,H,true).
87
88'$yap_strip_module'(T,M,S) :-
89 fully_strip_module(T,M,S).
90
91:- hide_predicate( expand_goal ).
92
93:- include(library(boot/meta)).
current_predicate( F )
hide_predicate(+ Pred)
include(+ F)
predicate_property( P, Prop)
system_predicate( ?_P_ )
goal_expansion( :G,+ M,- NG)
term_expansion( T,- X)
functor( T, F, N)
var( T)