annotate TL1/test/t4.tl1 @ 175:c83545730d6c

openm
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 14 Apr 2019 17:17:34 +0900
parents
children 6ef317714ae8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
175
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 % ** TEST PROGRAM **
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 func search
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 %--- main ---
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 var dict,buf
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 array tend[2]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 dict := openm($2,0)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 write(dict:ascii(0))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 write(dict:ascii(30),ascii(-'P'),"ROC")
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 write(dict:ascii(31),ascii(-'F'),"UNC")
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 write(dict:ascii(33),ascii(-'V'),"AR")
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 postion(dict,tend)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 buf := openm($2,0)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 write(buf:"FUNC",ascii(0))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 write(0:search(buf),crlf)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 seek(buf,0)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 write(buf:"NONAME",ascii(0))
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 write(0:search(buf),crlf)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 end
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 search(buf)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 var val,k,c
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 array bend
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 begin
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 val := seek(dict,tend)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 position(buf,bend)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 while val#0 do [
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 c:=seekr(buf,-1)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 k:=seekr(dict,-1)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 if k.lt.0 then [
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 if c=-k then
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 return val % found
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 val := seekr(dict,-1)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 ] else if c#k then [
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 seek(buf,bend)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 repeat
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 k:=seekr(dict,-1)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 until k.lt.0
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 val := seekr(dict,-1)
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 ]
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 return val % not found
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 end