From: Dominik Bathon Date: 2006-10-24T22:38:56+09:00 Subject: Re: Parsing ruby-code with the ruby-interpreter itself On Tue, 24 Oct 2006 13:23:47 +0200, cies wrote: > at the moment most code editors are using sets of regexps, and other > difficult stuff to do highlighting and syntax error checking... > > i was (naturally) thinking: why? > > ruby already contains a nice parser for parsing ruby! > would it be possible to build hooks into the ruby-interpreter for > code-editors? > > i was thinking a small interface exposed by a (both c and ruby) > library, that allows other programs (mainly code editors for as far as > i can imagine) to make use of the relatively fast, and standard > compliant ruby parser that is already in ruby... > > searching the net i found nothing that does this. yet i might have > searched in the wrong direction. There are multiple libraries that do things like that: First there is Ripper. It works by putting its own hooks into parse.y and then providing a SAX-like interface. I am not sure about its status and how complete it is. Then there are RubyNode and ParseTree, which wrap Ruby's internal NODEs. They can both take a string, parse it using Ruby's parser (without executing it) and then return the resulting NODE tree. The downside of this approach is that comments are ignored, because they are not represented in the NODE tree, otherwise it works quite good. Dominik