# File lib/ruby_to_ansi_c.rb, line 252
  def process_call(exp)
    receiver = exp.shift
    name = exp.shift

    receiver_type = Type.unknown
    unless receiver.nil? then
      receiver_type = receiver.sexp_type
    end
    receiver = process receiver

    case name
      # TODO: these need to be numerics
      # emacs gets confused by :/ below, need quotes to fix indentation
    when :==, :<, :>, :<=, :>=, :-, :+, :*, "/""/", :% then
      args = process exp.shift[1]
      return "#{receiver} #{name} #{args}"
    when :<=>
      args = process exp.shift[1]
      return "RB_COMPARE(#{receiver}, #{args})"
    when :equal?
      args = process exp.shift
      return "#{receiver} == #{args}" # equal? == address equality
    when :[]
      args = process exp.shift
      return "#{receiver}[#{args}]"
    when :nil?
      exp.clear
      return receiver.to_s
    else
      args = process exp.shift

      if receiver.nil? and args.nil? then
        args = ""
      elsif receiver.nil? then
        # nothing to do 
      elsif args.nil? then
        args = receiver
      else
        args = "#{receiver}, #{args}"
      end

      return "#{name}(#{args})"
    end
  end