bison-patches
[Top][All Lists]
Advanced

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

Re: push parser


From: Bob Rossi
Subject: Re: push parser
Date: Mon, 25 Sep 2006 10:47:38 -0400
User-agent: Mutt/1.5.11

On Mon, Sep 25, 2006 at 10:28:23AM -0400, Bob Rossi wrote:
> On Thu, Sep 21, 2006 at 07:03:47AM -0400, Bob Rossi wrote:
> > 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.
> 
> I have a small patch that get's me this far:
>   status = yypushparse (ctx, ch, &yylval);
> 
> What should I do about yylval?
> 
> I can attempt to make yypushparse have an extra parameter when locations
> are enabled. Does that sound correct?

Here, is a patch I'm posting just for you to tell me if this is the
appropriate solution. If it is, I'll clean it up and add the ChangeLog.

This removes all set/get accessor functions, and has a single
yypushparse function that takes 3 parameters when locations are off, and
4 parameters when locations are on.

Thanks,
Bob Rossi

Attachment: push.c.diff
Description: Text document


reply via email to

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