From 3784457891d6a8b17429a16493cd65501e02e174 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 2 Jul 2006 13:51:20 -0400 Subject: [PATCH] checkpoint darcs-hash:20060702175120-5007d-2117cd89d50661da17a605b1387168f928e900a2.gz --- src/edu/berkeley/sbp/misc/Demo.java | 2 +- src/edu/berkeley/sbp/tib/TibDoc.java | 59 +++++++++++++++-------------- src/edu/berkeley/sbp/util/Reflection.java | 31 +++++++-------- src/edu/berkeley/sbp/util/StringUtil.java | 13 +++++++ tests/tibdoc.g | 8 ++-- 5 files changed, 64 insertions(+), 49 deletions(-) diff --git a/src/edu/berkeley/sbp/misc/Demo.java b/src/edu/berkeley/sbp/misc/Demo.java index c567edd..b3b9f4c 100644 --- a/src/edu/berkeley/sbp/misc/Demo.java +++ b/src/edu/berkeley/sbp/misc/Demo.java @@ -213,7 +213,7 @@ public class Demo { nonterminal n = getNonTerminal(); if (n != null && (n.value().equals(p.nonTerminal) || - (n.value().equals("") && p.nonTerminal.equals(getName())))) + (n.value().equals("") && getName().equals(p.nonTerminal)))) return buildSequence(p)!=null; return false; 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); diff --git a/src/edu/berkeley/sbp/util/Reflection.java b/src/edu/berkeley/sbp/util/Reflection.java index c404ab5..247652a 100644 --- a/src/edu/berkeley/sbp/util/Reflection.java +++ b/src/edu/berkeley/sbp/util/Reflection.java @@ -51,28 +51,28 @@ public final class Reflection { return (Object[])Array.newInstance(c, i); } - public static String indent(String s, int indent) { - if (s.indexOf('\n')==-1) return s; - StringBuffer ret = new StringBuffer(); - for(int i=0; i HR:: { "---" "-"* } - > { P:: t:text } + > P:: { text } onums = nums !(". "|") ") any = ~[]* -- 1.7.10.4