X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2Ftib%2FTibDoc.java;h=d3081866b9670e744fa3b94c8775954f1e9215ad;hb=979e9c595d25573302530e514b9d7fb847d5b043;hp=fbe833e512ad0c9b3f7d1bac69898c445ceb6cf0;hpb=bb4357ee026741cacecdfbfdcdd2d44699306536;p=sbp.git diff --git a/src/edu/berkeley/sbp/tib/TibDoc.java b/src/edu/berkeley/sbp/tib/TibDoc.java index fbe833e..d308186 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 Object[] 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(); - } + public @nonterminal static class Body extends Dump { + public Section[] sections; } - public @nonterminal("kv") static class KV { - public @arg("key") String key; - public @arg("val") Object val; - public String toString() { return "KV["+key+"="+val+"]"; } + public @nonterminal("Section") static class Section extends Dump { + public String header; + public Paragraph[] paragraphs; + } + + public @nonterminal static class KeyVal extends Dump { + public @arg String key; + public @arg Object 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; } } @@ -373,8 +373,13 @@ toContex ll = prefix ++ (concatMap tl ll) ++ suffix new Class[] { TibDoc.TD.Doc.class, 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);