def process_iter(exp)
out = []
raise UnsupportedNodeError if exp[0][1].nil?
@env.scope do
enum = exp[0][1][1]
call = process exp.shift
var = process(exp.shift).intern
body = process exp.shift
index = "index_#{var}"
body += ";" unless body =~ /[;}]\Z/
body.gsub!(/\n\n+/, "\n")
out << "unsigned long #{index};"
out << "unsigned long arrays_max = FIX2LONG(rb_funcall(arrays, rb_intern(\"size\"), 0));"
out << "for (#{index} = 0; #{index} < arrays_max; ++#{index}) {"
out << "VALUE x = rb_funcall(arrays, rb_intern(\"at\"), 1, LONG2FIX(index_x));"
out << body
out << "}"
end
return out.join("\n")
end