annotate cp.pl.c @ 4:f864bb4ba9a4 default tip

update tags
author convert-repo
date Fri, 07 Nov 2008 20:36:52 +0000
parents 92791d7fbf21
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
1 /*
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
2 Copyright (C) 1988, Shinji Kono
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
3 Everyone is permitted to copy and distribute verbatim copies
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
4 of this license, but changing it is not allowed. You can also
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
5 use this wording to make the terms for other programs.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
6
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
7 send your comments to kono@mtl.utokyo.ac.jp
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
8 */
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
9 /*
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
10 support routine for compatibilities
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
11 */
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
12
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
13 #ifdef CPROLOG
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
14
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
15 help :- tokio_help.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
16
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
17 compile0(X) :- [X].
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
18
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
19 numbervars(X, V, V).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
20
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
21 /*
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
22 % numbervars('$VAR'(V0), V0, V) :- !, V is V0+1.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
23 numbervars(Vname, Vname, V0, V) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
24 var(Vname),!,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
25 V is V0+1,name(V0,Lv),name(Vname,[95|Lv]). %%% _001
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
26 numbervars(X, V0, V) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
27 functor(X, F, A),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
28 numbervars_args(0, A, X, V0, V),!.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
29
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
30 % :- mode numbervars_args(+,+,+,-,+,-).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
31 numbervars_args(N, N, _, V, V) :- !.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
32 numbervars_args(K, N, X, V0, V) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
33 K1 is K+1,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
34 arg(K1, X, XK),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
35 numbervars(XK, V0, V1),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
36 numbervars_args(K1, N, X, V1, V).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
37 */
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
38
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
39
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
40 #ifdef CPROLOG15
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
41 term_expansion(X,X).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
42 :-unknown(X,trace).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
43 #endif
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
44
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
45 :- (ttyflush;assert((ttyflush:-nl))).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
46
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
47 :-asserta((c_post(Vname, Vname, V0, V) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
48 var(Vname),!,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
49 V is V0+1,name(V0,Lv),name(Vname,[95|Lv]))). %%% _001
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
50 % c_post continue to to.pl
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
51
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
52 :-abolish(c_post_atomic,2).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
53 c_post_atomic([],[]) :- !.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
54 c_post_atomic(Number,Number) :- number(Number),!.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
55 c_post_atomic(=,' = ') :- !. % for 1.2, Do not ask me why.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
56 c_post_atomic(Atomic,Qatomic):-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
57 name(Atomic,La),La=[H|_],[H]\="'",[H]\="_",!,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
58 concatenate(["'",La,"'"],Nla),name(Qatomic,Nla).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
59 c_post_atomic(Atomic,Atomic).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
60
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
61 :-abolish(write_clause0,1).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
62 write_clause0((X:-true)) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
63 c_post(X, XX, 0, _), write(XX), put("."), nl,!,fail. %%% writeq --> write
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
64 write_clause0(X) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
65 c_post(X, XX, 0, _), write(XX), put("."), nl,!,fail. %%% writeq --> write
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
66
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
67 :-abolish(r_cputime,1).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
68 r_cputime(X) :- X is cputime.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
69
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
70 :-abolish(tokiocomp1,1).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
71 tokiocomp1(X) :- tokiocomp2(X).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
72 tokiocomp1(_) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
73 telling(I),tell(user),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
74 read(Next),tell(I), !, tokiocomp1(Next).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
75 tokiocomp1(_) :- c_error((nl,write('read error'),nl)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
76
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
77 :-abolish(read_filter,2).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
78 read_filter(X,Name) :- telling(I),tell(user),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
79 repeat,read(X),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
80 filter(X,Name),tell(I).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
81
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
82 #endif
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
83
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
84 #ifdef SWIPROLOG
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
85 nofileerrors.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
86 ttynl :- nl,flush.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
87 #endif
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
88
2
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
89 #if defined(SICSTUS) || defined(SICSTUSV4) || defined(SWIPROLOG)
0
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
90 compile0(F) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
91 prolog_flag(single_var_warnings,_),!,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
92 prolog_flag(single_var_warnings,X,off),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
93 prolog_flag(discontiguous_warnings,Y,off),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
94 compile(F),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
95 prolog_flag(single_var_warnings,_,X),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
96 prolog_flag(discontiguous_warnings,_,Y).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
97 compile0(F) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
98 style_check(-singleton),!,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
99 style_check(-discontiguous),!,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
100 compile(F),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
101 style_check(+discontiguous),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
102 style_check(+singleton).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
103 compile0(F) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
104 compile(F).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
105 #endif
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
106
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
107 #if !defined(SICSTUS)||!defined(SWIPROLOG)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
108
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
109 % copy(X,Y) :- copy_term(X,Y). % for sicstus prolog
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
110
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
111 copy(X, Y) :- copy(X, Y, var, _).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
112 copy(X, Y, Vlist0, Vlist1) :- nonvar(X),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
113 functor(X, F, A), functor(Y, F, A), !,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
114 copy(A, X, Y, Vlist0, Vlist1).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
115 copy(X, Y, Vlist0, Vlist0) :- map(Vlist0, X, Y), !.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
116 copy(X, Y, Vlist0, var(X, Y, Vlist0)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
117 copy(0, _, _, Vlist0, Vlist0) :- !.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
118 copy(N, X, Y, Vlist0, Vlist2) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
119 arg(N, X, Xn), copy(Xn, Yn, Vlist0, Vlist1), arg(N, Y, Yn),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
120 M is N-1, !, copy(M, X, Y, Vlist1, Vlist2).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
121 map(var(X, Y, _), Var, Y) :- X==Var, !.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
122 map(var(_,_,Rest), Var, Y) :- map(Rest, Var, Y).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
123
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
124 #else
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
125
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
126 copy(X,Y) :- copy_term(X,Y).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
127
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
128 #endif
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
129
2
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
130 r_abolish(A,B) :- functor(C,A,B),retractall(C).
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
131
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
132 #if defined(SICSTUSV4)
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
133
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
134
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
135 put([C]) :- !, char_code(Char,C),put_char(Char).
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
136 put(C) :- char_code(Char,C),put_char(Char).
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
137
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
138 ttyflush :- flush_output.
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
139
3
92791d7fbf21 *** empty log message ***
kono
parents: 2
diff changeset
140 nofileerrors :- prolog_flag(fileerrors,off,_).
92791d7fbf21 *** empty log message ***
kono
parents: 2
diff changeset
141 fileerrors :- prolog_flag(fileerrors,on,_).
2
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
142
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
143 tab(0) :-!.
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
144 tab(N) :- N>0, N1 is N-1,write(' '),tab(N1).
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
145
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
146 #else
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
147
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
148 append([],X,X).
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
149 append([H|X],Y,[H|Z]) :- append(X,Y,Z).
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
150
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
151 member(H,[H|_]) :-!.
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
152 member(H,[_|T]) :- member(H,T).
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
153
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
154
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
155 #endif
61743469ee56 *** empty log message ***
kono
parents: 0
diff changeset
156
0
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
157 /* end */