On Fri, 11 Oct 2013 10:42:25 -0500, Doug Henry wrote:
>
> >Isn't symbol substitution performed by the reader/converter/interpreter
>>(whatever), but well before execution tme?
> 
>From MVS JCL Reference http://publibz.boulder.ibm.com/epubs/pdf/iea3b600.pdf
>
>"in-stream symbolic substitution is performed by JES2 when an in-stream data 
>set is read. The type of symbol substitution used for the in-stream data is 
>controlled by the SYMBOLS keyword coded on the DD statement that defines the 
>in-stream data set. 
>
>SYMBOLS=JCLONLY
>SYMBOLS=EXECSYS       
>SYMBOLS=CNVTSYS
> 
Might one assume, then, that with SYMBOLS=CNVTSYS substitution
is performed on the Reader/Converter system, before job initiation,
and JCL errors could be reported.  If SYMBOLS=EXECSYS, it's not
clear whether conversion is performed before or during job step
execution.

>Also treatment of blanks  input data :
>
>"When symbols are substituted in in-stream data, the system attempts to 
>maintain the position of non-blank characters. This is achieved by adding or 
>removing blanks between non-blank character sequences. At least one blank is 
>always preserved to maintain syntactical validity of the data. The resulting 
>string never contracts and only expands if there are not enough blanks to 
>remove to maintain data positioning."
> 
FSVO "syntactical validity".  If sequences of multiple blanks are
meaningful to the target program, removing some might be invalid.

And "expands if ..." implies that in some cases the string could expand
beyond LRECL.

And "adding ... blanks between non-blank character sequences" might
mean that "foo,bar" might become "foo,     bar" since "foo," and "bar"
are both non-blank character sequences, allowing blanks to be added
between them.  Is that so?

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to