You may design any number pretty printers for the same language, but
we propose the following convention:
- The std pretty printer should be the pretty printer
``available to the public.'' It should be a modular pretty printer so
that it may be modified either internally without requiring users to
change their environments.
- The basic pretty printer should display an abstract
syntax tree that, when saved in a file as seen on the screen (minus
fonts and colors), may be reparsed directly. The basic
pretty printer must exactly reproduce a concrete syntax specification
(there may be several specifications). For example, the concrete syntax
definition may dictate that a token separates expressions in a list or
that it terminates each expression.