Clava is a C/C++ source-to-source tool for code instrumentation and transformations controlled by the LARA language.
Clava uses Clang, a a C language family frontend for LLVM. LARA  is a domain-specific, aspect-oriented language proposed during the REFLECT project and currently being maintained and further developed by University of Porto, Porto, Portugal, and Imperial College, London, UK.
For more information on LARA, please see the LARA wiki.
 João M.P. Cardoso, Tiago Carvalho, José G.F. Coutinho, Wayne Luk, Ricardo Nobre, Pedro Diniz, and Zlatko Petrov. 2012. LARA: an aspect-oriented programming language for embedded systems. In Proceedings of the 11th annual international conference on Aspect-oriented Software Development (AOSD '12). ACM, New York, NY, USA, 179-190. [ACM] [bibtex]
João Bispo (email@example.com)