[ANN] ParseTree 1.1.0 Released

ParseTree version 1.1.0 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/

** SYNOPSYS:

   sexp_array = ParseTree.new.parse_tree(klass)

or:

   class MyProcessor < SexpProcessor
     def initialize
       super
       self.strict = false
     end
     def process_lit(exp)
       val = exp.shift
       return val
     end
   end

or:

   % ./parse_tree_show myfile.rb

or:

   % ./parse_tree_abc myfile.rb

Changes:

+ 2 minor enhancement
  + Added SexpProcessor and CompositeSexpProcessor
  + Allowed show.rb to read from standard input.
+ 3 bug fixes
  + Fixed makefile issues for BSD's make - so dumb.
  + Added super as a call in abc.rb's metrics
  + Commented out a compiler flag to work with GCC 2.95.

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

···

Subject: ParseTree 1.1.0 Released

Ryan Davis wrote:

Subject: ParseTree 1.1.0 Released

ParseTree version 1.1.0 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.

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

  zenspider projects | software projects | by ryan davis

** SYNOPSYS:

  sexp_array = ParseTree.new.parse_tree(klass)

or:

  class MyProcessor < SexpProcessor
    def initialize
      super
      self.strict = false
    end
    def process_lit(exp)
      val = exp.shift
      return val
    end
  end

or:

  % ./parse_tree_show myfile.rb

or:

  % ./parse_tree_abc myfile.rb

Changes:

+ 2 minor enhancement
    + Added SexpProcessor and CompositeSexpProcessor
    + Allowed show.rb to read from standard input.
+ 3 bug fixes
    + Fixed makefile issues for BSD's make - so dumb.

bsd make power! :wink: just curious, what issue?

    + Added super as a call in abc.rb's metrics
    + Commented out a compiler flag to work with GCC 2.95.

  zenspider projects | software projects | by ryan davis

nice. I'm glad there are people still announcing to the mailing list, only releasing files to rubyforge is discouraging since no one bothers to look at files and looks at r-t announcements ;), Course theres raa, but theres so much dated libraries.

David Ross

···

--
Hazzle free packages for Ruby?
RPA is available from http://www.rubyarchive.org/