Re: Parameter entity references

lee@sq.com wrote:

> All of these uses [of parameter entities] can be achieved with a
> preprocessor such as M4 if
> you like, but then people can't easily exchange DTDs unless they are
> all using M4.

And if they are all using the exact same version of M4.
Not all versions work the same way, as I have recently
discovered (much to my dismay).

> A preprocessor such as M4 is a much, much cleaner way of handling all of
> these things, I think, and does not in any way break SGML compliance as
> long as the preprocessed document is an SGML document.

Perhaps a preprocessor *like* M4 would be cleaner,
but certainly not M4 itself.

Whenever I use M4, I include code at the beginning of each source
file to undefine or redefine many of M4's builtin macros.  (Run
this paragraph through M4 to see why.)

M4's biggest problem is that there is no lexical distinction
between macro invocations (markup) and plain text (data).
This leads to unpredictable results.  Its second biggest
problem is that the macro expansion process is too eager.
``Quoting hell'' in Tcl is nothing compared to m4.


--Joe English

  jenglish@crl.com

Received on Friday, 30 May 1997 14:20:18 UTC