 The building of an abstract syntax tree and unparse rules allowed local optimizations to be performed by analyzing the parse tree.Moving of output productions to the unparse rules made a clear separation of grammar analysis and code production.This made the programming easier to read and understand.