Wil wrote:
> Hi all,
>
> I've been doing Ruby for a small while now, but I'm a newbie when it
> comes to parsing.  I've been digging around, but still can't seem to
> find the answer.  I was wondering if Ruby itself has classes that I can
> use to parse ruby source code into a parse tree.
>
> My first inclination was to use Racc
> (http://i.loveruby.net/en/projects/racc/), but I didn't want to have to
> write the BNF(en.wikipedia.org/wiki/Backus-Naur_form) for Ruby if I
> didn't have to (maybe it's not that hard?).  I wasn't able to find a
> library of BNF for different languages (including Ruby), so then I
> started looking elsewhere.
>
> Both irb and ri probably use a Ruby parser of some sort, but looking at
> the source code, it looked like each of them rolled their own.  I
> wasn't able to dig out the ruby parsing functionality from either by
> including what I thought were necessary code modules.
>
> What would be the easiest way to parse Ruby source into parse trees in
> Ruby?  Thanks!
>
> Wil

Take a look at parsetree. It should be able to do this quite happily
and uses Ruby's own parser. This avoids compatibility issues.