Abstract interface to the top-level preprocessing routine.
This callback allows modules such as the include handler to invoke recursive preprocessing of additional source units without creating circular module dependencies.
Implementations are expected to preprocess the contents of the input unit and emit the resulting output to the specified unit.