# ParseTree 2.1.0 Released

**URL:** <https://www.ruby-forum.com/t/parsetree-2-1-0-released/123975>\
**Category:** Ruby\
**Created:** [December 22, 2007, 11:52pm UTC](https://www.ruby-forum.com/t/parsetree-2-1-0-released/123975 "2007-12-22T23:52:45Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![aguynamedryan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/43a26b/32.png) [@aguynamedryan](https://www.ruby-forum.com/u/aguynamedryan)\
**Post date:** [December 22, 2007, 11:52pm UTC](https://www.ruby-forum.com/t/parsetree-2-1-0-released/123975/1 "2007-12-22T23:52:45Z")

</div>

ParseTree version 2.1.0 has been released!

- [http://www.zenspider.com/ZSS/Products/ParseTree/](http://www.zenspider.com/ZSS/Products/ParseTree/)

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]]]]]

- 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).

Changes:

- 13 minor enhancements:

- 6 bug fix:

- [http://www.zenspider.com/ZSS/Products/ParseTree/](http://www.zenspider.com/ZSS/Products/ParseTree/)
