>  Unfortunately temporary hacks meant for imminent death tend to live quite long; sometimes they even become permanent. Based on that argument one should be extremely vary to introduce hacky code which one does not plan to live.

I agree with this statement, _but_: in this case I consider a runtime parameter to be _more_ of a hack than these #ifs . I adding additional annoying compile time warnings should be considered, though.

> For a small change it often does not take significantly longer to do it nicely than do it hacky - just do it nicely; and of course then you'll meet a pedant like me who is willing to waste lots of time writing about it.

as I said, the only hack I can see in this part of the code is that the old code is not removed from the outset, but that was not my idea ;)

> If possible I would like the statements to be assembled in only two blocks, one for new parser and one for old

I can also collate everything into a single #if ... #else ... #endif block, but that would make it harder for others to use this functionality. (because old vs new parser would become an all-or-nothing decision...)

> and I do insist the PR is green before I push the button!

oops. that was unintentional (and I actually don't am a bit puzzled why it is not green ATM). I'll fix it as soon as I'm back on linux...