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.