Apart from the extra trouble of running the preprocessor before compilation, preprocessors are generally a nuisance, in that they make the code that is developed and the code that is debugged different (both compile and run time debugging). This tends to complicate the debugging process. To this end, RATTY attempts to make the minimum changes necessary to code to get it to compile. Comments and indentation are retained in the output, so that the output should be nearly as readable as the input. Additionally when conditional compilation directives are avoided, it will be found that much code does not need to be preprocessed on a number of compilers.