Language Implementation patterns create your own domain-specific and general programming languages - Parr, Terence (Shroff Publishers & Distributors Pvt.Ltd., Mumbai, 2010)