RosettaCodeData/Task/String-matching/PL-I/string-matching-2.pli

21 lines
631 B
Plaintext

/* Handle multiple occurrences. */
n = 1;
do forever;
k = index(s, t, n);
if k = 0 then
do;
if n = 1 then put skip list (t, ' is nowhere in sight');
stop;
end;
else if k = 1 then
put skip edit ('<', t, '> starts at the beginning of ', s) (a);
else if k+length(t)-1 = length(s) then
put skip edit ('<', t, '> is at the end of ', s) (a);
else put skip edit ('<', t, '> is within ', s) (a);
n = k + length(t);
if k > 0 then
put skip edit ('<', t, '> starts at position ', trim(k)) (a);
else stop;
end;