bison-patches
[Top][All Lists]
Advanced

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

Re: push parser implemenation


From: Akim Demaille
Subject: Re: push parser implemenation
Date: Thu, 14 Sep 2006 18:02:54 +0200
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)

>>> "Bob" == Bob Rossi <address@hidden> writes:

 > OK, I don't know why this is confusing to me.

I guess the answer is simple: I am not clear :)

 > Let me try to explain myself clearly.

 > You would like yyparse to always be in pull mode, regardless of the
 > option. This is probably possible, but with my current patch, won't
 > work. The problem is, I modify the yyparse () function (with m4) when 
 > the %push-parser option is enabled. For example, in the pull yyparse
 > function, this is done at some point:
 >   goto yysetstate
 > in the push yyparse function, this is done instead:
 >   +[  ]b4_push_if([
 >   +        /* Initialize the locals to the current context. */
 >   +       yychar        = pv->yychar;
 >   +       yylval        = pv->yylval;
 >   +       yynerrs       = pv->yynerrs;
 >   ...
 >   +  goto yysetstate;

 > Do you see what I mean? Now that I've bored you with technical
 > details, do you have an idea that would overcome these problems in
 > order to achieve your objective?

I *think* that you are referring to the body of yyparse, but I'm
talking about the name of the function only.  I am by no means
referring to the code of the yyparse function, but merely the *name*.

When the push features are enabled, rename what used to be yyparse
into something else (using m4), and provide a wrapper named yyparse
that calls repeatedly the push interface.

Am I clear?

Maybe I'm missing something obvious, but really, I don't understand
where the problem is.  Maybe I need to read push.c to understand.





reply via email to

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