Mercurial > hg > Members > kono > os9 > sbc09
diff TL1/test/t4.tl1 @ 176:6ef317714ae8
mopen in TL/1
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 15 Apr 2019 00:25:58 +0900 |
parents | c83545730d6c |
children | 3770e86114aa |
line wrap: on
line diff
--- a/TL1/test/t4.tl1 Sun Apr 14 17:17:34 2019 +0900 +++ b/TL1/test/t4.tl1 Mon Apr 15 00:25:58 2019 +0900 @@ -1,43 +1,44 @@ % ** TEST PROGRAM ** -func search -%--- main --- -var dict,buf -array tend[2] -begin - dict := openm($2,0) - write(dict:ascii(0)) - write(dict:ascii(30),ascii(-'P'),"ROC") - write(dict:ascii(31),ascii(-'F'),"UNC") - write(dict:ascii(33),ascii(-'V'),"AR") - postion(dict,tend) - buf := openm($2,0) - write(buf:"FUNC",ascii(0)) - write(0:search(buf),crlf) - seek(buf,0) - write(buf:"NONAME",ascii(0)) - write(0:search(buf),crlf) -end +FUNC SEARCH +%--- MAIN --- +VAR DICT,BUF,D +ARRAY TEND[2] +BEGIN + WRITE(DICT:ASCII(0)) + DICT := OPENM($2,0) + WRITE(DICT:ASCII(0)) + WRITE(DICT:ASCII(30),ASCII(0-'P'),"ROC") + WRITE(DICT:ASCII(31),ASCII(0-'F'),"UNC") + WRITE(DICT:ASCII(33),ASCII(0-'V'),"AR",CRLF) + D:=POSITION(DICT,TEND) + BUF := OPENM($2,0) + WRITE(BUF:"FUNC",ASCII(0)) + WRITE(0:SEARCH(BUF),CRLF) + D:=SEEK(BUF,0) + WRITE(BUF:"NONAME",ASCII(0)) + WRITE(0:SEARCH(BUF),CRLF) +END -search(buf) -var val,k,c -array bend -begin - val := seek(dict,tend) - position(buf,bend) - while val#0 do [ - c:=seekr(buf,-1) - k:=seekr(dict,-1) - if k.lt.0 then [ - if c=-k then - return val % found - val := seekr(dict,-1) - ] else if c#k then [ - seek(buf,bend) - repeat - k:=seekr(dict,-1) - until k.lt.0 - val := seekr(dict,-1) +SEARCH(BUF) +VAR VAL,K,C,D +ARRAY BEND +BEGIN + VAL := SEEK(DICT,TEND) + POSITION(BUF,BEND) + WHILE VAL#0 DO [ + C:=SEEKR(BUF,-1) + K:=SEEKR(DICT,-1) + IF K.LT.0 THEN [ + IF C=-K THEN + RETURN VAL % FOUND + VAL := SEEKR(DICT,-1) + ] ELSE IF C#K THEN [ + D:=SEEK(BUF,BEND) + REPEAT + K:=SEEKR(DICT,-1) + UNTIL K.LT.0 + VAL := SEEKR(DICT,-1) ] ] - return val % not found -end + RETURN VAL % NOT FOUND +END