annotate te.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 compier function evaluator
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
12 Sat Jan 11 12:11:22 JST 1986
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
13 */
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
14
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
15 /*
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
16 Now we move hole computation routines to tp
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
17 preprocessor part. So we only try to make temporal varible
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
18 structures here.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
19 */
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
20
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
21 % c_eval(Expression, Generate_Expression, Qhead, Qtail, Control).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
22
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
23 c_eval(Var, Now, Q, Q, _C) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
24 variable(Var),!,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
25 c_seperate_now(Var, Now).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
26 %c_eval(Exp, Value, Q, Q1, C) :- n_function(Exp,A,B,Exp1,AA,BB),!,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
27 % c_eval_exp(A, AA, Q, Q2, C),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
28 % c_eval_exp(B, BB, Q2, (Value is Exp1,Q1), C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
29 c_eval(Atomic, Atomic, Q, Q, _C) :- atomic(Atomic),!.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
30 c_eval(@E, Next, Q, Q1, C) :- !,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
31 c_seperate_next(E, EE),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
32 c_eval(EE, Next, Q, Q1, C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
33 % c_eval(*S, Value, Q, Q1, C) :- !, % move into tp (macro expanstion)
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
34 % c_eval(S, Name, Q, ('r_read_value'(Name,Value),Q1), C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
35 c_eval(Func, Value, Q, Q1, C) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
36 functor(Func, H, A), functor(Value, H, A),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
37 c_eval_arg(0, A, Func, Value, Q, Q1, C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
38
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
39 c_eval_arg(N, N, _, _, Q, Q, _) :- !.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
40 c_eval_arg(N, M, A, B, Q, Q2, C) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
41 N1 is N+1,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
42 arg(N1, A, A1), arg(N1, B, B1),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
43 c_eval(A1, B1, Q, Q1, C),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
44 c_eval_arg(N1, M, A, B, Q1, Q2, C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
45
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
46 %c_eval_exp(Exp, Exp1, Q, Q1, C) :- nonvar(Exp),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
47 % n_function(Exp,A,B,Exp1,AA,BB),!,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
48 % c_eval_exp(A, AA, Q, Q2, C),
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
49 % c_eval_exp(B, BB, Q2, Q1, C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
50 %c_eval_exp(Exp, Exp1, Q, Q1, C) :-
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
51 % c_eval(Exp, Exp1, Q, Q1, C).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
52
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
53 c_hex(H,V) :- c_hex(H,0,V).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
54 c_hex([],V,V):-!.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
55 c_hex([H|T],V,V1) :- c_hex1([H],VH), V2 is V*16+VH,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
56 c_hex(T,V2,V1).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
57
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
58 c_binary(H,V) :- c_binary(H,0,V).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
59 c_binary([],V,V):-!.
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
60 c_binary([H|T],V,V1) :- c_binary1([H],VH), V2 is V*2+VH,
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
61 c_binary(T,V2,V1).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
62
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
63 c_binary1("0",0). c_binary1("1",1).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
64
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
65 c_hex1("0",0). c_hex1("1",1). c_hex1("2",2). c_hex1("3",3).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
66 c_hex1("4",4). c_hex1("5",5). c_hex1("6",6). c_hex1("7",7).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
67 c_hex1("8",8). c_hex1("9",9). c_hex1("A",10). c_hex1("B",11).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
68 c_hex1("C",12). c_hex1("D",13). c_hex1("E",14). c_hex1("F",15).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
69 c_hex1("a",10). c_hex1("b",11). c_hex1("c",12). c_hex1("d",13).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
70 c_hex1("e",14). c_hex1("f",15).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
71
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
72 n_predicate(A<B,A,B,AA<BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
73 n_predicate(A>B,A,B,AA>BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
74 n_predicate(A=<B,A,B,AA=<BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
75 n_predicate(A>=B,A,B,AA>=BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
76 n_predicate(A\=B,A,B,AA\==BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
77
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
78 % n_function(cputime,0,0,cputime,_,_).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
79 n_function(A+B,A,B,AA+BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
80 n_function(A-B,A,B,AA-BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
81 n_function(A*B,A,B,AA*BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
82 n_function(A/B,A,B,AA/BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
83 n_function(A//B,A,B,AA//BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
84 n_function(A^B,A,B,AA^BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
85 n_function(A mod B,A,B,AA mod BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
86 n_function(A/\B,A,B,AA/\BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
87 n_function(A\/B,A,B,AA\/BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
88 n_function(A<<B,A,B,AA<<BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
89 n_function(A>>B,A,B,AA>>BB,AA,BB).
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
90
cfb7c6b24319 Initial revision
kono
parents:
diff changeset
91 /* evalator end */