In article <20050820192807.34008.qmail / web36115.mail.mud.yahoo.com>,
Eric Mahurin  <eric_mahurin / yahoo.com> wrote:
>--- "Ara.T.Howard" <Ara.T.Howard / noaa.gov> wrote:
>
>> On Sun, 21 Aug 2005, Phil Tomson wrote:
>>=20
>> > In article <43076BDE.2070103 / neurogami.com>,
>> > James Britt  <james_b / neurogami.com> wrote:
>> >> Ara.T.Howard wrote:
>> >>> On Sun, 21 Aug 2005, James Britt wrote:
>> >>>
>> >>>> ...
>> >>>>
>> >>>> Isn't there a Ruby project that allows one to run
>> regexen over object
>> >>>> hierarchies?
>> >>>
>> >>>
>> >>> dunno...  i seem to recall something too but searching
>> the raa didn't
>> >>> bring up
>> >>> any hits?
>> >>>
>> >>
>> >> I was selling some folks on Ruby recently, and mentioned
>> this project,
>> >> and I swore I had saved off the initial announcement
>> because it struck
>> >> me as one of those things that did solve any immediate
>> problems but
>> >> seemed so slick that I knew it would come in handy.
>> >>
>> >>
>> >> Now I can't find it. :(
>> >>
>> >>
>> >
>> > I think you're looking for Reg:
>> >
>> > http://rubyforge.org/projects/reg/
>> >
>> > Reg is a library for pattern matching in ruby data
>> structures. Reg
>> > provides Regexp-like match and match-and-replace for all
>> data structures
>> > (particularly Arrays, Objects, and Hashes), not just
>> Strings.
>
>From my communications with Caleb, I believe he'll be changing
>the interface to look more like Regexp.  This will help in
>places where you have ducked-type places that deal with
>Regexp-like objects.  An example is some of the scan_pattern*
>methods I'll be adding to Cursor (not released yet).  I think
>he might add the ability to operate on a Cursor directly also,
>but I'm not sure about that.  A Cursor by the way is something
>generic that can look kind of like a Array, String, IO, C++
>iterator, Java stream, etc. all rolled into one API.  I have
>many derived classes that operate on a variety of sequential
>data structures.
>
>In addition I'm putting together Grammar which will also be
>able to operate on any sequential data structure - as long as
>you can give it a subset of the Cursor API.  You'll be able to
>write a lexer (operates on characters) and a parser (operates
>on tokens) in a uniform way.  Similar to ANTLR, but more
>unification.
>
>

We eagerly await the release of Grammar.  

Phil