global variables
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1685 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
@@ -1,48 +1,52 @@
|
||||
% A library to implement queues of DB Terms
|
||||
% A library to implement queues of NB Terms
|
||||
|
||||
:- module(dbqueue, [
|
||||
db_enqueue/2,
|
||||
db_dequeue/2,
|
||||
db_clean_queue/1
|
||||
:- module(nbqueue, [
|
||||
nb_enqueue/2,
|
||||
nb_dequeue/2,
|
||||
nb_clean_queue/1
|
||||
nb_size/2
|
||||
]).
|
||||
|
||||
|
||||
:- unhide('$init_db_queue').
|
||||
:- unhide('$db_enqueue').
|
||||
:- unhide('$db_dequeue').
|
||||
:- unhide('$init_nb_queue').
|
||||
:- unhide('$nb_enqueue').
|
||||
:- unhide('$nb_dequeue').
|
||||
|
||||
|
||||
db_enqueue(Name,El) :- var(Name),
|
||||
throw(error(instantiation_error(Name),db_enqueue(Name,El))).
|
||||
db_enqueue(Name,El) :- \+ atom(Name), !,
|
||||
throw(error(type_error_atom(Name),db_enqueue(Name,El))).
|
||||
db_enqueue(Name,El) :-
|
||||
recorded('$db_queue',[Name|Ref],_), !,
|
||||
prolog:'$db_enqueue'(Ref, El).
|
||||
db_enqueue(Name,El) :-
|
||||
prolog:'$init_db_queue'(Ref),
|
||||
recorda('$db_queue',[Name|Ref],_),
|
||||
prolog:'$db_enqueue'(Ref,El).
|
||||
nb_enqueue(Name,El) :- var(Name),
|
||||
throw(error(instantiation_error(Name),nb_enqueue(Name,El))).
|
||||
nb_enqueue(Name,El) :- \+ atom(Name), !,
|
||||
throw(error(type_error_atom(Name),nb_enqueue(Name,El))).
|
||||
nb_enqueue(Name,El) :-
|
||||
recorded('$nb_queue',[Name|Ref],_), !,
|
||||
prolog:'$nb_enqueue'(Ref, El).
|
||||
nb_enqueue(Name,El) :-
|
||||
prolog:'$init_nb_queue'(Ref),
|
||||
recorda('$nb_queue',[Name|Ref],_),
|
||||
prolog:'$nb_enqueue'(Ref,El).
|
||||
|
||||
|
||||
db_dequeue(Name,El) :- var(Name),
|
||||
throw(error(instantiation_error(Name),db_dequeue(Name,El))).
|
||||
db_dequeue(Name,El) :- \+ atom(Name), !,
|
||||
throw(error(type_error_atom(Name),db_dequeue(Name,El))).
|
||||
db_dequeue(Name,El) :-
|
||||
recorded('$db_queue',[Name|Ref],R),
|
||||
( prolog:'$db_dequeue'(Ref, El) ->
|
||||
nb_dequeue(Name,El) :- var(Name),
|
||||
throw(error(instantiation_error(Name),nb_dequeue(Name,El))).
|
||||
nb_dequeue(Name,El) :- \+ atom(Name), !,
|
||||
throw(error(type_error_atom(Name),nb_dequeue(Name,El))).
|
||||
nb_dequeue(Name,El) :-
|
||||
recorded('$nb_queue',[Name|Ref],R),
|
||||
( prolog:'$nb_dequeue'(Ref, El) ->
|
||||
true
|
||||
;
|
||||
erase(R),
|
||||
fail
|
||||
).
|
||||
|
||||
db_clean_queue(Name) :-
|
||||
recorded('$db_queue',[Name|Ref],R), !,
|
||||
nb_clean_queue(Name) :-
|
||||
recorded('$nb_queue',[Name|Ref],R), !,
|
||||
erase(R),
|
||||
db_dequeue_all(Ref).
|
||||
db_clean_queue(_).
|
||||
nb_dequeue_all(Ref).
|
||||
nb_clean_queue(_).
|
||||
|
||||
db_dequeue_all(Ref) :-
|
||||
( prolog:'$db_dequeue'(Ref, _) -> db_dequeue_all(Ref) ; true ).
|
||||
nb_dequeue_all(Ref) :-
|
||||
( prolog:'$nb_dequeue'(Ref, _) -> nb_dequeue_all(Ref) ; true ).
|
||||
|
||||
nb_dequeue_size(Ref, Size) :-
|
||||
prolog:'$nb_size'(Ref, Size).
|
||||
|
@@ -116,23 +116,6 @@ prolog:between(I0,I,J) :- I0 < I,
|
||||
I1 is I0+1,
|
||||
prolog:between(I1,I,J).
|
||||
|
||||
prolog:b_getval(GlobalVariable,Value) :-
|
||||
array_element(GlobalVariable,0,Value).
|
||||
|
||||
prolog:b_setval(GlobalVariable,Value) :-
|
||||
array(GlobalVariable,1),
|
||||
dynamic_update_array(GlobalVariable,0,Value).
|
||||
|
||||
prolog:nb_getval(GlobalVariable,Value) :-
|
||||
array_element(GlobalVariable,0,Value).
|
||||
|
||||
prolog:nb_setval(GlobalVariable,Value) :-
|
||||
static_array(GlobalVariable,1,nb_term),
|
||||
update_array(GlobalVariable,0,Value).
|
||||
|
||||
prolog:nb_delete(GlobalVariable) :-
|
||||
close_static_array(GlobalVariable).
|
||||
|
||||
prolog:nb_current(GlobalVariable,Val) :-
|
||||
static_array_properties(GlobalVariable,1,nb_term),
|
||||
array_element(GlobalVariable,0,Val).
|
||||
|
Reference in New Issue
Block a user