let a,p=String.make 90'a',print_string let rec f?(s=try" "^read_line()^a^a with _->a)t=for i=1to 91do p(match s.[i],t.[i],t.[i-1]with 'a','a','a'->""|'.','.',_|'.',_,'.'|_,'.',_->"|_"|'a','a','.'->"|"|_ ,_,'.'->"| "|'.',_,_->" _"|_,_,_->" ")done;p" ";s.[1]='a'&t.[1]='a'||f s;;f(a^a)
Note that non-ascii characters in the above source code will be escaped (such as \x9f).