Study and Analysis of C++ Extension Conception with Transformers

From LRDE

Abstract

The Transformers project aims at providing source to source transformations for C and C++ languages. This consists in parsing the input source, a C/C++ source code extended to accept new syntactic rules. The input code is then transformed into standard C/C++. This is similar to the process used by the C++ ancestor, “C with classes”which was an extension of C and which was transformed into C before being compiled. We will show how to write an extension of the C++ grammar using the Transformers project, and to transform the extended C++ input into standard C++. For this purpose, we will use extensions that have already been implemented (ContractC++class-namespaces) as examples. We will analyse to what extent the technologies like attribute grammars used in Transformers help us.