用于查找cobol程序数组大小的Shell脚本

0 shell cobol

我们可以编写一个shell脚本来动态地查找cobol程序中数组的大小,就像数组的最大大小和填充的数组一样.

Sim*_*sch 5

问题1:我们可以通过某些东西(在本例中是一个shell脚本)可靠地找出在某些编程语言中使用的最大数组(在本例中为COBOL)吗?

答案:不 - 通常你有动态访问权限(由变量访问),如果不运行带有所有可能输入的程序,则知道使用了多少是不可靠的.

问题2:我们可以在一些COBOL程序中编写一个shell脚本来查找数组的大小吗?

答:是的,如果您不使用2002+ OCCURS DYNAMIC(DEPENDING ON将动态设置大小),并且不使用IBM扩展OCCURS UNBOUNDED(DEPENDING ON用于定义大小并且需要外部分配).这离开了array OCCURS [min [TO]] max.只是grep(或者findstr如果你被锁定在Windows上),OCCURS其背后的最大尺寸.因为它可能在一个新行上,你需要在检查之前删除换行符(例如tr '\n\ ' ',如果文件可能包含一个额外的DOS换行符tr '\r\ ' ').由于您可能有内联注释,因此您需要先替换所有注释.根据格式(我假设固定格式参考格式),您必须首先删除每行的非代码部分,并满足连续行.如果您可以选择使用编译器预处理源代码可能要容易得多(我已经使用免费的GnuCOBOL编译器进行预处理以进行类似的代码调查一次),甚至可以使用源列表的符号表,如果它提供此(GnuCOBOL确实拥有它).grep在这种情况下,它归结为非常简单.