# File lib/ruby2ruby.rb, line 402
  def process_hash(exp)
    result = []
    until exp.empty?
      lhs = process(exp.shift)
      rhs = exp.shift
      t = rhs.first
      rhs = process rhs
      rhs = "(#{rhs})" unless [:lit, :str].include? t # TODO: verify better!

      result << "#{lhs} => #{rhs}"
    end

    case self.context[1]
    when :arglist, :argscat then
      unless result.empty? then
        # HACK - this will break w/ 2 hashes as args
        if BINARY.include? @calls.last then
          return "{ #{result.join(', ')} }"
        else
          return "#{result.join(', ')}"
        end
      else
        return "{}"
      end
    else
      return "{ #{result.join(', ')} }"
    end
  end