Mixed String Validation
The validation of mixed strings depends on the instruction, operator, or function. If you use a mixed string with an instruction, operator, or function that does not allow mixed strings, this causes a syntax error.
- DBCS strings must be an even number of bytes in length, unless you have SO and SI.
- SO and SI must be paired in a string.
- Nesting of SO or SI is not permitted.
'ab<cd' -> INCORRECT - not paired
'<.A<.B>.C> -> INCORRECT - nested
'<.A.BC>' -> INCORRECT - odd byte lengthThe end of a comment delimiter is not found within DBCS character
sequences. For example, when the program contains /* <
*/, then the */ is not recognized as ending
the comment because the scanning is looking for the > (SI)
to go with the < (SO) and not looking for */.
When a variable is created, modified, or referred to in a REXX program under OPTIONS EXMODE, it is validated whether it contains a correct mixed string or not. When a referred variable contains a mixed string that is not valid, it depends on the instruction, function, or operator whether it causes a syntax error.
The ARG, PARSE, PULL, PUSH, QUEUE, SAY, TRACE, and UPPER instructions all require valid mixed strings with OPTIONS EXMODE in effect.