-------------- Original message ----------------------
From: Hans Aberg <[EMAIL PROTECTED]>
> 
> On 19 Oct 2007, at 00:42, [EMAIL PROTECTED] wrote:
> 
> > I am running into an interesting problem on Windows with Bison  
> > 2.1.  My grammar defines the word IN as a token.  When I build on  
> > Windows, there is a file which includes the generated gram.h after  
> > including Microsoft's header WinDef.h.  I'm using Visual  
> > Studio .NET 2003.  Unfortunately, that header defines "IN":
> >
> > #define IN
> >
> > So, when compiling, the inclusion of gram.h gets an error due to  
> > the enum yytokentype which ends up getting the line for IN messed  
> > up during preprocessing:
> >
> > ...
> >  = 250,
> > INTEGER = 251,
> > ...
> >
> > I can undefine "IN" before the inclusion of gram.h which works, but  
> > is a bit hacky.  I tried defining YYTOKENTYPE in the compile line  
> > (the enum is conditionalized with YYTOKENTYPE), but I got a link  
> > error when doing so.  Any idea why defining YYTOKENTYPE in the  
> > compile line causes this problem?  It sure looks like it's there  
> > for this reason.
> 
> You might try #undef IN after the inclusion of your header that  
> defines it. If you need the name, you might try #define INFOOBAR IN  
> before the #undef.
> 
> Otherwise, it is a problem of that header; get those who wrote it to  
> fix it.
> 
>    Hans Aberg
> 
> 
> 
> 
> _______________________________________________
> help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison

Yes, using "#undef IN" after the inclusion of WinDef.h works, but it seems like 
a bit of a hack.  By getting "those who wrote it to fix it", if you mean 
WinDef.h, it's a header from Visual Studio.  Somehow, I doubt that I could get 
Microsoft to "fix" that header.  I'd still like to understand why defining 
YYTOKENTYPE on the command line broke the link.  It sure looks like the code 
was written to give this option to not include the enum.

Thanks,
Mary Ann O'Connor


_______________________________________________
help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison

Reply via email to