% ** TEST PROGRAM ** FUNC SEARCH %--- MAIN --- VAR DICT,BUF ARRAY TEND[1] BEGIN TELL(DICT,TEND) 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",CRLF) TELL(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 SEARCH(BUF) VAR VAL,K,C ARRAY BEND[1] BEGIN VAL := SEEK(DICT,TEND) TELL(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) ] ] RETURN VAL % NOT FOUND END