Ibm midrange 如何扫描RPGLE程序的源代码?

Ibm midrange 如何扫描RPGLE程序的源代码?,ibm-midrange,rpgle,Ibm Midrange,Rpgle,我想从RPGLE程序扫描源代码,但有一个问题。我在下面解释这个问题。 资料来源是: fTcsprefix if e disk rename(tcsprefix:testpr) f prefix (@) 我想扫描前缀关键字,如果它存在于源代码中。但扫描时会在记录格式名称中找到它。我怎样才能避免这种情况 我正在使用: **C 'PREFIX' SCAN SRCDT

我想从RPGLE程序扫描源代码,但有一个问题。我在下面解释这个问题。 资料来源是:

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)前缀(@)。它会被准确扫描吗?