Class Printer

  • Direct Known Subclasses:
    CodegenPrinter

    public class Printer
    extends java.lang.Object
    Manages printing of indented source code. Line numbers start at 1 and increase by 1 every time nl() is called. Note that the proper use of this class requires calling nl() at the START of every line (thanks, Harold!), which make indentation much easier to manage. For example, an if statement can be printed as nl().p( "if (expr) {" ).in() ; nl().p( "stmt" ).out() ; nl().p( "} else {" ).in() ; nl().p( "stmt" ).out() ;
    • Field Detail

      • ps

        private java.io.PrintStream ps
      • increment

        private int increment
      • padChar

        private char padChar
      • indent

        private int indent
      • pad

        private char[] pad
      • bld

        private java.lang.StringBuilder bld
      • rightJustificationSize

        private int rightJustificationSize
    • Constructor Detail

      • Printer

        public Printer​(java.io.PrintStream ps)
      • Printer

        public Printer​(java.io.PrintStream ps,
                       int increment,
                       char padChar)
    • Method Detail

      • rj

        public Printer rj​(int size)
        Right-Justify the next call to p so that the total number of characters is at least size. Use leading spaces if necessary to ensure this.
      • rightJustify

        private Printer rightJustify​(java.lang.String str)
      • p

        public Printer p​(java.lang.String str)
      • p

        public Printer p​(java.lang.Object... args)
      • p

        public Printer p​(java.lang.Object obj)
      • indent

        public int indent()
      • fill

        private void fill()
      • isPrintable

        private boolean isPrintable​(char c)
      • printBuffer

        public Printer printBuffer​(byte[] buffer)