
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


What many parsers show
What zAI-Parser shows
Challenges with program dynamic calls
Challenges with symbolic parameter substitutions in JCL
