[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Macro defining macros...
From: |
Carlo Contavalli |
Subject: |
Re: Macro defining macros... |
Date: |
Mon, 7 Feb 2005 12:01:25 +0100 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Fri, Feb 04, 2005 at 02:03:43PM +0000, Gary V. Vaughan wrote:
> macro1
> => define(`macro2', `macro1 -- -- ')
> =>
> macro2(foo, bar)
> => macro1 -- --
> => define(`macro2', `macro1 -- -- ') -- --
> => -- --
>
> You can defer the expansion by obfuscating the parameters:
>
> define(`macro1', `define(`macro2', `$'`0 -- $'`1 -- $'`2')')
> macro1
> => define(`macro2', `$0 -- $1 -- $2')
> =>
> macro2(foo, bar)
> => macro2 -- foo -- bar
> => macro2 -- -- -- foo -- bar
> => macro2 -- -- -- -- -- foo -- bar
> => ...
>
> You can fix the infinite loop with a pushdef, or changequote.
ok thx :) by now, I figured it out by myself. Well, at least
I now know it is the right way to go :) I thought it was some
kind of hack.
Cheers,
Carlo
- --
GPG Fingerprint: 2383 7B14 4D08 53A4 2C1A CA29 9E98 5431 1A68 6975
-------------
If computers take over (which seems to be their natural tendency), it will
serve us right.
-- Alistair Cooke
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iQIVAwUBQgdKhdXv/DFQ7PuYAQLw/hAA0FumrVGNmAYrrI+PtTUHNCZNaYdBwLle
gnfoagDtpXxDclPKg2eqLMgH89bCHzdv5nKmbetjSFzNCc6V/3Xk0gRVrE/8LAH4
trJRgl0aBWzaAyt2Uju5tdL2PUiDGCzY69BUY45Qc5W5HYEqKsQIfpS/nBmXLYk9
bcSt76ruN+rqLr9wVDCZopVCEv+nDg2ToYAIzj7ltpIzWyg1vSIPc2Fg9rEzTXc3
+4EFoQ8lSp2pYNShqvuNc/vS1sWYkCacO2lKe0Yj+sPTdlURDlOiBN0ZtwfUo246
6KA3qZFIMDmgBVlpKAC1ry+z7njungqybW4WbfCcZHezD14BTUxKlmQidCz/qN6N
3WfwB8kqznCNII20aSZceNhoCRx3AMgapXORs4jOFuiBcUnMvNlwJPTo79ZybqlM
LIbNGIjZi9KKLmKEj05JzQeJ5n7CmYCW5hqIPGKpDcw+i0YNPFKyrdZ4TQ1gIcwG
zgIbOoWMYBoAz09egSb0w90NFaK8Vvdq04Orric8dEQsbxt+T0eKshe7d93Y333p
Js1stJ3pW7DQn3nrEpa3ANY6ALivBVGO8edlrwO363oEIWWsCnByuCmGNi3GcytN
wOKBGrXna/FAd6B0J2MJqfU0hzkS9mmJrnr8WKsk5VI5vPez+tEU7R9vdV1RlNqB
PMeZD1Ilgz0=
=TaCm
-----END PGP SIGNATURE-----