On Mon, Jul 02, 2007 at 10:16:13AM -0400, Joel E. Denny wrote: > On Mon, 2 Jul 2007, Bob Rossi wrote: > > > OK. I don't even know what push-pull-parser does. When I submitted the > > patch, I only had support for push-parser and pure-parser didn't effect > > it at all. You did some improvements to the patch, and we ended up > > with push-pull-parser as well. My question is, is push-parser still > > the same idea as what I committed? If so, what is push-pull-parser? > > > > With out knowing what it is, the name seems odd to me. You can have a > > push parser, and you can have a pull parser, but what's a > > push-pull-parser? :) > > It's both. > > %push-parser defines yypush_parse. When combined with %pure-parser, it's > close to your original form. > > %push-pull-parser adds yypull_parse, which is a wrapper around > yypush_parse that invokes yylex in a loop. For example, one can > yypush_parse tokens to select a subgrammar and then yypull_parse the rest > of the input stream. > > %push-pull-parser also defines yyparse, which is a wrapper around > yypull_parse. This yyparse has the same interface as the yyparse > generated when neither %push-* directive is specified. > > yypull_parse and yyparse are not defined for %push-parser because that > would require the user to define yylex even when he doesn't want to. > > To see some of these interfaces, you might try generating a few example > parsers. It's probably easiest to look at the generated header file. > > Again, the following seems more intuitive to me now: > > %define push_pull "pull" // default > %define push_pull "push" > %define push_pull "both" > > > > You can use %pure-parser in combination with either %push-parser or > > > %push-pull-parser.
OK, as of today, I'm going to document push-parser, push-pull-parser and pure-parser in combination with those two. It seemed that perhaps you were thinking about reimplementing how this works. Are you? I just don't want to document this if you think you'll change it shortly. Thanks, Bob Rossi ~ _______________________________________________ help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison