package Ġedu . corn ell . cs . apl . vi ad uct . passes Ċ Ċ import Ġedu . corn ell . cs . apl . vi ad uct . syntax . intermediate . Program Node Ċ Ċ class ĠProgram Post processor Registry ( ĊĠĠĠ Ġprivate Ġval Ġpost processors : ĠList < Program Post processor > Ċ ) Ġ: ĠProgram Post processor Ġ{ ĊĊĠĠĠ Ġconstructor ( var arg Ġpost processors : ĠProgram Post processor ) Ġ: ĊĠĠĠĠĠĠĠ Ġthis ( listOf (* post processors )) ĊĊĠĠĠ Ġoverride Ġfun Ġpost process ( program : ĠProgram Node ): ĠProgram Node Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcurrent Program Ġ= Ġprogram ĊĠĠĠĠĠĠĠ Ġfor Ġ( post processor Ġin Ġpost processors ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Program Ġ= Ġpost processor . post process ( current Program ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcurrent Program ĊĠĠĠ Ġ} Ċ } Ċ