On Wed, Sep 20, 2006 at 09:58:30PM -0700, Paul Eggert wrote:
> >> One way to address this issue would be to have two entry points:
> >> 
> >>        status = yypushparse (ctx, ch, yylloc);
> >> 
> >> for tokens that have no semantic value, and
> >> 
> >>        status = yypushparseval (ctx, ch, yylval, yylloc);
> >> 
> >> for tokens that do.
> >> 
> >> Another possibility, which will avoid a copy in some cases if semantic
> >> values are large, is to pass a pointer:
> >> 
> >>        status = yypushparse (ctx, ch, &yylval, yylloc);
> >> 
> >> where you pass a NULL pointer if the token has no semantic value.  If
> >> the copying issue is of concern, it may also make sense to pass yylloc's
> >> address too:
> >> 
> >>        status = yypushparse (ctx, ch, &yylval, &yylloc);
> >> 
> >> I don't know whether the copying concern is enough to affect
> >> performance, though.
> >
> > I'm not decided on how to modify the yypushparse function parameters.
> > Have you made up your mind?
> 
> If it doesn't matter to you, let's use the second method (passing
> the addresses).  We can always change it later if it turns
> out to have a problem.

OK, I liked the second approach better myself. I'll look into it.

Bob Rossi


Reply via email to