我有一个独立运行的 Rexx 脚本,我希望使用另一个 Rexx 脚本来调用其中的特定函数。我知道我可以使用 call 调用整个外部 Rexx 文件和内部 Rexx 函数,但是我可以在外部脚本中调用单个函数吗?以下示例说明了我想要做的事情:

/* REXXA */
say 'hello'

run_test:
say 'test'

...
/* REXXB */
call 'REXXA' /* will say both 'hello' and 'test' */

如何修改 REXXB 以仅说“测试”?

编辑:进一步的研究表明我可能正在寻找 RxFuncAdd - 谁能确认它是否适用于大型机 Rexx 脚本?大多数涉及它的引用资料都是关于 DLL 库的...

编辑2:显然不是......有人有更好的想法吗?

编辑 3:我一定没有正确解释我的要求,对此感到抱歉 - 根据 NealB 回应下的评论,我本质上想要类似于在“数学”类中调用“罪”函数的东西。我写的代码是上面例子中的REXXB,我想尽量少改动REXXA。

最佳答案

直接没有办法在另一个程序中寻址内部标签。

我的第一个直觉 react 是,您必须稍微修改 REXXA 才能添加带有函数代码的包装函数,例如

/* REXX A */

arg a1 a2 a3 a4 a5 (etc.)
select
when a1 = 'SIN'
  call sin a2 a3 ....
when a1 = 'COS'
  call cos a2 a3 ....
end
exit rc

sin:
  return some equation involving a2 that I last saw about 33 years ago

cos:
  return some equation involving a2 that I last saw about 33 years ago

/* REXX B */
call 'REXXA' 'sin 85'

但是,TSO 下的 REXX 确实支持可以用多种语言编写的外部函数和子程序,包括 REXX。 TSO/E REXX 引用 External functions and subroutines, and function packages, z/OS V11 flavor 描述了如何做到这一点。

文档中有关于选择性编译 REXX 的注释。如果你没有它,你可以找到获得它许可的人,他可以编译它以与 ALTLIB 一起使用(不需要许可证)。

关于mainframe - 在外部 Rexx 脚本中调用特定函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8784197/

10-13 04:25