z/OS TSO/E REXX Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Parsing multiple strings

z/OS TSO/E REXX Reference
SA32-0972-00

Only ARG and PARSE ARG can have more than one source string. To parse multiple strings, you can specify multiple comma-separated templates. Here is an example:
parse arg template1, template2, template3

This instruction consists of the keywords PARSE ARG and three comma-separated templates. (For an ARG instruction, the source strings to parse come from arguments you specify when you call a program or CALL a subroutine or function.) Each comma is an instruction to the parser to move on to the next string.

Example:
/* Parsing multiple strings in a subroutine                      */
num='3'
musketeers="Porthos Athos Aramis D'Artagnon"
CALL Sub num,musketeers  /* Passes num and musketeers to sub     */
SAY total; say fourth /* Displays: "4" and " D'Artagnon"         */
EXIT

Sub:
parse arg subtotal, . . . fourth
total=subtotal+1
RETURN
Note that when a REXX program is started as a command, only one argument string is recognized. You can pass multiple argument strings for parsing:
  • When one REXX program calls another REXX program with the CALL instruction or a function call.
  • When programs written in other languages start a REXX program.

If there are more templates than source strings, each variable in a leftover template receives a null string. If there are more source strings than templates, the language processor ignores leftover source strings. If a template is empty (two commas in a row) or contains no variable names, parsing proceeds to the next template and source string.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014