global words, lines, writer

procedure main()
   if not(&features == "co-expressions") then
      stop("co-expressions not supported")
   &trace := -1

   words := create word()
   lines := create reader()
   writer := create output()
   @writer
end

procedure word()
   static letters
   initial letters := &lcase ++ &ucase
   while line := @lines do
      line ? while tab(upto(letters)) do
         tab(many(letters)) @ writer
end

procedure reader()
   while read() @ words
end

procedure output()
   while write(&errout,@words)
   @&main
end
