# File lib/pry/pry_instance.rb, line 267
  def r(target=TOPLEVEL_BINDING, eval_string="")
    target = Pry.binding_for(target)
    @suppress_output = false

    val = ""
    loop do
      begin
        # eval_string will probably be mutated by this method
        retrieve_line(eval_string, target)
      rescue CommandError, Slop::InvalidOptionError => e
        output.puts "Error: #{e.message}"
      end

      begin
        break if complete_expression?(eval_string)
      rescue SyntaxError => e
        output.puts "SyntaxError: #{e.message.sub(/.*syntax error, */m, '')}"
        eval_string = ""
      end
    end

    @suppress_output = true if eval_string =~ /;\Z/ || eval_string.empty?

    exec_hook :after_read, eval_string, self
    eval_string
  end