ParseTree 1.3.4 Released

R

Ryan Davis

ParseTree version 1.3.4 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:

+ 2 bug fixes
+ bug:1459: Cleaned up and corrected superclass naming code.
+ bug:1458: Fixed while to support post-conditional while/until nodes.

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

--
(e-mail address removed) - http://blog.zenspider.com/
http://rubyforge.org/projects/ruby2c/
http://rubyforge.org/projects/parsetree/
http://rubyforge.org/projects/rubyinline/
http://www.zenspider.com/seattle.rb
 
G

George Moschovitis

Hello Ryan,

thanks for your efforts with ParseTree. I was wondering if one could
implement a Lisp style macro system for Ruby using your library. What
do you think?

regards,
George Moschovitis

ps: I am really amazed at the latest developments in Ruby Land
(ParseTree, RubyInline, RubyToC, Yarv, etc...) Great time to be a Ruby
hacker :)
 
R

Ryan Davis

thanks for your efforts with ParseTree. I was wondering if one could
implement a Lisp style macro system for Ruby using your library. What
do you think?

Hrm. I don't have the ability to put the modified AST back into ruby...
but you might be able to fake it using ruby2ruby and evaling back into
the class... :/
ps: I am really amazed at the latest developments in Ruby Land
(ParseTree, RubyInline, RubyToC, Yarv, etc...) Great time to be a Ruby
hacker :)

thanks!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,167
Messages
2,570,911
Members
47,453
Latest member
MadelinePh

Latest Threads

Top