procedure genword() static wchar local line, i, j initial wchar := &lcase ++ &ucase ++ '\'-' while line := read() do { i := 1 while j := upto(wchar,line,i) do { i := many(wchar,line,j) suspend line[i:j] # produce word } } end