On 21 Feb 2006, at 09:41, Akim Demaille wrote:
One can disable the dynamic stack, and use it with non-POD's,
which I suspect some do.
What evidence do you have to sustain this claim? Based on the
message I've seen, I believe the opposite. People, like me
years ago, know that you can have C code manipulate C++ structures
properly as long as they are PODs. Trying to use non PODs in
yacc.c is not supported, that's the role of lalr1.cc. I'll
write a piece of documentation about this.
The question of using non-POD's in the C-parser is not relevant, as
it will not be supported. I think though this C++ issue started off
like that, before M4 and C++ skeletons.
This suggests:
Compiling the C-parser using a C++ compiler
An effort is made to make the C-parser compilable using a C++
standard conforming compiler, as long as the semantic and location
types (if used) are POD's. This support may be dropped in future
Bison versions.
Seems like a reasonable start.
One could say more, but I deliberately deleted it, in part in order
to give the developers maximum freedom, and in part, because C++
users should know what to do. For example, exceptions will typically
leak parser stack memory (except when the initial static stack array
is used), but this is expected. A section on the C++ parser will give
hints of using the C++ parser for proper C++ support, so one does not
need direct users to that here.
Hans Aberg