/* REXX PLINIT Initialize PL/I declare */ address ISREDIT "MACRO (opts)" upper opts parse var opts "TRACE" tv . parse value tv "N" with tv . rc = Trace( "O" ); rc = Trace( tv ) "(text) = LINE .zcsr" /* acquire text */ uptext = Translate( text ) uptext = Translate( uptext , ' ' , "(;," ) if , WordPos( "BASED" ,uptext ) + , WordPos( "BUILTIN" ,uptext ) + , WordPos( "CONTROLLED" ,uptext ) + , WordPos( "CTL" ,uptext ) + , WordPos( "DEF" ,uptext ) + , WordPos( "DEFINED" ,uptext ) + , WordPos( "ENTRY" ,uptext ) + , WordPos( "INIT" ,uptext ) + , WordPos( "POINTER" ,uptext ) + , WordPos( "PTR" ,uptext ) > 0 then exit quotept = Pos( "'",text ) if quotept > 0 then do /* picture string */ farpt = Pos( "'",text,quotept+1 ) if farpt > quotept+1 then do slug = Substr( text,quotept,farpt-quotept+1 ) slug = Translate( slug,'bb'x,' ' ) text = Substr( text,1,quotept-1 )slug||Substr( text,farpt+1 ) end /* fill quote */ end /* quotept */ if Pos( 'bb'x,text ) > 1 then, text = Translate( text,' ','bb'x ) /* restore */ scpt = 0 if Pos( ",",text ) > 0 then, scpt = LastPos( ",",text ) if Pos( ";",text ) > 0 then, scpt = Pos( ";",text ) if scpt > 0 then, text = Substr( text,1,scpt-1 )" init( '' )"Substr( text,scpt,1 ) ||, Space( Substr( text,scpt+1 ),1 ) if Length( text ) > 72 then do extra = Length( text ) - 72 extrapt = Pos( Copies( ' ',extra ),text,3 ) text = Substr( text,1,extrapt-1 )Substr( text,extrapt+extra ) end /* > 72 */ "LINE .zcsr = (text)" if rc = 4 then do /* truncated */ text = " "Space( text,1 ) "LINE .zcsr = (text)" end exit /*@ PLINIT */