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