From: Scott Woods (scottw_at_[hidden])
Date: 2005-09-15 16:19:59


----- Original Message -----
From: "Felipe Magno de Almeida" <felipe.m.almeida_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Thursday, September 15, 2005 7:02 PM
Subject: Re: [boost] [Review] xpressive

> > What I want is a stateful regular expression-based decoder object
> > (since in theory it's just a state machine and can remember its current
> > state). I can feed it more input which will cause more state
> > transitions, and it will tell me when it reaches a terminal state. I
> > never have to buffer more input than the block just read because
> > earlier input will have been fully consumed by the decoder.
>

Exactly. I only suspected there was some difficulty here. Thanks
for the full story.

> IMO, it would be needed the possibility to have more than one grammar,
> one for success and another for failure(Would be interesting to have
> the possibility for more than two), until no-one has a match continue
> to wait for more data...
>

Sorry. Don't follow the duplex grammar idea.

> >
> > As I said, this is an area I am very interested in exploring further
> > when time permits (and not just in relation to regular expressions, but
> > also things like Boost.Serialization), but that definitely belongs in
> > its own thread.
>
> IMO, it should be another library that should be able to interact with
> AIO, spirit and xpressive. I already own some helper classes for
> something like this, when they're called from the AIO components, they
> forward to the grammars and verify success or failure, but they re-do
> all the grammar processing again. I would be willing to volunteer to
> help in a library like this, since I use it a lot for processing
> protocols with AIO(sockets) and spirit and already have some code
> writed. However, I dont have enough time to create such a library all
> by myself.
>

 I'm in a very similar position. Except I have been forced to write my
own version of AIO and regex. If that experience is any use then I'm
pleased to contribute.

Cheers.