:- use_module(library(tabling/double_linked_list)).
:- use_module(library(atts)).
+:- use_module(library(dcgs)).
:- use_module(library(lists)).
:- attribute executing_all_work/1, worklist_presence/1, wkl_answer_cluster/1, wkl_suspension_cluster/1, wkl_answer_cluster_pointer_flag/1.
verify_attributes(_, _, []).
+attribute_goals(X) -->
+ { put_atts(X, -executing_all_work(_)),
+ put_atts(X, -worklist_presence(_)),
+ put_atts(X, -wkl_answer_cluster(_)),
+ put_atts(X, -wkl_suspension_cluster(_)),
+ put_atts(X, -wkl_answer_cluster_pointer_flag(_)) }.
+
/** <module> Tabling Worklist management
A batched worklist: a worklist that clusters suspensions and answers as
]).
:- use_module(library(atts)).
+:- use_module(library(dcgs)).
:- attribute dll_element/1, dll_next/1, dll_prev/1.
+attribute_goals(X) -->
+ { put_atts(X, -dll_element(_)),
+ put_atts(X, -dll_next(_)),
+ put_atts(X, -dll_prev(_)) }.
+
% A circular double linked list
% =============================
]).
:- use_module(library(atts)).
+:- use_module(library(dcgs)).
:- use_module(library(iso_ext)).
:- attribute table_global_worklist/1.
verify_attributes(_, _, []).
+attribute_goals(X) --> { put_atts(X, -table_global_worklist(_)) }.
+
put_new_global_worklist :-
( bb_get(table_global_worklist_initialized, _) ->
true
:- use_module(library(tabling/batched_worklist)).
:- use_module(library(atts)).
+:- use_module(library(dcgs)).
:- use_module(library(gensym)).
:- use_module(library(iso_ext)).
verify_attributes(_, _, []).
+attribute_goals(X) -->
+ { put_atts(X, -table_status(_)),
+ put_atts(X, -newly_created_table_identifiers(_)) }.
+
% This file defines the table datastructure.
%
% The table datastructure contains the following sub-structures:
]).
:- use_module(library(atts)).
+:- use_module(library(dcgs)).
:- use_module(library(lists)).
:- use_module(library(iso_ext)).
:- use_module(library(terms)).
verify_attributes(_, _, []).
+attribute_goals(X) -->
+ { put_atts(X, -trie_table_link(_)) }.
+
% This file defines a call pattern trie.
%
% This data structure keeps the relation between a variant and the
:- use_module(library(assoc)).
:- use_module(library(atts)).
+:- use_module(library(dcgs)).
:- use_module(library(lists)).
:- attribute maybe_just/1, children/1.
verify_attributes(_, _, []).
+attribute_goals(X) -->
+ { put_atts(X, -maybe_just(_)),
+ put_atts(X, -children(_)) }.
+
% Implementation of a prefix tree, a.k.a. trie %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%