1:- use_module(library(dialect/logicmoo/dialect_loader_lib)). 2
3:- multifile(setup_dialect/0). 4:- module_transparent(setup_dialect/0). 5setup_dialect:-
6 current_prolog_flag(emulated_dialect,FromM),
7 prolog_load_context(module, IntoM),
8 IntoM:import(dialect_loader_lib:dialect_on_load/3),
9 get_prolog_load_context(Ctx),
10 asserta(dialect_loader_lib:setup_dialect_load_context(Ctx)),
11 12 IntoM:use_module(library(dialect/FromM)),
13 (FromM\=IntoM -> FromM:import(dialect_loader_lib:dialect_on_load/3); true),
14 asserta(IntoM:term_expansion(T,FP,O,FPO):- FromM:dialect_term_expansion(T,FP,O,FPO)).
15
16:- multifile(dialect_term_expansion/4). 17:- export(dialect_term_expansion/4). 18dialect_term_expansion(T,FP,O,FPO):-
19 notrace((
20 nonvar(FP),
21 (prolog_load_context(dialect,D);current_prolog_flag(dialect,D)) ->
22 prolog:dialect_reads(D,P1))),
23 get_prolog_load_context(DC),
24 FPO=FP,
25 O = (:- dialect_on_load(P1,T,DC)),
26 !.
27
28
29
30
32:- multifile(prolog:dialect_reads/2). 33:- dynamic(prolog:dialect_reads/2).