The Spoofax language workbench