[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: push parser

From: Bob Rossi
Subject: Re: push parser
Date: Wed, 27 Dec 2006 10:09:45 -0500
User-agent: Mutt/1.5.12-2006-07-14

On Wed, Dec 27, 2006 at 09:58:51AM -0500, Joel E. Denny wrote:
> On Wed, 27 Dec 2006, Bob Rossi wrote:
> > On Tue, Dec 26, 2006 at 07:09:20PM -0500, Joel E. Denny wrote:
> > > On Tue, 26 Dec 2006, Bob Rossi wrote:
> > > 
> > > > What's left to do here? Do you have a list of things?
> > > 
> > > 1. For yacc.c, you can invoke yyparse multiple times.  For push.c's push 
> > > mode, I haven't thought this through.  I guess yypush_parse should set 
> > > yyps->yynew = 1 whenever it returns with a parse error or success.
> > > 
> > > 2. The push parser needs to be documented in the manual.
> > > 
> > > 3. We should add some test cases that exercise yypush_parse better than 
> > > just a while loop that behaves like yyparse.
> > 
> > I'd be happy to help or do any of these tasks, which would you prefer I
> > start with?
> At the moment, I'd like to settle the %push-pull-parser issue, which my 
> recent patch addresses.  If you have no preference in that regard, that's 
> fine, buy maybe Paul has an opinion.  In any case, I shouldn't make that 
> decision by myself.

OK. What exactly is the issue? The names of the options?

> In the meantime, I think we should stay away from #1 just to avoid 
> conflicts.  However, feel free to work on #2, but understand that the 
> %push-pull-parser stuff is still evolving.  For #3, do you have any use 
> cases from your own work that could be converted to test cases?

Well, I have a grammar that implements the gdb/mi protocol. I then use
flex and bison to parse it. I currently don't do anything interactive
though, if that's what you are looking for. In fact, I don't plan on
ever doing anything interactive for this project. The reason I needed the 
push parser is because gdb/mi is a line oriented protocol 
(It emits one line at a time). If you've used gdb enough, you'll notice 
that sometimes when a program crashes by recursion or stack curroption,
if you do a backtrace in gdb it can print frames for a very long time.
Without the push parser, I have to wait (5-10 minutes) for the entire 
response to come back before passing to bison. This gives the user a 
bad experience. With the push parser I can alert bison after each frame
is printed. There are other benefits. 

Would the grammar be useful? or are you thinking of a contrived example
that is interactive?

Bob Rossi

reply via email to

[Prev in Thread] Current Thread [Next in Thread]