RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation | Synapse