README.txt in ParseTree-1.7.1 vs README.txt in ParseTree-2.0.0
- old
+ new
@@ -1,16 +1,16 @@
ParseTree
http://rubyforge.org/projects/parsetree/
http://www.zenspider.com/ZSS/Products/ParseTree/
support@zenspider.com
-** DESCRIPTION:
+== DESCRIPTION:
ParseTree is a C extension (using RubyInline) that extracts the parse
tree for an entire class or a specific method and returns it as a
s-expression (aka sexp) using ruby's arrays, strings, symbols, and
-integers.
+integers.
As an example:
def conditional1(arg1)
if arg1 == 0 then
@@ -30,28 +30,31 @@
[:call, [:lvar, :arg1], :==, [:array, [:lit, 0]]],
[:return, [:lit, 1]],
nil],
[:return, [:lit, 0]]]]]
-** FEATURES/PROBLEMS:
-
-+ Uses RubyInline, so it just drops in.
-+ Includes SexpProcessor and CompositeSexpProcessor.
- + Allows you to write very clean filters.
-+ Includes parse_tree_show, which lets you quickly snoop code.
- + echo "1+1" | parse_tree_show -f for quick snippet output.
-+ Includes parse_tree_abc, which lets you get abc metrics on code.
- + abc metrics = numbers of assignments, branches, and calls.
- + whitespace independent metric for method complexity.
-+ Includes parse_tree_deps, which shows you basic class level dependencies.
-+ Only works on methods in classes/modules, not arbitrary code.
-+ Does not work on the core classes, as they are not ruby (yet).
+== FEATURES/PROBLEMS:
-** SYNOPSYS:
+* Uses RubyInline, so it just drops in.
+* Includes SexpProcessor and CompositeSexpProcessor.
+ * Allows you to write very clean filters.
+* Includes UnifiedRuby, allowing you to automatically rewrite ruby quirks.
+* ParseTree#parse_tree_for_string lets you parse arbitrary strings of ruby.
+* Includes parse_tree_show, which lets you quickly snoop code.
+ * echo "1+1" | parse_tree_show -f for quick snippet output.
+* Includes parse_tree_abc, which lets you get abc metrics on code.
+ * abc metrics = numbers of assignments, branches, and calls.
+ * whitespace independent metric for method complexity.
+* Includes parse_tree_deps, which shows you basic class level dependencies.
+* Does not work on the core classes, as they are not ruby (yet).
- sexp_array = ParseTree.new.parse_tree(klass)
+== SYNOPSYS:
+ sexp_array = ParseTree.translate(klass)
+ sexp_array = ParseTree.translate(klass, :method)
+ sexp_array = ParseTree.translate("1+1")
+
or:
class MyProcessor < SexpProcessor
def initialize
super
@@ -73,23 +76,24 @@
or:
% ./parse_tree_abc myfile.rb
-** REQUIREMENTS:
+== REQUIREMENTS:
-+ RubyInline 3 or better.
+* RubyInline 3.6 or better.
-** INSTALL:
+== INSTALL:
-+ sudo rake install
-+ or: sudo gem install ParseTree
+* rake install_gem
+* sudo rake install
+* sudo gem install ParseTree
-** LICENSE:
+== LICENSE:
(The MIT License)
-Copyright (c) 2001-2004 Ryan Davis, Zen Spider Software
+Copyright (c) 2001-2007 Ryan Davis, Zen Spider Software
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,