# File lib/ruby_to_ansi_c.rb, line 481
  def process_iter(exp)
    out = []
    # Only support enums in C-land
    raise UnsupportedNodeError if exp[0][1].nil? # HACK ugly
    @env.scope do
      enum = exp[0][1][1] # HACK ugly t(:iter, t(:call, lhs <-- get lhs
      call = process exp.shift
      var  = process(exp.shift).intern # semi-HACK-y
      body = process exp.shift
      index = "index_#{var}"

      body += ";" unless body =~ /[;}]\Z/
      body.gsub!(/\n\n+/, "\n")

      out << "unsigned long #{index};"
      out << "for (#{index} = 0; #{enum}[#{index}] != NULL; ++#{index}) {"
      out << "#{self.class.c_type @env.lookup(var)} #{var} = #{enum}[#{index}];"
      out << body
      out << "}"
    end

    return out.join("\n")
  end