Rational Developer for System z
PL/I for Windows, Version 8.0, Programming Guide

Procedures performed by the compiler user exit

The compiler user exit performs three specific procedures:

As illustrated in Figure 28, the compiler passes control to the initialization procedure, the message filter procedure, and the termination procedure. Each of these three procedures, in turn, passes control back to the compiler when the requested procedure is completed.

Figure 28. PL/I compiler user exit procedures
    *-------*
    |       |
    |       |       *---------------*
    |       |------------>|Initialization |
    |  C    |<------------|procedure      |
    |  O    |       *---------------*
    |  M    |       *---------------*
    |  P    |------------>|Message filter |
    |  I    |<------------|procedure      |
    |  L    |       *---------------*
    |  E    |       *---------------*
    |  R    |------------>|Termination    |
    |       |<------------|procedure      |
    |       |       *---------------*
    |       |
    *-------*

Each of the three procedures is passed two different control blocks:

Rational Developer for System z
PL/I for Windows, Version 8.0, Programming Guide