ANN: ParseTree 1.3.7 Released

ParseTree version 1.3.7 has been released!

   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 show.rb, which lets you quickly snoop code.
+ Includes abc.rb, which lets you get abc metrics on code.
     + abc metrics = numbers of assignments, branches, and calls.
     + whitespace independent metric for method complexity.
+ Only works on methods in classes/modules, not arbitrary code.
+ Does not work on the core classes, as they are not ruby (yet).

   http://www.zenspider.com/ZSS/Products/ParseTree/

Changes:

+ 3 bug fixes:
     + Fixed rubygem requires for non-gem systems.
     + Renamed on to on_error_in to make more clear.
     + Moved exceptions to their own tree to make catching cleaner.

   http://www.zenspider.com/ZSS/Products/ParseTree/

···

--
ryand-ruby@zenspider.com - Seattle.rb - http://www.zenspider.com/seattle.rb
http://blog.zenspider.com/ - http://rubyforge.org/projects/ruby2c

Ryan Davis wrote:

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.

Any plans to implement the reverse, so that a parse-tree can be
generated and run? Or perhaps to produce a parse-tree to Ruby
source code generator?

Any thoughts on procs? It doesn't appear that there's any way of
dumping parsetrees for procs at the moment, which would be very handy.

I tried cheating a little, using an anonymous class and define_method,
but that made RubyToRuby cough up an "UnknownNodeType: nil" error, for
some reason, though I think the parsetree dumped fine.

thanks,
Mark

···

On 7/14/05, Ryan Davis <ryand-ruby@zenspider.com> wrote:

ParseTree version 1.3.7 has been released!

   zenspider projects | software projects | by ryan davis

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

http://rubyforge.org/projects/zenhacks/

···

On Jul 14, 2005, at 6:40 PM, Clifford Heath wrote:

Ryan Davis wrote:

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.

Any plans to implement the reverse, so that a parse-tree can be
generated and run? Or perhaps to produce a parse-tree to Ruby
source code generator?

--
ryand-ruby@zenspider.com - Seattle.rb - Seattle.rb | Home
http://blog.zenspider.com/ - http://rubyforge.org/projects/ruby2c

[ruby-talk:48082] or http://blog.zenspider.com/archives/2005/07/rash_of_ruby_re.html

I don't think we've bothered looking for the AST of a proc yet. It was easier to just bind it to a method and let Ruby2Ruby handle it.

···

On 15 Jul 2005, at 01:01, Mark Hubbart wrote:

On 7/14/05, Ryan Davis <ryand-ruby@zenspider.com> wrote:

ParseTree version 1.3.7 has been released!

   zenspider projects | software projects | by ryan davis

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

Any thoughts on procs? It doesn't appear that there's any way of
dumping parsetrees for procs at the moment, which would be very handy.

I tried cheating a little, using an anonymous class and define_method,
but that made RubyToRuby cough up an "UnknownNodeType: nil" error, for
some reason, though I think the parsetree dumped fine.

--
Eric Hodel - drbrain@segment7.net - http://segment7.net
FEC2 57F1 D465 EB15 5D6E 7C11 332A 551C 796C 9F04

I bothered. It was hard(er).

···

On Jul 15, 2005, at 2:40 AM, Eric Hodel wrote:

[ruby-talk:48082] or http://blog.zenspider.com/archives/2005/07/rash_of_ruby_re.html

I don't think we've bothered looking for the AST of a proc yet. It was easier to just bind it to a method and let Ruby2Ruby handle it.

--
ryand-ruby@zenspider.com - Seattle.rb - Seattle.rb | Home
http://blog.zenspider.com/ - http://rubyforge.org/projects/ruby2c