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? Thanks, Bob Rossi
