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