Introduction to compiler design. (2017)