保留关键字和特殊变量
在许多没有模糊性的情况下,可以使用关键字作为普通符号。 这里给出了精确的规则。 有三个特殊变量 :RC , RESULT 和 SIGL。
保留关键字
REXX的自由语法意味着某些符号在某些情况下是保留给语言处理器使用的。 在特定指令中,可以保留一些符号来分隔指令的各个部分。 这些符号称为关键字。
REXX关键字的示例包括DO指令中的WHILE和IF或WHEN子句后的THEN(在此处作为子句终止符)。
除了这些情况,只有作为条款中第一个标记且后面没有 = 或 : 的简单符号才会被检查是否是指令关键字。 您可以在其他地方自由使用这些符号,而不会被当作关键词。
但是,不建议用户运行主机命令或与REXX关键字(例如QUEUE)同名的命令。 这可能会给程序员带来麻烦,因为他们的REXX程序可能会在一段时间内用于他们无法控制的环境中,而他们希望程序绝对可靠。
在这种情况下,REXX程序至少可以用引号将命令行中的前几个单词括起来。 例如: 'SCRNINFO'
这种方式的优点是效率更高,而且,您可以使用“新值信号”条件来检查执行的完整性。
另一种策略是在此类命令字符串前添加两个相邻的引号,将空字符串连接到前面。 例如: ''SCRNINFO
第三种选择是将整个表达式(或第一个符号)括在括号内。 例如: (SCRNINFO)
程序员可以根据个人情况选择任何策略。 REXX语言没有强制要求。
特殊变量
- RC
- 设置为任何运行主机命令(或子命令)的返回代码。 在发生信号、语法错误和失败事件后,RC将设置为与事件对应的代码:语法错误编号(参见错误编号和消息或命令返回代码)。 在NOVALUE或HALT事件发生后,RC保持不变。注意 :从调试模式手动运行的主机命令不会更改RC的值。
- RESULT
- 如果RETURN指令指定了表达式,则由子程序中的RETURN指令设置。 如果RETURN指令上没有表达式,RESULT将被丢弃(变为未初始化)
- SIGL
- 包含上次向标签转移控制权时当前执行的子句的行号。 (信号、呼叫、内部函数调用或错误条件可能导致这种情况。)
这些变量都没有初始值。 您可以像修改其他变量一样修改这些变量,而PROCEDURE和DROP指令也会以常规方式影响这些变量。
REXX程序始终可以访问某些其他信息。 这包括程序名称和程序源(可使用 PARSE SOURCE 指令获取;参见 PARSE )。 解析源输出由字符串 CICS、调用类型、大写的exec名称、文件名称以及正在运行的PDS或DDNAME/成员组成。 接下来是程序名称和初始(默认)命令环境。
此外,解析版本(见解析) 可显示正在运行的语言处理器代码的版本和日期。 内置功能TRACE和ADDRESS分别返回当前的跟踪设置和环境名称。
您可以使用内置的DIGITS、FORM和FUZZ函数获取NUMERIC函数的当前设置。