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.
*-------*
| |
| | *---------------*
| |------------>|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: