From afc33b68c5e6f480626c6c03429e0edb4119b553 Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 12 Jan 2006 02:38:59 -0500 Subject: [PATCH] checkpoint darcs-hash:20060112073859-5007d-f841bab3579b9265f6bd960aafbd89845c1682a7.gz --- src/edu/berkeley/sbp/tib/TibDoc.java | 39 ++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/src/edu/berkeley/sbp/tib/TibDoc.java b/src/edu/berkeley/sbp/tib/TibDoc.java index e753933..1a2fe23 100644 --- a/src/edu/berkeley/sbp/tib/TibDoc.java +++ b/src/edu/berkeley/sbp/tib/TibDoc.java @@ -11,7 +11,7 @@ import edu.berkeley.sbp.util.*; import java.util.*; import java.io.*; -public class TibDoc extends ReflectiveWalker { +public class TibDoc { public static void main(String[] s) throws Exception { System.out.println("parsing " + s[0]); @@ -23,21 +23,38 @@ public class TibDoc extends ReflectiveWalker { 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)new TibDoc().walk(f.expand1())).toPrettyString()); + //System.out.println(((Tree)new StringifyWalker().walk(f.expand1())).toPrettyString()); + System.out.println(((Tree)new HTMLWalker().walk(f.expand1())).toPrettyString()); } - //public void header() { throw new Error(); } - public Object walk(String head, Object[] children) { - if ("stringify".equals(head)) { - StringBuffer ret = new StringBuffer(); - for(Tree t : (Tree)children[0]) ret.append(t); - return new Tree(null, ret.toString()); + public static class StringifyWalker extends ReflectiveWalker { + public Object walk(String head, Object[] children) { + if ("stringify".equals(head)) { + StringBuffer ret = new StringBuffer(); + for(Tree t : (Tree)children[0]) ret.append(t); + return new Tree(null, ret.toString()); + } + if (children.length==0) return new Tree(null, head, new Tree[0]); + return new Tree(null, head, (Tree[])Reflection.lub(children)); } - if (children.length==0) return new Tree(null, head, new Tree[0]); - return new Tree(null, head, (Tree[])Reflection.lub(children)); } + public static class HTMLWalker extends ReflectiveWalker { + public void stringify() { /*mode = HEADER;*/throw new Error(); } + public Object walk(Tree t) { + String head = t.head(); + if ("stringify".equals(head)) { + StringBuffer ret = new StringBuffer(); + for(Tree child : t.child(0)) ret.append(child); + return new Tree(null, ret.toString()); + } + return super.walk(t); + } + public Object walk(String head, Object[] children) { + if (children.length==0) return new Tree(null, head, new Tree[0]); + return new Tree(null, head, (Tree[])Reflection.lub(children)); + } + } /* public static enum Style { H, UL, TT, SO, IT, Q, B, PRE, LIST, EMDASH; } -- 1.7.10.4