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

Re: bison help needed

On Fri, Aug 3, 2018 at 10:43 PM, Andreas Tille <andreas@an3as.eu> wrote:
>> +export DEB_CXXFLAGS_MAINT_APPEND=-fpermissive
> I tried this but the error remains exactly the same.

Right, but looking into it, I got the feeling that the error message
was somewhat inaccurate, and the compiler was unhappy about
some real problem with the arguments to that function.

>> but I wonder how many arguments yyparse and yyerror are really
>> supposed to have; there may be a bit of confusion there.
> Sorry, I do not understand this.

Well, interact.cc has

interact.cc:int yyparse(UserLevelRewritingContext::ParseResult*);
interact.cc:      bool parseError = yyparse(&parseResult);

and surface.yy has

surface.yy:%parse-param {void* YYPARSE_PARAM}

which suggests to me that yyparse has one argument... with some handwaving
about its actual type.  But top.yy has
top.yy:%parse-param {void* YYPARSE_PARAM}
top.yy:%parse-param {UserLevelRewritingContext::ParseResult* parseResult}
and the generated surface.{cc,h} has
surface.cc:yyparse (void* YYPARSE_PARAM,
UserLevelRewritingContext::ParseResult* parseResult)
surface.h:int yyparse (void* YYPARSE_PARAM,
UserLevelRewritingContext::ParseResult* parseResult);
so yyparse has two arguments.

I think that means that when you imported upstream version 2.7.1, you
should have removed
at which point maybe you don't need -fpermissive anyway (possibly).

Or something like that :-)  I'm no expert, and it's all very twisty, isn't it?
- Dan

Reply to: