Ibm midrange 如何扫描RPGLE程序的源代码?
我想从RPGLE程序扫描源代码,但有一个问题。我在下面解释这个问题。 资料来源是:Ibm midrange 如何扫描RPGLE程序的源代码?,ibm-midrange,rpgle,Ibm Midrange,Rpgle,我想从RPGLE程序扫描源代码,但有一个问题。我在下面解释这个问题。 资料来源是: fTcsprefix if e disk rename(tcsprefix:testpr) f prefix (@) 我想扫描前缀关键字,如果它存在于源代码中。但扫描时会在记录格式名称中找到它。我怎样才能避免这种情况 我正在使用: **C 'PREFIX' SCAN SRCDT
fTcsprefix if e disk rename(tcsprefix:testpr)
f prefix (@)
我想扫描前缀关键字,如果它存在于源代码中。但扫描时会在记录格式名称中找到它。我怎样才能避免这种情况
我正在使用:
**C 'PREFIX' SCAN SRCDTA S1**
尝试扫描“前缀”,即使用前导空格。除非您可以保证前缀关键字后面始终有空格,否则您也不能依赖搜索字符串中的尾随空格。(你可以试试。)
对于更广泛的测试: 如果编码标准没有保持清晰的语法,则需要扩展逻辑。此语句查找
前缀
的位置:
C 'PREFIX' SCAN SRCDTA S1
它将位置存储在S1
中。然后可以使用S1
测试前面的位置是否包含空白或“')。如果发现任何其他有效字符,则可以扩展逻辑以测试添加的有效字符。另外,您知道前缀
有六个字符长,因此您可以在位置S1+6
处测试字符,查看它是空白字符还是“(”或其他有效字符
当您的程序找到前缀
并且它还发现前面和后面的字符都是可接受的时,它应该知道它找到了匹配的字符
当SCAN
找到匹配项时,您可能应该将源代码行传递给一个子过程,该子过程测试前面和后面的字符,并返回一个指示符值。指示符将告诉您的程序它是否匹配良好
您也可以考虑不使用<代码> Stase。使用<代码> %SCAN()/代码> BIF,并使用自由形式的编码风格。< /P> < P>您可以使用ILE RPG.< /P>中的ILE C运行时ReGEX过程。
请注意,IBM i上的RE库遵循POSIX标准。
但是如果前缀如下FTCSPREFIX如果电子磁盘重命名(TCSPREFIX:TESTPR)前缀(@)。它会被准确扫描吗?