Forum: Ruby ParseTree 1.4.1 Released

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Ryan D. (Guest)
on 2006-04-11 10:33
(Received via mailing list)
ParseTree version 1.4.1 has been released!


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

As an example:

   def conditional1(arg1)
     if arg1 == 0 then
       return 1
     return 0


       [:args, :arg1],
        [:call, [:lvar, :arg1], :==, [:array, [:lit, 0]]],
        [:return, [:lit, 1]],
       [:return, [:lit, 0]]]]]


+ 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
+ Only works on methods in classes/modules, not arbitrary code.
+ Does not work on the core classes, as they are not ruby (yet).


+ 4 minor enhancements:
	+ parse_tree_show -f output is much cleaner now.
	+ ParseTree does a much more elegant job of handling different
	+ ParseTree now has all node names in ParseTree::NODE_NAMES.
	+ ParseTree now raises exceptions instead of freakin'.
+ 3 bug fixes:
	+ Used multiruby to test against 1.8.2-4, 1.8 cvs, and 1.9 cvs.
	+ Fixed incompatibilites introduced in ruby 1.8.4.
	+ Fixed some incompatibilites introduced in ruby 1.9.x.
This topic is locked and can not be replied to.