An embedded domain specific language generator