def process_iter(exp)
iter = process exp.shift
args = exp.shift
body = exp.empty? ? nil : process(exp.shift)
args = case args
when 0 then
" ||"
else
a = process(args)[1..-2]
a = " |#{a}|" unless a.empty?
a
end
b, e = if iter == "END" then
[ "{", "}" ]
else
[ "do", "end" ]
end
iter.sub!(/\(\)$/, '')
result = []
result << "#{iter} {"
result << args
if body then
result << " #{body.strip} "
else
result << ' '
end
result << "}"
result = result.join
return result if result !~ /\n/ and result.size < LINE_LENGTH
result = []
result << "#{iter} #{b}"
result << args
result << "\n"
if body then
result << indent(body.strip)
result << "\n"
end
result << e
result.join
end