Lay out the portfolio's call trees

Proprietary

Record every job, procedure, program and subprogram as a tree from what runs it: a job's steps, the procedure or program each step runs, and the programs each program reaches by CALL, EXEC CICS LINK or XCTL, one row per position and depth first. A step names a load module, which is a position of its own with every program a link-edit deck says is bound into it beneath it. A target named by a data item resolved through the one literal it is given and flagged as dynamic, and a node already in its tree flagged as repeated. FindCallTree answers the same question and marks each step and transfer in the source; this one produces the table and changes nothing.

io.moderne.mainframe.prethink.AnalyzeCallTree
mod run . --recipe=io.moderne.mainframe.prethink.AnalyzeCallTree

Install it once from Recipe actions, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.