>>>>> "Paul" == Paul Eggert <[EMAIL PROTECTED]> writes:
>> From: Akim Demaille <[EMAIL PROTECTED]> Date: 05 Feb 2002 11:46:29 >> +0100 >> Bruce> Ah, the light dimly dawns. We need M4 to support Bruce> pushquote/popquote. >> changecom, changequote, changeword and changesyntax are only >> command line options which are moved into the M4 language.... >> Using these guys during the execution is wrong. Paul> Aren't you two in violent agreement? I think Bruce now Paul> understands why changequote doesn't work, and he is thinking of Paul> a new GNU M4 feature that should do what he wants. This feature Paul> cannot be implemented in terms of changequote; it has to be a Paul> primitive. Paul> Obviously users can't employ the proposed GNU M4 primitive in Paul> Autoconf now, since it doesn't exist yet, but I don't see why it Paul> would have to be avoided if it did its job well. I must be missing something here. I fail to see how pushquote/popquote (which I agree would be great for M4 diehards but definitely not for Autoconf users/maintainers) would make changing quotes a better thing. The point is, if you change the syntax you endanger all the macros between the push/popquote pair: you execute them with a syntax which is different from the one is was written in. Lemme use a very very rough image. Of course it is exaggerated, but I think it can help me make my point. Imagine you have an AlCol interpreter, which provides you with means to support the C syntax, or the Algol syntax. It's great: you can write in either language, but definitely it is not helpful when trying to mix the languages. If you started with C, then you cannot suddenly switch to Algol, because all your assignments will be =, comparisons will be == etc. Introducing pushlanguage/poplanguage wouldn't help here, the problem is simply mixing syntaxes, not recovering the previous one. But of course, if you can *prove* when you pushlanguage that you never invoke the other language before the poplanguage, it is sane. But then it means: you use no other Autoconf macro, and you don't use users' arguments (given they, too, belong to the [ ] world).
