require_relative '../lib/sexp_path'
require 'ruby_parser'

path = ARGV.shift
if !path
  puts "Prints classes and methods in a file"
  puts "usage:"
  puts "  ruby print_methods.rb <path>"
  exit
end

code = File.read(path)
sexp = RubyParser.new.parse(code, path)

# Use the ruby pattern matcher:
results = sexp / R?{ _class } / R?{ _method }

puts path
puts "-" * 80

results.each do |sexp_result|
  class_name = sexp_result['class']
  method_name = sexp_result['method']
  puts "#{class_name}##{method_name}"
end