zenspider.com by ryan davis

Not much here right now, just a placeholder because we are rushing a release…

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:

1
2
3
4
5
6
7
8
  class Example
    def conditional1(arg1)
      if arg1 == 0 then
        return 1
      end
      return 0
    end
  end

becomes:

1
2
3
4
5
6
7
8
9
10
  [:defn,
    "conditional1",
    [:scope,
     [:block,
      [:args, "arg1"],
      [:if,
       [:call, [:lvar, "arg1"], "==", [:array, [:lit, 0]]],
       [:return, [:lit, 1]],
       nil],
      [:return, [:lit, 0]]]]]

FEATURES/PROBLEMS: