# # W O R D I N T E R S E C T I O N S # # This program procedure accepts string pairs from standard input, with # the strings separated by semicolons. It then diagrams all the # intersections of the two strings in a common character. procedure main() local line, j while line := read() do $( write() j := upto(':',line) cross(line$<1:j$>,line$) $) end procedure cross(s1,s2) local j, k every j := upto(s2,s1) do every k := upto(s1$,s2) do xprint(s1,s2,j,k) end procedure xprint(s1,s2,j,k) write() every write(right(s2$<1 to k-1$>,j)) write(s1) every write(right(s2$,j)) end