% ** TEST PROGRAM ** 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,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