Stratego/XT 0.17. A Language and Toolset for Program Transformation