dupl code
This commit is contained in:
parent
83326f1657
commit
e138472f87
@ -74,7 +74,7 @@ asserted before being defined.
|
|||||||
*/
|
*/
|
||||||
dynamic(X) :-
|
dynamic(X) :-
|
||||||
current_prolog_flag(language, yap), !,
|
current_prolog_flag(language, yap), !,
|
||||||
'$current_module'(M),
|
'$current_module'(M),
|
||||||
'$dynamic'(X, M).
|
'$dynamic'(X, M).
|
||||||
dynamic(X) :-
|
dynamic(X) :-
|
||||||
'$do_error'(context_error(dynamic(X),declaration),query).
|
'$do_error'(context_error(dynamic(X),declaration),query).
|
||||||
@ -88,42 +88,12 @@ dynamic(X) :-
|
|||||||
'$dynamic'([], _) :- !.
|
'$dynamic'([], _) :- !.
|
||||||
'$dynamic'([H|L], M) :- !, '$dynamic'(H, M), '$dynamic'(L, M).
|
'$dynamic'([H|L], M) :- !, '$dynamic'(H, M), '$dynamic'(L, M).
|
||||||
'$dynamic'((A,B),M) :- !, '$dynamic'(A,M), '$dynamic'(B,M).
|
'$dynamic'((A,B),M) :- !, '$dynamic'(A,M), '$dynamic'(B,M).
|
||||||
'$dynamic'(X,M) :-
|
'$dynamic'(A//N,Mod) :- integer(N), !,
|
||||||
'$dynamic2'(X,M).
|
|
||||||
|
|
||||||
'$dynamic2'(X, Mod) :- '$log_upd'(Stat), Stat\=0, !,
|
|
||||||
'$logical_updatable'(X, Mod).
|
|
||||||
'$dynamic2'(A//N1, Mod) :-
|
|
||||||
integer(N1),
|
|
||||||
N is N1+2,
|
|
||||||
'$dynamic2'(A/N, Mod).
|
|
||||||
'$dynamic2'(A/N, Mod) :-
|
|
||||||
integer(N), atom(A), !,
|
|
||||||
functor(T,A,N), '$predicate_flags'(T,Mod,F,F),
|
|
||||||
% LogUpd,BinaryTest,Safe,C,Dynamic,Compiled,Standard,Asm,
|
|
||||||
( F/\ 0x19D1FA80 =:= 0, '$undefined'(T,Mod) -> NF is F \/ 0x00002000, '$predicate_flags'(T, Mod, F, NF), '$mk_d'(T,Mod);
|
|
||||||
F /\ 0x00002000 =:= 0x00002000 -> '$mk_d'(T,Mod); % dynamic
|
|
||||||
F /\ 0x08000000 =:= 0x08000000 -> '$mk_d'(T,Mod) ; % LU
|
|
||||||
F /\ 0x00000400 =:= 0x00000400, '$undefined'(T,Mod) -> F1 is F /\ \(0x400), N1F is F1 \/ 0x00002000, NF is N1F /\ \(0x00400000), '$predicate_flags'(T,Mod,F,NF), '$mk_d'(T,Mod);
|
|
||||||
'$do_error'(permission_error(modify,static_procedure,A/N),dynamic(Mod:A/N))
|
|
||||||
).
|
|
||||||
'$dynamic2'(X,Mod) :-
|
|
||||||
'$do_pi_error'(type_error(callable,X),dynamic(Mod:X)).
|
|
||||||
|
|
||||||
'$logical_updatable'(A//N,Mod) :- integer(N), !,
|
|
||||||
N1 is N+2,
|
N1 is N+2,
|
||||||
'$logical_updatable'(A/N1,Mod).
|
'$dynamic'(A/N1,Mod).
|
||||||
'$logical_updatable'(A/N,Mod) :- integer(N), atom(A), !,
|
'$dynamic'(A/N,Mod) :-
|
||||||
functor(T,A,N), '$predicate_flags'(T,Mod,F,F),
|
functor(G, A, N),
|
||||||
(
|
'$mk_d'(G,Mod).
|
||||||
F/\ 0x19D1FA80 =:= 0, '$undefined'(T,Mod) -> NF is F \/ 0x08000400, '$predicate_flags'(T,Mod,F,NF), '$mk_d'(T,Mod);
|
|
||||||
F /\ 0x08000000 =:= 0x08000000 -> '$mk_d'(T,Mod) ; % LU
|
|
||||||
F /\ 0x00002000 =:= 0x00002000 -> '$mk_d'(T,Mod); % dynamic
|
|
||||||
F /\ 0x00000400 =:= 0x00000400 , '$undefined'(T,Mod) -> N1F is F \/ 0x08000000, NF is N1F /\ \(0x00400000), '$predicate_flags'(T,Mod,F,NF), '$mk_d'(T,Mod);
|
|
||||||
'$do_error'(permission_error(modify,static_procedure,A/N),dynamic(Mod:A/N))
|
|
||||||
).
|
|
||||||
'$logical_updatable'(X,Mod) :-
|
|
||||||
'$do_error'(type_error(callable,X),dynamic(Mod:X)).
|
|
||||||
|
|
||||||
/** @pred public( _P_ ) is iso
|
/** @pred public( _P_ ) is iso
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user