Hi! Le 20 nov. 2013 à 16:45, Arthur Schwarz <aschwarz1...@att.net> a écrit :
> Win7 > cygwin cygcheck (cygwin) 1.7.25 > > bison (GNU Bison) 2.7.1 > > The typedef for YYSTYPE is not created in the parser output file (in my case) > Slip.bison.cpp nor in any file imported by flex. Is there any reason, e.g., > am I doing something wrong or not using a bison option correctly? > > The indication seems to be that if I use %union then YYSTYPE is not defined. > Is my reading accurate? In the case of C++, yes. It's a completely different interface compared to the yacc-like API, there is not much point in reproducing parts of it. Support for "incoming" YYSTYPE, however, is a different matter, as it provides the user with a means to define exotic semantic value types. However since Bison 3.0 the %define variable api.value.type makes user-defined YYSTYPE quite obsolete. > The input from the grammar definition file (Slip.y) is: > > > %file-prefix "Slip.bison" > %language "C++" > %name-prefix "Slip" > %output "Slip.Bison.cpp" > > %union { > int everything; > } > > > The generated parser fragment (without #lines) is: > > > namespace Slip { > > /// A Bison parser. > class parser > { > public: > /// Symbol semantic values. > #ifndef YYSTYPE > union semantic_type > { > > int everything; > }; > #else > typedef YYSTYPE semantic_type; > #endif _______________________________________________ help-bison@gnu.org https://lists.gnu.org/mailman/listinfo/help-bison