annotate tm.pl @ 4:f864bb4ba9a4 default tip

update tags
author convert-repo
date Fri, 07 Nov 2008 20:36:52 +0000
parents cfb7c6b24319
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,2005, 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@ie.u-ryukyu.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 %
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
11 % tokio standard macro definition
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
12 %
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
13 % Sat Sep 7 16:45:15 JST 1985
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
14 % $Header$
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
15
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
16 '$define' ( *A :- *A = 1 ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
17 '$define' ( not(*A) :- *A = 0 ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
18
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
19 % '$define' ( (A | B) :- A,!,B ). ! = | in some prolog
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
20
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
21 '$define' (A ; B :- H)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
22 '$clause' (H :- A)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
23 '$clause' (H :- B).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
24
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
25 '$define' (if A then B else C :- H)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
26 '$clause' (H :- A,!,B)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
27 '$clause' (H :- C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
28
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
29 '$define' (if A then B :- H)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
30 '$clause' (H :- A,!,B)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
31 '$clause' (H).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
32
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
33 '$define' (not(A) :- H)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
34 '$clause' (H :- A,!,fail)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
35 '$clause' (H).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
36
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
37 '$define' (while A do B :- H)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
38 '$clause' (H :- A,!,( B && H))
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
39 '$clause' (H :- empty).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
40
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
41 '$define' (A && B) :- A,@true & B. % strong chop
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
42
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
43 '$define' (fin(A) :- H)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
44 '$clause' (H :- ifEmpty(A), next(H)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
45
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
46 '$define' (keep(A) :- H)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
47 '$clause' (H :- ifNotEmpty(A), next(H)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
48
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
49 '$define' (more :- @true). % better than notEmpty?
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
50
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
51 '$define' (#P :- Q) % |t|
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
52 '$clause' (Q :- P, next(Q)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
53
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
54 '$define' ([](P) :- Q) % |t|
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
55 '$clause' (Q :- P, next(Q)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
56
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
57 '$define' ('||'P :- Q) % Sun Oct 13 16:48:00 JST 1985
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
58 '$clause' (Q :- (P & true), next(Q)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
59
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
60 '$define' ( {P} :- P ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
61
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
62 '$define' ( A gets B :- keep(@A = B) ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
63
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
64 '$define' ( stable(A) :- A gets A ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
65
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
66 '$define' ( <>P :- true && P).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
67
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
68 '$define' ( halt(P) :- # (if P then empty else @true)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
69
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
70 '$define' ( '$CNT'(A) <-- B :- '$CNT'(A) = B ). %% tricky!
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
71
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
72 % many kind of temporal assignments
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
73
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
74 '$define' ( A <- B :- C <-- B, fin( A = C) ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
75 '$define' ( A <= B :- C <-- B, fin( A := C) ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
76 '$define' ( [] <<- B :- true).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
77 '$define' ( [H|T] <<- B :- C <-- B, fin( H = C), T <<- C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
78 '$define' ( [] <== B :- true).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
79 '$define' ( [H|T] <== B :- C=B,H <== B,T <== C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
80 % next two macros are processed in tp.pl
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
81 % '$define' ( A <= B :- C <-- B, fin( A := C) ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
82 % '$define' ( *A <= B :- D <-- A, C <-- B, fin( *D := C) ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
83
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
84 '$define' ( skip :- @empty ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
85
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
86 '$define' ( beg(X) :- empty,X & true ).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
87
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
88 '$define' (call(H) :- r_tokio_call(H)).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
89
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
90 %% system macro end
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
91
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
92 '$define' ('r_initr_').