bin/parse_tree_show in ParseTree-2.0.0 vs bin/parse_tree_show in ParseTree-2.0.1

- old
+ new

@@ -1,49 +1,43 @@ #!/usr/local/bin/ruby -ws require 'pp' begin require 'rubygems' rescue LoadError end require 'parse_tree' +require 'sexp' -def discover_new_classes_from - old_classes = [] - ObjectSpace.each_object(Module) do |klass| - old_classes << klass - end +$u ||= false +$n ||= false +$s ||= false +$n = $n.intern if $n - yield +ARGV.push "-" if ARGV.empty? - new_classes = [] - ObjectSpace.each_object(Module) do |klass| - new_classes << klass - end +if $u then + require 'sexp_processor' + require 'unified_ruby' - new_classes -= old_classes - new_classes = [ eval($c) ] if defined? $c - new_classes -end - -$f = false unless defined? $f - -new_classes = discover_new_classes_from do - ARGV.unshift "-" if ARGV.empty? - ARGV.each do |name| - if name == "-" then - code = $stdin.read - code = "class Example; def example; #{code}; end; end" if $f - eval code unless code.nil? - else - require name - end + class Unifier < SexpProcessor + include UnifiedRuby end end -result = ParseTree.new.parse_tree(*new_classes) +parse_tree = ParseTree.new +unifier = Unifier.new if $u -result = result[0][3][2][1][2..-1] if $f +ARGV.each do |file| + ruby = file == "-" ? $stdin.read : File.read(file) -unless defined? $q then - pp result -else - p result -end + sexp = Sexp.from_array parse_tree.parse_tree_for_string(ruby, file).first + sexp = unifier.process(sexp) if $u + sexp = sexp.structure if $s + if $n then + sexp.each_of_type $n do |node| + p node + end + elsif defined? $q then + p sexp + else + pp sexp + end +end