[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