3

我正在研究基于 Rexx 构建的代码解析器。它是一个包含大约 5000 行或更多代码的单文件脚本。我以前从未在 Rexx 上工作过。除此之外,可读性问题让我的生活更加艰难。所以,

是否有任何工具可以调试和理解 Rexx 代码?

4

3 回答 3

8

使用跟踪语句?最简单的追踪模式是“A”。这会导致每条指令在执行之前显示出来。您的指令以行号和前面的三个字符-显示,以便您可以将其识别为脚本中的一行。

于 2012-05-29T10:16:08.537 回答
2

Wikipedia 上有一篇关于 Rexx 的很好的文章,它应该可以帮助您理解 Rexx 语法和程序结构。几乎所有 Rexx 书籍都适用于您的环境,因为 Rexx 是非常跨系统的(类似于较年轻的 Perl 和 Python 语言)。网上书不多,因为几乎所有关于 Rexx 的文章都是在网络出现之前写的,但是Regina 实现的参考手册是,而且是一本特别好的参考书。

于 2012-05-30T09:57:55.970 回答
0

这个问题的日期很旧,但我会分享我发现对下一个提出这个问题的人有帮助的内容。已经提到的是 TRACE 选项。我发现这在一小部分代码中可能会让人不知所措,更不用说 5,000 行或更多行了。
以下是我发现有用的一些选项:

  1. 仅在某些情况下使用“if”来打开跟踪。
    if counter < 25 then trace "A"
    请务必使用以下命令关闭跟踪:
    else trace "OFF"
  2. 使用say后跟pull. 所说的内容将保留在屏幕上,直到您按 Enter 键。
  3. 添加一个子例程:
    AskIt:
    parse pull comment
    say comment
    say 'enter "X" to exit program'
    pull continue
    if Continue \= "X" then return
    exit
    这被调用call AskIt "In routine that loops, counter=" counter
    并会显示:
    In routine that loops counter='##
    enter "X" to exit program
    测试人员选择返回代码,方法是用 X 敲击进入或退出程序来编辑源代码。在例程标签后面的行中
    临时插入将允许您不间断地运行代码,而无需删除所有调用。 我为 z/OS 编写了一个编辑宏,它在每个例程标签之后插入一个。它插入包含易于识别的短语的代码以简化清理。这样做的受众会很少,所以我不会在此处包含代码。 希望这可以帮助某人。return

    say *routine name*/* comment */


于 2018-02-01T16:14:08.523 回答