Hi Akim.

On 07/14/2012 09:24 AM, Akim Demaille wrote:
> 
> Le 14 juil. 2012 à 09:13, Akim Demaille a écrit :
> 
>> The failure is due to the input:
>>
>> %{
>> int yylex () { return 0; }
>> void yyerror (const char *s) { return; }
>> %}
>> %%
>> foobar : 'f' 'o' 'o' 'b' 'a' 'r' {};
>>
>> %{%} goes into the header when there is one, and it also goes
>> in the implementation file, so, since glr.c include its header,
>> you get two definitions.  
> 
> No, that's not it, I overlooked the test case.  The issue
> is simpler: the header file contains the definition of these
> guys, and it is included in two different compilation units.
> 
> Attached is an updated patch.
> 
>> I don't see it since 2.6 has several improvements in this area.
> 
> I don't see it because this section does not appear in the
> header file since the superior %code approach was added.
>
Thanks for working this out.  Feel free to push it out to yacc-work;
I'll give that branch more testing today or tomorrow (on Solaris and
BSD systems), then we'll be able to merge it into maint.

Thanks,
  Stefano

Reply via email to