/cpp2cxx

A set of C Preprocessor analysis and source code rejuvenation tools that perform source to source translation of C++ programs by replacing C Preprocessor macros with equivalent C++11 declarations.

Primary LanguageC++OtherNOASSERTION

cpp2cxx

Introduction:

A framework of C Preprocessor analysis and source code rejuvenation tools that perform the task of demacrofication (source to source translation of C++ programs by replacing C Preprocessor macros with equivalent C++11 declarations). It is a set of three tools (i.e., cpp2cxx-suggest, cpp2cxx-validate, and cpp2cxx-finalize).


User guide and installation details: INSTALL.pdf

https://github.com/hiraditya/cpp2cxx/blob/master/INSTALL.pdf


Builds with llvm/clang-3.8


Paper explaining the concepts of demacrofication:

A. Kumar, A. Sutton, and B. Stroustrup, "Rejuvenating C++ Programs through Demacrofication", in Software Maintenance, 2012. ICSM 2012. IEEE Conference on. IEEE, 2012, p. to appear


Video screencast demonstrating the working of the framework:

http://www.youtube.com/watch?v=J2OepRJ2fDg


We have demacrofied version of the following three libraries (available upon request):

  1. facebook-hiphop-php

  2. scintilla-3.0.4

  3. p7zip-9.20.1