A method for handling preprocessing in source code transformation creates
a semantically correct view of a program being transformed. This
semantically correct view is called a transformed form and it is capable
of being parsed with a regular grammar. The original use of preprocessing
macros is determined, including their relationship to the transformed
form and the preprocessing is reconstructed in the modified source code.