A Simple Edit-Time Metaobject Protocol
generative programming - methods , tools and applications .