[Ruby] [ANN] ParseTree 1.5.0 Released

Aaron Patterson aaron_patterson at speakeasy.net
Sun Sep 24 13:28:46 PDT 2006


On Sun, Sep 24, 2006 at 01:02:14PM -0700, Ryan Davis wrote:
> ParseTree version 1.5.0 has been released!
> 
>    http://rubyforge.org/projects/parsetree/
>    http://www.zenspider.com/ZSS/Products/ParseTree/
> 
> ** 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.
> 
> As an example:
> 
>    def conditional1(arg1)
>      if arg1 == 0 then
>        return 1
>      end
>      return 0
>    end
> 
> becomes:
> 
>    [:defn,
>      :conditional1,
>      [:scope,
>       [:block,
>        [:args, :arg1],
>        [:if,
>         [: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).
> 
>    http://rubyforge.org/projects/parsetree/
>    http://www.zenspider.com/ZSS/Products/ParseTree/
> 
> Changes:
> 
> + 5 minor enhancements:
> 	Added parse_tree_audit.
> 	Added reporting of unsupported nodes that have processors.
> 	YAY! class method support! generated as :"self.blah"
> 	Add parse_tree_for_string.
> 	Converted Rakefile+gemspec to Hoe-based Rakefile.
> + 6 bug fixes:
> 	Did some preliminary work on 1.9 compatibility.
> 	Fixed tests for some changes/clarifications.
> 	Fixed resbody: should have nil exceptions list when no exception  
> rescued.
> 	Fixed op_asgn1 and op_asgn2.
> 	Fixed incompatibility with new inline changes.
> 	Fixed VALUE decl in parse_tree.rb
> 
>    http://rubyforge.org/projects/parsetree/
>    http://www.zenspider.com/ZSS/Products/ParseTree/

Is this in response to the weekly quiz?  ;-)

-- 
Aaron Patterson
http://tenderlovemaking.com/


More information about the Ruby mailing list