# File lib/rewriter.rb, line 351 def process_call(exp) lhs = process exp.shift name = exp.shift rhs = process exp.shift lhs_type = lhs.sexp_type rescue nil type_signature = [lhs_type, name] type_signature += rhs[1..-1].map { |sexp| sexp.sexp_type } unless rhs.nil? result = if REWRITES.has_key? type_signature then REWRITES[type_signature].call(lhs, name, rhs) else t(:call, lhs, name, rhs, exp.sexp_type) end return result end