how to create a compiler