Mr. Perryman's notion that that the number of lines of code it replaces/generates is an appropriate criterion for deciding whether to use a macro is not one that I find congenial.
Padding operations of one sort or another are ubiquitous, and the merit of using a parametric macro to do them is that, once developed and tested, you can turn your back on it without being stabbed in that back Such a macro can also be equipped with diagnostic and error-mnote machinery that is never in my experience provided in line. At a more fundamental level the whole notion that macros only generate code is a dubious and, I think, deleterious one. Historically, information was easy to import into them but very difficult to export from them. They perforce embodied their work in generated code. This situation changed in a fundamental way when the HLASM made created global set symbols and set-symbol arrays available. My PADDER macro, for example, pads instances of such symbols, leaving their use elsewhere to its invokers. The macros I use most heavily do not generate code at all. There is, however, room in the world for more than one view of how the HLASM should be used. Mr. Perryman and I disagree, sharply, about this issue and may others; but that is no bad thing. -- John Gilmore, Ashland, MA 01721 - USA