解析指令示例

显示了将源字符串解析为词的示例。

关于此任务

ARG
/* ARG with source string named in REXX program invocation       */
/*  Program name is PALETTE.  Specify 2 primary colors (yellow,  */
/*   red, blue) on call.   Assume call is: palette red blue      */
arg var1 var2                /* Assigns: var1='RED'; var2='BLUE' */
If var1<>'RED' & var1<>'YELLOW' & var1<>'BLUE' then signal err
If var2<>'RED' & var2<>'YELLOW' & var2<>'BLUE' then signal err
total=length(var1)+length(var2)
SELECT;
  When total=7 then new='purple'
  When total=9 then new='orange'
  When total=10 then new='green'
  Otherwise new=var1                       /* entered duplicates */
END
Say new; exit                              /* Displays: "purple" */

Err:
say 'Input error--color is not "red" or "blue" or "yellow"'; exit

ARG 在解析之前将字母字符转换为大写。 带有子例程的 CALL 中的自变量的 ARG 示例在 解析多个字符串中。

解析参数
工作方式与 ARG 相同,但 PARSE ARG 在解析前不会将字母字符转换为大写。
解析外部
Say "Enter Yes or No =====> "
parse upper external answer 2 .
If answer='Y'
  then say "You said 'Yes'!"
  else say "You said 'No'!"
解析数字
parse numeric digits fuzz form
say digits fuzz form           /* Displays: '9 0 SCIENTIFIC'     */
                               /* (if defaults are in effect)    */
解析拉取
PUSH '80 7'                /* Puts data on queue                 */
parse pull fourscore seven /* Assigns: fourscore='80'; seven='7' */
SAY fourscore+seven        /* Displays: "87"                     */
PARSE 源
parse source sysname .
Say sysname                          /* Displays:       "CICS"   */
PARSE 值
请参阅 用于解析为词的简单模板中的示例。
解析变量
请参阅整个解析信息中的示例,从 用于解析为词的简单模板开始。
解析版本
parse version . level .
say level                                    /* Displays: "3.48" */
PULL
除 PULL 在解析前将字母字符转换为大写外,其工作方式与 PARSE PULL 相同。