The formal syntax of the source part can be reduced to the following combinations:
<string literal>
<string literal> FOR <arithmetic expression>
FOR <arithmetic expression> WORDS
<arithmetic expression>
<arithmetic expression> FOR <arithmetic expression>
FOR <arithmetic expression> WORDS
FOR <arithmetic expression> DIGITS
FOR * DIGITS
FOR <arithmetic expression> SDIGITS
FOR * SDIGITS
FOR <count part> NUMERIC
FOR * NUMERIC
<source> FOR <arithmetic expression>
FOR <arithmetic expression> WORDS
FOR <arithmetic expression> WITH <translate table>
<source> WITH <picture identifier>
<source> WHILE <relational operator> <arithmetic expression>
UNTIL <relational operator> <arithmetic expression>
WHILE IN <truth set table>
UNTIL IN <truth set table>
<source> FOR <count part> WHILE <relational operator>
<arithmetic expression>
<source> FOR <count part> UNTIL <relational operator>
<arithmetic expression>
<source> FOR <count part> WHILE IN <truth set table>
FOR <count part> UNTIL IN <truth set table>
<pointer-valued attribute>
<string expression>Each of these combinations is discussed in turn in the sections that follow. In all examples, P and Q are 8-bit pointers and the default character type is EBCDIC.

