A Tool for pattern-based construction of DSLs