X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Ftib%2FTibDoc.java;h=c3b7871819a0699986ac1a9ac69a27eeb5012ac4;hb=0db242407cbae04f1a55086bf2bd31f5ae1bb7a8;hp=f5197294061ab634c689b13f32571ff7ccca5ced;hpb=96a2822a729e563a64173f22dc184bc972a200ef;p=sbp.git diff --git a/src/edu/berkeley/sbp/tib/TibDoc.java b/src/edu/berkeley/sbp/tib/TibDoc.java index f519729..c3b7871 100644 --- a/src/edu/berkeley/sbp/tib/TibDoc.java +++ b/src/edu/berkeley/sbp/tib/TibDoc.java @@ -10,18 +10,32 @@ import edu.berkeley.sbp.misc.*; 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]); - Tree res = new CharToken.CharToStringParser(MetaGrammar.make()).parse1(new CharToken.Stream(new FileInputStream(s[0]))); + Tree res = new CharToken.CharToStringParser(MetaGrammar.make()).parse(new CharToken.Stream(new FileInputStream(s[0]))).expand1(); MetaGrammar gram = (MetaGrammar)new Tib.Grammar().walk(res); //System.out.println(gram); Union mg = gram.done(); System.out.println("\nparsing " + s[1]); - res = new CharToken.CharToStringParser(mg).parse1(new Tib(new FileInputStream(s[1]))); - System.out.println(res); + 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)new TibDoc().walk(f.expand1())).toPrettyString()); + } + + public Tree walk(Tree tree) { + String head = tree.head(); + if ("stringify".equals(head)) { + StringBuffer ret = new StringBuffer(); + for(Tree t : tree.child(0)) ret.append(t); + return new Tree(null, ret.toString()); + } + Tree[] children = new Tree[tree.numChildren()]; + for(int i=0; i(null, head, children); }