top of page

Parser

Before an analysis of mainframe applications can occur, the associated source code has to be parsed.  The information gleaned from that parsing forms the basis of how the applications can then be analyzed. Inaccurate or incomplete parser information leads to inacurate or incomplete analysis

One of the challenges that many of the analysis programs for IBM z Series mainframes face is the extensive power and flexibility that exists in the IBM environment.  Programming languages each have their own different syntax.  JCL can be set up to use symbolic parameters that are only understood at runtime.  And data names can be obfuscated when looking at just source code so that the actual artifact names that are invoked at runtime are not easily discerned from just looking at the source code.

Without an understanding of how those, and many more, intricacies work, someone doing an analysis of an IBM z Series inventory can end up with only a partially accurate view of how things actually connect.

 

Parser Challenges

PROGRAM-ID.  GB1098.

,,,

01 WS-PGM1 PIC X(8)

        VALUE "AR2700".

01  WS-PGM2 PIC X(8)

         VALUE "LMZ1300".

01 WS-PGM3.

     05  WS-FIRST PIC X(2) 

           VALUE "RR'.

     05  WS-LAST PIC X(6)

           VALUE "1489".

...

       MOVE WS-PGM1 TO NEXT-PGM.

       CALL NEXT-PGM.

       MOVE WS-PGM2 TO NEXT-PGM.

       CALL NEXT-PGM

       MOVE WS-PGM3 TO NEXT-PGM.

       CALL NEXT-PGM

Incorrect_Calling.png
Correct_Calling.png
What many parsers show
What zAI-Parser shows
Challenges with program dynamic calls
 
Challenges with symbolic parameter substitutions in JCL
 
DSN_Challenges.jpg
Many parsers would show there is one file to convert- &REGION..MY.OP.QQRE.&OPNAME.EP
zAI Parser shows there are actually 8 files that need to be converted
bottom of page