Singleton in charge of handling Eiffel code pretty printing (this is used to implement the well
knowned "pretty" command).
This singleton is shared via the GLOBALS.pretty_printer once function.
The pretty_printer singleton takes care of Eiffel source code output in a given file. The indent
level, the current column number as well as already skipped lines is automatically memorized.
The pretty_printer singleton is also in charge of replacing sequence of blank characters with
tabulation in the output. In order to make this object easy to use, the output is automatically
buffered so that indentation level can be change without any trouble.
As an example, this is 0 before the "class" keyword or 0 before
the "feature" keyword, this is 1 before a feature name declaration and 2 for the "do" keyword.
Add an empty line in the output only if it is necessary (i.e. if there is no empty line
already skipped).%
Hence, calling the skip_one_line feature is not equivalent to call
put_character using '%N' as an argument. In other words, two immediately successive calls
to this skip_one_line actually skip only one line!
(See also skip_two_lines.)