Akim Demaille wrote: > >> Your idea of letting Bison to keep track of the type does not work > >> in mid-actions as it is needed to decide which copy constructor to > >> use, unlike C then. > > > > And likewise for %destructor and %printer. > > This is something I have not studied yet, I'll have to look at it. > I'm really disappointed that we have to double-code the symbol types.
I think it's basically unavoidable. There really is both the static type (which Bison uses to decide which reductions to apply) and the dynamic type (which can be overridden with $<type>). So maybe $<type> is not the best feature to begin with, but I guess that's a moot point now. I don't currently use it at all (then again, my parsers are not so time-critical), but apparently others do and it's probably much too late to drop that feature (even if only in C++). > I did not run benchmarks, but I expect more space and more time with > std::variants. Not to mention the C++-98/03 compatibility :) That compatibility will be hard to keep if we want move semantics ... Regards, Frank
