Rexx - 基本语法

为了理解Rexx的基本语法,让我们首先看一个简单的Hello World程序。

示例

/* 主程序 */
say "Hello World" 

可见 hello world 程序是多么简单。 这是一个简单的脚本行,用于执行 Hello World 程序。

上述程序需要注意以下几点−

  • say 命令用于将值输出到控制台。

  • /* */ 用于 Rexx 中的注释。

上述程序的输出将是 −

Hello World

声明的一般形式

在 Rexx 中,让我们看看程序的一般形式。 看一下下面的例子。

/* 主程序 */
say add(5,6) 
exit 
add: 
parse arg a,b 
return a + b

上述程序的输出将是 −

11

让我们回顾一下我们从上面的程序中了解到的内容 −

  • Add 是一个定义为将 2 个数字相加的函数。

  • 在主程序中,5和6的值被用作add函数的参数。

  • exit 关键字用于退出主程序。 这是用来区分主程序和add函数的。

  • add 函数用":"符号区分。

  • parse 语句用于解析传入的参数。

  • 最后,return 语句用于返回数值的总和。

子例程和函数

在 Rexx 中,代码通常分为子例程和函数。 子例程和函数用于将代码区分为不同的逻辑单元。 子例程和函数之间的主要区别在于函数返回值,而子例程则不返回值。

下面是用于加法实现的子例程和函数之间的关键区别示例 −

函数实现

/* 主程序 */
say add(5,6) 
exit 
add: 
parse arg a,b 
return a + b

子程序实现

/* 主程序 */
add(5,6) 
exit 
add: 
parse arg a,b 
say a + b

两个程序的输出均为值 11。

执行命令

Rexx 可用作各种基于命令的系统的控制语言。 Rexx在这些系统中执行命令的方式如下。 当Rexx遇到既不是指令也不是赋值的程序行时,它会将该行视为要计算的字符串表达式,然后传递到环境。

示例如下 −

示例

/* 主程序 */
parse arg command 
command "file1" 
command "file2" 
command "file3" 
exit 

该程序中的三个相似行中的每一行都是一个字符串表达式,它将文件名(包含在字符串常量中)添加到命令名称(作为参数给出)。 生成的字符串将传递到环境以作为命令执行。 当命令完成时,变量"rc"被设置为命令的退出代码。

上述程序的输出如下 −

sh: file1: command not found
     3 *-* command "file1" 
       >>>   " file1"
       +++   "RC(127)"
sh: file2: command not found
     4 *-* command "file2" 
       >>>   " file2"
       +++   "RC(127)"
sh: file3: command not found
     5 *-* command "file3" 
       >>>   " file3"
       +++   "RC(127)"

Rexx 中的关键字

REXX 的自由语法意味着某些符号被保留供语言处理器在某些上下文中使用。

在特定的指令中,可以保留一些符号来分隔指令的各个部分。 这些符号称为关键字。REXX 关键字的示例有 DO 指令中的 WHILE 以及 IF 或 WHEN 子句 后面的 THEN(在本例中充当子句终止符)。

除了这些情况之外,仅检查子句中第一个标记且后面不跟"="或":"的简单符号,以确定它们是否是指令关键字。 您可以在子句中的其他位置自由使用这些符号,而无需将它们视为关键字。

Rexx 中的注释

注释用于记录您的代码。 单行注释通过在行中的任意位置使用 /* */ 来标识。

示例如下 −

/* 主程序 */
/* 调用add函数 */
add(5,6)

/* 退出主程序 */
exit add:

/* 解析传递给add函数的参数 */ parse arg a,b
/* 显示添加的数值 */
say a + b

注释也可以写在代码行之间,如以下程序所示 −

/* 主程序 */
/* 调用add函数 */
add(5,6) 

/* 退出主程序 */
exit 
add: 
parse    /* 解析传递给 add 函数的参数 */ 
arg a,b 

/* 显示添加的数值 */
say a + b

上述程序的输出将是 −

11

您还可以在注释中包含多行,如以下程序所示 −

/* 主程序
下面的程序用于数字相加
调用add函数*/
add(5,6) 
exit 
add: 
parse arg a,b 
say a + b

上述程序的输出将是 −

11