add pretty printer for AST