From: Wil Date: 2006-11-13T01:35:08+09:00 Subject: Re: Ruby parsing in Ruby Hrm, I remember stumbling over parsetree, and it seems like the classes need to already exist in object/class space (at least from the example that they give). What if you just had a string of the source of the classes? Perhaps they're one in the same. I should look at Parsetree a little bit closer. Wil Timothy Goddard wrote: > 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.