Two observations.

The name 'underscore'  for the character '_' is at best a misnomer.
It cannot be put under another character.  In standard IBM terminology
it is a break character.

Break characters, which may appear contiguously, as in ___counter are
also useful in the names of created set symbols, where they make
stepped-on global set-symbol names/identifiers less likely.

I use a lot of table-generation macros that are 'reentrant' in the
Pickwickian but important sense that they can be used to generate two
or more instances of some table type concurrently.

The device that makes these macros reentrant is that of using
unique-to-each-table, unwieldy identifiers for global set symbols.  A
table-element array of the form

|&eaid    setc  '&macname'.'___&rsect'.'___elements___'
|             gblc  &(&eaid)(1)          --table-element array

is at once easy to refer to in code, as just &(&eid), and very
unlikely to have its identifier duplicated inadvertently.  [It does
assume that two or more table RSECTs do not have the same external
name; but such errors are 1) caught and diagnosed and 2) yield
assembly errors anyway.]

John Gilmore, Ashland, MA 01721 - USA

Reply via email to