32:- system_module( '$_directives', [
user_defined_directive/2], [
'$all_directives'/1,
33 '$exec_directives'/5]).
35:-
'$command'/4
'$system_catch'/4
use_system_module(
'$_boot', [,
38:-
'$elif'/2
'$else'/1
'$endif'/1
'$if'/2
'$include'/2
'$initialization'/1
'$initialization'/2
'$require'/2
'$set_encoding'/1
'$use_module'/3
use_system_module(
'$_consult', [,
49:-
'$meta_predicate'/2
'$module'/3
'$module'/4
'$module_transparent'/2
use_system_module(
'$_modules', [,
54:-
'$discontiguous'/2
'$dynamic'/2
use_system_module(
'$_preddecls', [,
57:-
'$noprofile'/2
'$public'/2
use_system_module(
'$_preds', [,
60:-
'$thread_local'/2
use_system_module(
'$_threads', []).
62'$all_directives'(
_:G1)
:- '$all_directives',
63 '$all_directives'(
G1).
64'$all_directives'((
G1,
G2))
:- '$all_directives',
65 '$all_directives'(
G1),
66 '$all_directives'(
G2).
67'$all_directives'(
G)
:- '$all_directives',
72:-
'$new_multifile'(
'$exec_directive'(
_,
_,
_,
_,
_), prolog).
73:-
'$new_multifile'(
'$directive'(
_), prolog).
77'$directive'(
block(
_)).
78'$directive'(char_conversion(
_,
_)).
79'$directive'(compile(
_)).
80'$directive'(consult(
_)).
81'$directive'(
discontiguous(
_)).
82'$directive'(
dynamic(
_)).
85'$directive'(encoding(
_)).
87'$directive'(ensure_loaded(
_)).
88'$directive'(expects_dialect(
_)).
90'$directive'(include(
_)).
91'$directive'(
initialization(
_)).
92'$directive'(
initialization(
_,
_)).
93'$directive'(license(
_)).
94'$directive'(
meta_predicate(
_)).
95'$directive'(module(
_,
_)).
96'$directive'(module(
_,
_,
_)).
97'$directive'(
module_transparent(
_)).
98'$directive'(
multifile(
_)).
99'$directive'(noprofile(
_)).
100'$directive'(
public(
_)).
101'$directive'(op(
_,
_,
_)).
102'$directive'(require(
_)).
103'$directive'(set_prolog_flag(
_,
_)).
104'$directive'(reconsult(
_)).
105'$directive'(reexport(
_)).
106'$directive'(reexport(
_,
_)).
107'$directive'(predicate_options(
_,
_,
_)).
108'$directive'(thread_initialization(
_)).
109'$directive'(
thread_local(
_)).
110'$directive'(
uncutable(
_)).
111'$directive'(use_module(
_)).
112'$directive'(use_module(
_,
_)).
113'$directive'(use_module(
_,
_,
_)).
114'$directive'(wait(
_)).
116'$exec_directives'((
G1,
G2),
Mode,
M,
VL,
Pos)
:-
118 '$exec_directives'(
G1,
Mode,
M,
VL,
Pos),
119 '$exec_directives'(
G2,
Mode,
M,
VL,
Pos).
120'$exec_directives'(
G,
Mode,
M,
VL,
Pos)
:-
121 '$exec_directive'(
G,
Mode,
M,
VL,
Pos).
124'$exec_directive'(
multifile(
D),
_,
M,
_,
_)
:-
125 '$system_catch'(
'$multifile'(
D,
M),
M,
127 user
:'$LoopError'(
Error, top)).
128'$exec_directive'(
discontiguous(
D),
_,
M,
_,
_)
:-
129 '$discontiguous'(
D,
M).
138'$exec_directive'(
M:A,
Status,
_M,
VL,
Pos)
:-
139 '$exec_directives'(
A,
Status,
M,
VL,
Pos).
140'$exec_directive'(
initialization(
D),
_,
M,
_,
_)
:-
141 '$initialization'(
M:D).
142'$exec_directive'(
initialization(
D,
OPT),
_,
M,
_,
_)
:-
143 '$initialization'(
M:D,
OPT).
144'$exec_directive'(thread_initialization(
D),
_,
M,
_,
_)
:-
145 '$thread_initialization'(
M:D).
146'$exec_directive'(expects_dialect(
D),
_,
_,
_,
_)
:-
148'$exec_directive'(encoding(
Enc),
_,
_,
_,
_)
:-
149 '$set_encoding'(
Enc).
150'$exec_directive'(include(
F),
Status,
_,
_,
_)
:-
151 '$include'(
F,
Status).
153'$exec_directive'(module(
N,
P),
Status,
_,
_,
_)
:-
154 '$module'(
Status,
N,
P).
155'$exec_directive'(module(
N,
P,
Op),
Status,
_,
_,
_)
:-
156 '$module'(
Status,
N,
P,
Op).
157'$exec_directive'(
meta_predicate(
P),
_,
M,
_,
_)
:-
158 '$meta_predicate'(
P,
M).
159'$exec_directive'(
module_transparent(
P),
_,
M,
_,
_)
:-
160 '$module_transparent'(
P,
M).
161'$exec_directive'(noprofile(
P),
_,
M,
_,
_)
:-
163'$exec_directive'(require(
Ps),
_,
M,
_,
_)
:-
165'$exec_directive'(
dynamic(
P),
_,
M,
_,
_)
:-
167'$exec_directive'(
thread_local(
P),
_,
M,
_,
_)
:-
168 '$thread_local'(
P,
M).
169'$exec_directive'(op(
P,
OPSEC,
OP),
_,
_,
_,
_)
:-
170 '$current_module'(
M),
172'$exec_directive'(set_prolog_flag(
F,
V),
_,
_,
_,
_)
:-
174'$exec_directive'(ensure_loaded(
Fs),
_,
M,
_,
_)
:-
176'$exec_directive'(char_conversion(
IN,
OUT),
_,
_,
_,
_)
:-
177 char_conversion(
IN,
OUT).
178'$exec_directive'(
public(
P),
_,
M,
_,
_)
:-
180'$exec_directive'(compile(
Fs),
_,
M,
_,
_)
:-
182'$exec_directive'(reconsult(
Fs),
_,
M,
_,
_)
:-
184'$exec_directive'(consult(
Fs),
_,
M,
_,
_)
:-
186'$exec_directive'(use_module(
F),
_,
M,
_,
_)
:-
188'$exec_directive'(reexport(
F),
_,
M,
_,
_)
:-
189 load_files(
M:F, [if(changed), silent(true), reexport(true),must_be_module(true)]).
190'$exec_directive'(reexport(
F,
Spec),
_,
M,
_,
_)
:-
191 load_files(
M:F, [if(changed), silent(true), imports(
Spec), reexport(true),must_be_module(true)]).
192'$exec_directive'(use_module(
F,
Is),
_,
M,
_,
_)
:-
194'$exec_directive'(use_module(
Mod,
F,
Is),
_,
M,
_,
_)
:-
196'$exec_directive'(
block(
BlockSpec),
_,
_,
_,
_)
:-
198'$exec_directive'(wait(
BlockSpec),
_,
_,
_,
_)
:-
200'$exec_directive'(
table(
PredSpec),
_,
M,
_,
_)
:-
201 '$table'(
PredSpec,
M).
202'$exec_directive'(
uncutable(
PredSpec),
_,
M,
_,
_)
:-
203 '$uncutable'(
PredSpec,
M).
204'$exec_directive'(if(
Goal),
Context,
M,
_,
_)
:-
205 '$if'(
M:Goal,
Context).
206'$exec_directive'(else,
Context,
_,
_,
_)
:-
208'$exec_directive'(elif(
Goal),
Context,
M,
_,
_)
:-
209 '$elif'(
M:Goal,
Context).
210'$exec_directive'(endif,
Context,
_,
_,
_)
:-
212'$exec_directive'(license(
_),
Context,
_,
_,
_)
:-
213 Context \= '$exec_directive'.
214'$exec_directive'(predicate_options(
PI,
Arg,
Options),
Context,
Module,
VL,
Pos)
:-
215 Context \= '$exec_directive',
216 '$exec_directive'
:expand_predicate_options(
PI,
Arg,
Options,
Clauses),
217 '$assert_list'(
Clauses,
Context,
Module,
VL,
Pos).
219'$assert_list'([],
_Context,
_Module,
_VL,
_Pos).
220'$assert_list'([
Clause|Clauses],
Context,
Module,
VL,
Pos)
:-
221 '$command'(
Clause,
VL,
Pos,
Context),
222 '$assert_list'(
Clauses,
Context,
Module,
VL,
Pos).
228user_defined_directive(
Dir,
_)
:-
229 '$directive'(
Dir),
'$directive'.
230user_defined_directive(
Dir,
Action)
:-
233 '$current_module'(
M, prolog),
235 assert_static(prolog
:(
'$exec_directive'(
Dir,
_,
_,
_,
_)
:- Action)),
236 '$current_module'(
_,
M).
238'$thread_initialization'(
M:D)
:-
241 recorda(
'$thread_initialization',
M:D,
_),
243'$thread_initialization'(
M:D)
:-
244 '$initialization'(
M:D).
253 '$process_directive'(
G, top,
M,
VL,
Pos)
:-
255 '$process_directive'(
G, consult,
M,
VL,
Pos).
256 '$process_directive'(
G, top,
M,
_,
_)
:-
257 '$process_directive',
258 '$do_error'(context_error((
:-M:G),clause),query).
262 '$process_directive'(
Gs,
Mode,
M,
VL,
Pos)
:-
263 '$all_directives'(
Gs),
'$all_directives',
264 '$exec_directives'(
Gs,
Mode,
M,
VL,
Pos).
269'$process_directive'(
D,
_,
M,
_VL,
_Pos)
:-
272 '$do_error'(context_error((
:- M:D),query),directive).
276'$process_directive'(
G,
_Mode,
M,
_VL,
_Pos)
:-
279'$process_directive'(
G,
M ,
M,
_VL,
_Pos)
:-
280 format(user_error,
':- ~w failed.~n',[
M,
G]).
281'$process_directive'(
G,
_Mode,
M,
_VL,
_Pos)
:-
282 format(user_error,
':- ~w:~w failed.~n',[
M,
G]).
290
use_module(+Files, +Imports)
current_prolog_flag(? Flag,- Value)
set_prolog_flag(+ Flag,+ Value)
load_files(+_Files_, +_Options_)