Make the ASTPrinter work
Rename ASTPrinter as TreePrinter

TreePrinter should be a more general class, which can be used to print
tree structures
Add support to more operators
Lower the precedency of NOT