Bernd,

Now that I have a better understanding of the full dimensions your
problem I will give it some further thought, and it may be that I will
be abe to make further suggestions.

In passing let me note that the usages

<whatever> = null() ;
<whatever> = sysnull() ;

are necessary and appropriate only in the absence of a declaration of the form

declare [sys]null builtin ;

When such a declaration is not present they make it clear to the
compiler that a BIF reference is meant.  (Neither null nor sysnull is
a PL/I keyword.)   When a declaration for the appropriate BIF is
provided the paired parentheses without argument can and should be
dispensed with; one of

<pointer reference> = null ;
<pointer reference> = sysnull ;

is sufficient.

In my own PL/I programming I avoid the construction

<structure> =  ''  ;

I prefer to define/generate and [perhaps only partially] initialize a
static structure the value of which can be assigned to instances of a
structure at any time.    For, say,

declare 1 cb based,  /* chaining block */
  2 fcp pointer,  /* forward chaining */
  2 bcp pointer,  /* back chaining */
  2 obp pointer ;  /* -> object */

I would write something like

declare 1 cb_anfänglich static,
  2 fcp pointer initial(sysnull),
  2 bcp pointer initial(sysnull),
  2 obp pointer initial(sysnull) ;
. . .
cbp->cb = cb_anfänglich ;

Schemes of this sort can be very largely automated; but they are not
of course suitable for old code, where introducing them would require
too many changes.

John Gilmore, Ashland, MA 01721 - USA

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to