Restored abstract syntax and creted pretty printer