ParseTree 1.5.0 Released

| | Comments (0)

ParseTree version 1.5.0 has been released!

sudo gem install 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 parsetreeshow, which lets you quickly snoop code.
    • echo "1+1" | parsetreeshow -f for quick snippet output.
  • Includes parsetreeabc, which lets you get abc metrics on code.
    • abc metrics = numbers of assignments, branches, and calls.
    • whitespace independent metric for method complexity.
  • Includes parsetreedeps, 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 parsetreeaudit.
    • Added reporting of unsupported nodes that have processors.
    • YAY! class method support! generated as :"self.blah"
    • Add parsetreefor_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 opasgn1 and opasgn2.
    • 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/

Leave a comment

About this Entry

This page contains a single entry by zenspider published on September 24, 2006 1:22 PM.

Recursive Functions in RubyInline was the previous entry in this blog.

Hoe 1.0.4 released is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Pages

Powered by Movable Type 4.32-en