X-Git-Url: http://sraa.de/git/?a=blobdiff_plain;f=dol%2Fsrc%2Fdol%2Futil%2FCodePrintStream.java;fp=dol%2Fsrc%2Fdol%2Futil%2FCodePrintStream.java;h=2a3a80b2f17dd08ef200ee1c0b622c3712217f54;hb=8c411cf24ed0eb889191aaeafd8fa1e69081df42;hp=0000000000000000000000000000000000000000;hpb=dea7a4fb1ed110d3ce6e6d9255103d724bd66c0e;p=jump.git diff --git a/dol/src/dol/util/CodePrintStream.java b/dol/src/dol/util/CodePrintStream.java new file mode 100644 index 0000000..2a3a80b --- /dev/null +++ b/dol/src/dol/util/CodePrintStream.java @@ -0,0 +1,115 @@ +/* $Id: CodePrintStream.java 1 2010-02-24 13:03:05Z haidw $ */ +package dol.util; + +import java.io.OutputStream; +import java.io.PrintStream; + +/** + * Class to print code that is correctly indented. + */ +public class CodePrintStream extends PrintStream { + + /** + * + */ + public CodePrintStream(OutputStream out) { + super(out); + } + + /** + * + */ + public CodePrintStream(OutputStream out, boolean autoFlush) { + super(out, autoFlush); + } + + /** + * + */ + public void print(String x) { + super.print(x); + } + + /** + * + */ + public void println(String x) { + super.println(x); + } + + /** + * + */ + public void printPrefix(String x) { + super.print(_prefix + x); + } + + /** + * + */ + public void printPrefix() { + super.print(_prefix); + } + + /** + * + */ + public void printPrefixln(String x) { + super.println(_prefix + x); + } + + /** + * + */ + public void printPrefixln() { + super.println(); + } + + /** + * Print an opening curly brace and increase the indentation. + */ + public void printLeftBracket() { + printPrefix(); + println("{"); + prefixInc(); + } + + /** + * Decrease the indentation and print a closing curly brace. + */ + public void printRightBracket() { + prefixDec(); + printPrefixln("}"); + } + + /** + * Decrement the indentation. + */ + public void prefixDec() { + if( _prefix.length() >= _offset.length() ) { + _prefix = _prefix.substring(_offset.length()); + } + } + + /** + * Increment the indentation. + */ + public void prefixInc() { + _prefix += _offset; + } + + /** + * + */ + public static void main(String[] args) { + CodePrintStream ps = new CodePrintStream(System.out); + ps.println("aa"); + ps.print("bb"); + } + + private static String _offset = " "; + private String _prefix = ""; +} + + +