X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Ftib%2FTibDoc.java;h=e753933963206a87a56608407a62ab02de45c287;hb=197c866f6a1c4adbcb4c299258af1ecc3178aa13;hp=a26219122996c19191bfd8f8998f4d3fb1afc707;hpb=8a9fc9f2357e54052374cf2ef003630a486a6c0a;p=sbp.git diff --git a/src/edu/berkeley/sbp/tib/TibDoc.java b/src/edu/berkeley/sbp/tib/TibDoc.java index a262191..e753933 100644 --- a/src/edu/berkeley/sbp/tib/TibDoc.java +++ b/src/edu/berkeley/sbp/tib/TibDoc.java @@ -7,10 +7,11 @@ package edu.berkeley.sbp.tib; //import org.ibex.io.*; import edu.berkeley.sbp.*; import edu.berkeley.sbp.misc.*; +import edu.berkeley.sbp.util.*; import java.util.*; import java.io.*; -public class TibDoc { +public class TibDoc extends ReflectiveWalker { public static void main(String[] s) throws Exception { System.out.println("parsing " + s[0]); @@ -22,19 +23,19 @@ public class TibDoc { System.out.println("\nparsing " + s[1]); Forest f = new CharToken.CharToStringParser(mg).parse(new Tib(new FileInputStream(s[1]))); System.out.println(f); - System.out.println(((Tree)walk(f.expand1())).toString(0, 0, 120)); + //System.out.println(((Tree)walk(f.expand1())).toString(0, 0, 120)); + System.out.println(((Tree)new TibDoc().walk(f.expand1())).toPrettyString()); } - public static Tree walk(Tree tree) { - String head = tree.head(); + //public void header() { throw new Error(); } + public Object walk(String head, Object[] children) { if ("stringify".equals(head)) { - String ret = ""; - for(Tree t : tree.child(0)) ret += t; - return new Tree(null, ret); + StringBuffer ret = new StringBuffer(); + for(Tree t : (Tree)children[0]) ret.append(t); + return new Tree(null, ret.toString()); } - Tree[] children = new Tree[tree.numChildren()]; - for(int i=0; i(null, head, children); + if (children.length==0) return new Tree(null, head, new Tree[0]); + return new Tree(null, head, (Tree[])Reflection.lub(children)); }