“…Although this is not a problem for tools that analyze a single preprocessed variant of the source code (post-cpp), such as a compiler or many static analysis tools, pre-cpp tools have difficulties handling arbitrary text-based annotations. These difficulties are widely acknowledged in prior research on code refactoring [12,13,14,36,38], transformation [1,4,22], slicing [37], or product-line aware analysis tools [3,20,23,31]. Despite significant research effort (e.g., [12,14,36,38]) and significant improvements, refactoring engines of IDEs such as Eclipse and Visual Studio still struggle with certain kinds of annotation in pre-cpp code.…”