added pretty printer; sixteen tests all pass parsing and pretty printing