X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Ftib%2FTibDoc.java;h=538d80874ef04876b00e6b882c62c007b8c6dd5b;hb=92632cd2b60dc20e157128696edc81e3a07eaec6;hp=ed6a31e58b9e2a9809017a8e5efebddff3859c8d;hpb=83b94810a384ee3b579cc83c51f26dc7100e25b8;p=sbp.git diff --git a/src/edu/berkeley/sbp/tib/TibDoc.java b/src/edu/berkeley/sbp/tib/TibDoc.java index ed6a31e..538d808 100644 --- a/src/edu/berkeley/sbp/tib/TibDoc.java +++ b/src/edu/berkeley/sbp/tib/TibDoc.java @@ -22,9 +22,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(); System.out.println(f); - //System.out.println(((Tree)new StringifyWalker().walk(f.expand1())).toPrettyString()); - System.out.println(((Tree)new HTMLWalker().walk(f.expand1())).toPrettyString()); + System.out.println(); + System.out.println(((Tree)new StringifyWalker().walk(f.expand1())).toPrettyString()); + + String st = new HTMLWalker().walk(f.expand1()).toString(); + System.out.println(st); + FileOutputStream fos = new FileOutputStream("out.html"); + PrintWriter p = new PrintWriter(new OutputStreamWriter(fos)); + p.println(st); + p.flush(); + p.close(); } public static class StringifyWalker extends ReflectiveWalker { @@ -39,10 +49,59 @@ public class TibDoc { } } + public static String join(String[] sa, String sep) { + StringBuffer ret = new StringBuffer(); + boolean first = true; + for(String s : sa) { + if (!first) ret.append(sep); + first = false; + ret.append(s); + } + return ret.toString(); + } + public static class HTMLWalker extends ReflectiveWalker { //public void header() { throw new Error(); } - public String ul(Object o) { return "
"+o+"
"; } + public String smallcap(Object o) { return ""+o+""; } + public String blockquote(Object o) { return ""+o+""; } + public String superscript(Object o) { return ""+o+""; } + public String subscript(Object o) { return ""+o+""; } + public String bold(Object o) { return ""+o+""; } + public String strikethrough(Object o) { throw new Error();/*return ""+o+"";*/ } + public Object top(Object o) { return ""+o+""; } + public Object doc(Object header, Object body) { return body; } + public String text(Object[] body) { + StringBuffer ret = new StringBuffer(); + for(Object o : body) { ret.append(o); ret.append(" "); } + return ret.toString(); + } + public String body(String[] sections) { return join(sections, "\n\n"); } + public String domain(String[] parts) { return join(parts, "."); } + public String ip(String[] parts) { return join(parts, "."); } + public String emailaddr(String user, String host) { + return link(user+"@"+host, "mailto:"+user+"@"+host); + } + //public String url(String method) { + public String link(Object text, Object target) { + return ""+text+""; + } + public String section(Object header, Object[] body) { + StringBuffer ret = new StringBuffer(); + ret.append(header); + ret.append(" "); + for(Object o : body) ret.append(o); + return ret.toString(); + } + private String escapify(Object o) { + String s = o==null ? "" : o.toString(); StringBuffer sb = new StringBuffer(); for(int i=0; i