# File lib/gauntlet_parsetree.rb, line 58
  def process path, name
    begin
      $stderr.print "  #{path}: "
      rp = RubyParser.new
      pt = ParseTree.new

      old_ruby = File.read(path)

      begin
        pt_sexp = pt.process old_ruby
      rescue SyntaxError => e
        warn "unparsable pt"
        self.data[name][path] = :unparsable_pt
        self.dirty = true
        return
      end

      begin
        rp_sexp = rp.process old_ruby
      rescue Racc::ParseError => e
        broke name, path, e.message
        return
      end

      if rp_sexp != pt_sexp then
        broke name, path, diff_pp(rp_sexp, pt_sexp)
        return
      end

      self.data[name][path] = true
      self.dirty = true

      warn "good"
    rescue Interrupt
      puts "User cancelled"
      exit 1
    rescue Exception => e
      broke name, path, "    UNKNOWN ERROR: #{e}: #{e.message.strip}"
    end
  end