2004-11-23 Akim Demaille <akim@epita.fr>
authorAkim Demaille <akim@epita.fr>
Tue, 23 Nov 2004 19:56:12 +0000 (19:56 +0000)
committerAkim Demaille <akim@epita.fr>
Tue, 23 Nov 2004 19:56:12 +0000 (19:56 +0000)
* data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
of #defining from yystype.
Don't typedef yystype, C++ does not need it.
This lets it possible to forward declare it as union.

ChangeLog
data/lalr1.cc

index 98ad13d..915a3b9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2004-11-23  Akim Demaille  <akim@epita.fr>
+
+       * data/lalr1.cc (YYSTYPE): Define it as is done for C, instead
+       of #defining from yystype.
+       Don't typedef yystype, C++ does not need it.
+       This lets it possible to forward declare it as union.
+
 2004-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        * bootstrap (gnulib_modules): Add extensions.
index 4e9f9cb..817b383 100644 (file)
@@ -164,16 +164,16 @@ b4_syncline([@oline@], [@ofile@])[
 # define YYERROR_VERBOSE ]b4_error_verbose[
 #endif
 
-#ifdef YYSTYPE
-typedef YYSTYPE yystype;
-#else
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 ]m4_ifdef([b4_stype],
 [b4_syncline([b4_stype_line], [b4_filename])
-typedef union b4_stype yystype;
+union YYSTYPE b4_stype;
 /* Line __line__ of lalr1.cc.  */
 b4_syncline([@oline@], [@ofile@])],
-[typedef int yystype;])[
-# define YYSTYPE yystype
+[typedef int YYSTYPE;])[
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 /* Copy the second part of user declarations.  */
@@ -215,7 +215,7 @@ namespace yy
     typedef ]b4_int_type_for([b4_translate])[ TokenNumberType;
     typedef ]b4_int_type_for([b4_rhs])[       RhsNumberType;
     typedef int StateType;
-    typedef yystype SemanticType;
+    typedef YYSTYPE SemanticType;
     typedef ]b4_location_type[ LocationType;
   };
 }