remove vestigial prolog/ directory (#444)
This commit is contained in:
40
src/lib/tabling/global_worklist.pl
Normal file
40
src/lib/tabling/global_worklist.pl
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Ported to Scryer Prolog by Mark Thom (2019/2020).
|
||||
*/
|
||||
|
||||
:- module(global_worklist,
|
||||
[ put_new_global_worklist/0,
|
||||
add_to_global_worklist/1,
|
||||
worklist_empty/0,
|
||||
pop_worklist/1
|
||||
]).
|
||||
|
||||
:- use_module(library(atts)).
|
||||
:- use_module(library(iso_ext)).
|
||||
|
||||
:- attribute table_global_worklist/1.
|
||||
|
||||
put_new_global_worklist :-
|
||||
( bb_get(table_global_worklist_initialized, _) ->
|
||||
true
|
||||
; put_atts(Worklist, table_global_worklist([])),
|
||||
bb_put(table_global_worklist, Worklist),
|
||||
bb_b_put(table_global_worklist_initialized, [])
|
||||
).
|
||||
|
||||
add_to_global_worklist(TableIdentifier) :-
|
||||
bb_get(table_global_worklist, TableGlobalWorklistFlag),
|
||||
get_atts(TableGlobalWorklistFlag, table_global_worklist(L1)),
|
||||
put_atts(TableGlobalWorklistFlag, table_global_worklist([TableIdentifier|L1])),
|
||||
bb_put(table_global_worklist, TableGlobalWorklistFlag).
|
||||
|
||||
worklist_empty :-
|
||||
bb_get(table_global_worklist,TableGlobalWorklistFlag),
|
||||
get_atts(TableGlobalWorklistFlag, table_global_worklist(L)),
|
||||
L == [].
|
||||
|
||||
pop_worklist(TableIdentifier) :-
|
||||
bb_get(table_global_worklist,TableGlobalWorklistFlag),
|
||||
get_atts(TableGlobalWorklistFlag, table_global_worklist(L1)),
|
||||
L1 = [TableIdentifier|L2],
|
||||
put_atts(TableGlobalWorklistFlag, table_global_worklist(L2)),
|
||||
bb_put(table_global_worklist, TableGlobalWorklistFlag).
|
||||
Reference in New Issue
Block a user