X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Futil%2FPrintableTree.java;h=73b7f0281dfbf726f35d6ccc2d8b6e65bdb134bb;hb=3473141880127c6aa52d094d51739e5eb67f1703;hp=c805caba69136d0140d4521b284688686d0c67c9;hpb=7fbee73b4dd985cb5b217ed297710c00fd9d7004;p=sbp.git diff --git a/src/edu/berkeley/sbp/util/PrintableTree.java b/src/edu/berkeley/sbp/util/PrintableTree.java index c805cab..73b7f02 100644 --- a/src/edu/berkeley/sbp/util/PrintableTree.java +++ b/src/edu/berkeley/sbp/util/PrintableTree.java @@ -5,72 +5,37 @@ import java.io.*; import java.util.*; import java.lang.reflect.*; -public abstract class PrintableTree implements Iterable, ToJava { +public abstract class PrintableTree implements Iterable, ToJava /*, ToHTML*/ { protected abstract String headToString(); protected abstract String headToJava(); + protected abstract int numChildren(); - private boolean empty() { - for(T t : this) return false; - return true; - } - - private static final int MAXDEPTH=3; - public int depth() { - int depth = headToString()==null ? 0 : 1; - int ret = depth; - for(T t : this) ret = Math.max(ret, depth+t.depth()); - return ret; - } - public String toString(int indent0, int cur, int limit) { - int indent = indent0; - String s = toString(); - if (depth()indent) { - ret.append('\n'); for(int i=0; i 0) ret.append("\n "); + String s = t.basic() ? t.toString() : t.toPrettyString(nl+" "); + if (!first) { + if (!t.basic()) ret.append(nl); + if (s.length()+len>MAXCHARS) { ret.append(nl); len = 0; } + else { ret.append(" "); len++; } } + first = false; ret.append(s); - if (s.indexOf('\n')!=-1) - cur = s.length()-s.lastIndexOf('\n'); - else - cur += s.length(); - if (cur>indent) { - ret.append(' '); - cur += s.length()+1; - } - } - if (head==null) { - ret.append("}"); - } else if (cur>indent) { - /* - indent = indent0; - ret.append('\n'); for(int i=0; i