From: adam Date: Thu, 12 Jan 2006 07:52:13 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~385 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=83b94810a384ee3b579cc83c51f26dc7100e25b8 checkpoint darcs-hash:20060112075213-5007d-4fe13521e44ae92485a0982991b2c8cba7118d7d.gz --- diff --git a/src/edu/berkeley/sbp/tib/TibDoc.java b/src/edu/berkeley/sbp/tib/TibDoc.java index 1a2fe23..ed6a31e 100644 --- a/src/edu/berkeley/sbp/tib/TibDoc.java +++ b/src/edu/berkeley/sbp/tib/TibDoc.java @@ -40,19 +40,39 @@ public class TibDoc { } public static class HTMLWalker extends ReflectiveWalker { - public void stringify() { /*mode = HEADER;*/throw new Error(); } + //public void header() { throw new Error(); } + public String ul(Object o) { return ""; } + private Tree lone(String s) { + StringBuffer sb = new StringBuffer(); + for(int i=0; i': sb.append(">"); break; + case '\'': sb.append("'"); break; + case '\"': sb.append("""); break; + default: sb.append(s.charAt(i)); break; + } + } + return new Tree(null, sb.toString(), new Tree[0]); + } 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 lone(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)); + Tree[] kids = new Tree[children.length]; + for(int i=0; i)children[i]; + } + return new Tree(null, head, kids); } } diff --git a/tests/tibdoc.g b/tests/tibdoc.g index e1f8a86..e77d53b 100644 --- a/tests/tibdoc.g +++ b/tests/tibdoc.g @@ -66,8 +66,8 @@ pre ::= "[verbatim]" { ~[]+ } /ws => "verbatim" // FIXME doesn't work styled ::= "__" text "__" => ul | "((" text "))" => footnote - | ( "[[" text "]]" => tt - > "[" word "]" => citation + | ( "[[" text "]]" => tt + > "[" word "]" => citation ) | "!!" text "!!" => strikethrough | "^^" (word|block) => superscript @@ -117,7 +117,7 @@ host ::= [0-9]+ "." [0-9]+ "." [0-9]+ "." [0-9]+ => "ip" // Tokens /////////////////////////////////////////////////////////////////// -word ::= alphanum++ +word ::= alphanum++ => stringify | quoted quoted ::= "\"" ((~[\"\\] | escaped)+) "\""