%union directive works as for C, see The Union Declaration. In
particular it produces a genuine
union, which have a few specific
features in C++.
YYSTYPEis defined but its use is discouraged: rather you should refer to the parser’s encapsulated type
Because objects have to be stored via pointers, memory is not
reclaimed automatically: using the
%destructor directive is the
only means to avoid leaks. See section Freeing Discarded Symbols.