On 20 Jan 2002, Ken Foskey wrote:

> Bison 1.31 (debian woody) creates
>
>       output   (header code)

IMHO, this is a bison bug, here is what I applied to the Mandrake Linux
8.2 bison:

2002-02-15  Gwenole Beauchesne  <[EMAIL PROTECTED]>

        * src/files (compute_exts_from_gf, compute_exts_from_src): Handle
        the case where header_extension is the same as src_extension, aka
        handle -d -o <file> where <file> doesn't have a known EXT to
        transform. e.g. if <file> is <something>.yxx, set the
        header_extension to <something>.yxx.h, as would do bison 1.28.

--- bison-1.32/src/files.c.extfix       Mon Jan 21 16:41:46 2002
+++ bison-1.32/src/files.c      Fri Feb 15 15:40:43 2002
@@ -288,6 +288,8 @@ compute_exts_from_gf (const char *ext)
   src_extension = tr (src_extension, 'Y', 'C');
   header_extension = tr (ext, 'y', 'h');
   header_extension = tr (header_extension, 'Y', 'H');
+  if (!strcmp (header_extension, src_extension))
+       header_extension = stringappend (src_extension, ".h");
 }

 /* Computes extensions from the given c source file extension. */
@@ -300,6 +302,8 @@ compute_exts_from_src (const char *ext)
   src_extension = xstrdup (ext);
   header_extension = tr (ext, 'c', 'h');
   header_extension = tr (header_extension, 'C', 'H');
+  if (!strcmp (header_extension, src_extension))
+       header_extension = stringappend (src_extension, ".h");
 }


> However there is now a lot of errors regarding size_t to fix.  I hand
> hacked the output from bison to replace YYSIZE_T with size_t and it
> worked fine.  I think this might be related to including stdio.h not
> cstdio in the mainline code, could be entirely wrong though.

With "2.96", I get something similar insofar as size_t got into __STL
namespace, which doesn't exist. Workaround is to #define __STL std into
rscyacc.cxx prior to including the .yxx file.

Bye,
Gwenole.

Reply via email to