0
|
1 compile0(F) :-
|
|
2 prolog_flag(single_var_warnings,_),!,
|
|
3 prolog_flag(single_var_warnings,X,off),
|
|
4 prolog_flag(discontiguous_warnings,Y,off),
|
|
5 compile(F),
|
|
6 prolog_flag(single_var_warnings,_,X),
|
|
7 prolog_flag(discontiguous_warnings,_,Y).
|
|
8 compile0(F) :-
|
|
9 style_check(-singleton),!,
|
|
10 style_check(-discontiguous),!,
|
|
11 compile(F),
|
|
12 style_check(+discontiguous),
|
|
13 style_check(+singleton).
|
|
14 compile0(F) :-
|
|
15 compile(F).
|
2
|
16
|
|
17
|
|
18
|
|
19
|
|
20 % copy(X,Y) :- copy_term(X,Y). % for sicstus prolog
|
|
21
|
|
22 copy(X, Y) :- copy(X, Y, var, _).
|
|
23 copy(X, Y, Vlist0, Vlist1) :- nonvar(X),
|
|
24 functor(X, F, A), functor(Y, F, A), !,
|
|
25 copy(A, X, Y, Vlist0, Vlist1).
|
|
26 copy(X, Y, Vlist0, Vlist0) :- map(Vlist0, X, Y), !.
|
|
27 copy(X, Y, Vlist0, var(X, Y, Vlist0)).
|
|
28 copy(0, _, _, Vlist0, Vlist0) :- !.
|
|
29 copy(N, X, Y, Vlist0, Vlist2) :-
|
|
30 arg(N, X, Xn), copy(Xn, Yn, Vlist0, Vlist1), arg(N, Y, Yn),
|
|
31 M is N-1, !, copy(M, X, Y, Vlist1, Vlist2).
|
|
32 map(var(X, Y, _), Var, Y) :- X==Var, !.
|
|
33 map(var(_,_,Rest), Var, Y) :- map(Rest, Var, Y).
|
0
|
34
|
|
35
|
|
36
|
|
37
|
|
38
|
|
39
|
|
40
|
2
|
41 r_abolish(A,B) :- functor(C,A,B),retractall(C).
|
|
42
|
|
43
|
0
|
44
|
|
45
|
2
|
46 put([C]) :- !, char_code(Char,C),put_char(Char).
|
|
47 put(C) :- char_code(Char,C),put_char(Char).
|
|
48
|
|
49 ttyflush :- flush_output.
|
|
50
|
3
|
51 nofileerrors :- prolog_flag(fileerrors,off,_).
|
|
52 fileerrors :- prolog_flag(fileerrors,on,_).
|
2
|
53
|
|
54 tab(0) :-!.
|
|
55 tab(N) :- N>0, N1 is N-1,write(' '),tab(N1).
|