X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Ftib%2FTibDoc.java;h=26f817434d693d0f96c7da12505fcaa7d8f3585d;hp=a86fb2b21b258a3297abae91e23e7ef4e40f3153;hb=3784457891d6a8b17429a16493cd65501e02e174;hpb=87695da08b22551ad4a7695cd3144903364dd4bb diff --git a/src/edu/berkeley/sbp/tib/TibDoc.java b/src/edu/berkeley/sbp/tib/TibDoc.java index a86fb2b..26f8174 100644 --- a/src/edu/berkeley/sbp/tib/TibDoc.java +++ b/src/edu/berkeley/sbp/tib/TibDoc.java @@ -44,8 +44,8 @@ public class TibDoc { public Body body; public void toHTML(ToHTML.HTML sb) { sb.tag("html", body); } public static class Header extends HashMap { - public static class kv { public String key; public Text[] val; } - public void attrs(kv[] kvs) { for(int i=0; i"); - return ret.toString(); - } + // void KeyVal(String, String) { ... } imperatively } - public @nonterminal("Body") static class Body { + public @nonterminal static class Body extends Dump { public Section[] sections; // FIXME: it would be nice to be able to - // void kv(String, String) { ... } imperatively - public String toString() { - StringBuffer ret = new StringBuffer(); - ret.append("<"); - for(Object kv : sections) ret .append(kv); - ret.append(">"); - return ret.toString(); - } + // void KeyVal(String, String) { ... } imperatively } - public @nonterminal("Section") static class Section { - public Object @arg header; - public Object[] @arg paragraphs; + public @nonterminal("Section") static class Section extends Dump { + public String header; + public Paragraph[] paragraphs; } - public @nonterminal("kv") static class KV { + public @nonterminal static class KeyVal extends Dump { public @arg("key") String key; public @arg("val") Object val; - public String toString() { return "KV["+key+"="+val+"]"; } + } + + public static class Paragraph extends Dump { } + public @tag("P") static class P extends Paragraph { + Object text; + } + public @tag("HR") static class HR extends Paragraph { } + public @tag("Blockquote") static class Blockquote extends Paragraph { + Object text; } } @@ -380,7 +377,11 @@ toContex ll = prefix ++ (concatMap tl ll) ++ suffix TibDoc.TD.Header.class, TibDoc.TD.Section.class, TibDoc.TD.Body.class, - TibDoc.TD.KV.class + TibDoc.TD.Paragraph.class, + TibDoc.TD.P.class, + TibDoc.TD.HR.class, + TibDoc.TD.Blockquote.class, + TibDoc.TD.KeyVal.class }); Tree res = new CharParser(MetaGrammar.make()).parse(new FileInputStream(s[0])).expand1(); MetaGrammar.Meta.MetaGrammarFile mgf = m.new MetaGrammarFile(res);