From 80a840adb5df31ba5edd20ecac23086ad09a5ca1 Mon Sep 17 00:00:00 2001 From: adam Date: Tue, 4 Jul 2006 21:23:51 -0400 Subject: [PATCH] checkpoint darcs-hash:20060705012351-5007d-3b653a552279c3047d79727815e921ad11f304cd.gz --- src/edu/berkeley/sbp/Tree.java | 21 +++++++++++++++++++++ src/edu/berkeley/sbp/misc/Demo.java | 18 +----------------- src/edu/berkeley/sbp/tib/TibDoc.java | 10 +--------- 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/edu/berkeley/sbp/Tree.java b/src/edu/berkeley/sbp/Tree.java index cdd3b8b..bffc353 100644 --- a/src/edu/berkeley/sbp/Tree.java +++ b/src/edu/berkeley/sbp/Tree.java @@ -57,4 +57,25 @@ public class Tree } public boolean isTransparent() { return false; } public boolean isHidden() { return false; } + + public static interface TreeFunctor extends Functor>, R> { + } + + public static class ArrayBuildingTreeFunctor implements TreeFunctor { + public String toString() { return ""; } + public T[] invoke(Iterable> t) { + ArrayList ret = new ArrayList(); + for(Tree tc : t) { + if (tc.head() != null && tc.head() instanceof Functor) + ret.add(((Functor,Object>)tc.head()).invoke(tc.children())); + else if (tc.numChildren() == 0) + ret.add(tc.head()); + else { + System.err.println("FIXME: don't know what to do about " + tc); + ret.add(null); + } + } + return (T[])ret.toArray(new Object[0]); + } + } } diff --git a/src/edu/berkeley/sbp/misc/Demo.java b/src/edu/berkeley/sbp/misc/Demo.java index b6c0524..dbe6266 100644 --- a/src/edu/berkeley/sbp/misc/Demo.java +++ b/src/edu/berkeley/sbp/misc/Demo.java @@ -89,23 +89,7 @@ public class Demo { return false; } public Object repeatTag() { - return new Functor,Object>() { - public String toString() { return ""; } - public Object invoke(Iterable t) { - ArrayList ret = new ArrayList(); - for(Tree tc : t) { - if (tc.head() != null && tc.head() instanceof Functor) - ret.add(((Functor,Object>)tc.head()).invoke(tc.children())); - else if (tc.numChildren() == 0) - ret.add(tc.head()); - else { - System.err.println("FIXME: don't know what to do about " + tc); - ret.add(null); - } - } - return ret.toArray(new Object[0]); - } - }; + return new Tree.ArrayBuildingTreeFunctor(); } public Sequence tryResolveTag(String tag, String nonTerminalName, Element[] els, Object[] labels, boolean[] drops) { Production p = new Production(tag, nonTerminalName, els, labels, drops); diff --git a/src/edu/berkeley/sbp/tib/TibDoc.java b/src/edu/berkeley/sbp/tib/TibDoc.java index a32c529..bbf0545 100644 --- a/src/edu/berkeley/sbp/tib/TibDoc.java +++ b/src/edu/berkeley/sbp/tib/TibDoc.java @@ -534,15 +534,7 @@ toContex ll = prefix ++ (concatMap tl ll) ++ suffix System.out.println(); System.out.println(f.expand1().toPrettyString()); System.out.println(); - Doc doc = (Doc)new ReflectiveGrammar(TibDoc.class).build(f.expand1()); - System.out.println(doc); - System.out.println(); - System.out.println(); - System.out.println(); - System.out.println(); - StringBuffer sb = new StringBuffer(); - doc.toHTML(new ToHTML.HTML(sb)); - System.out.println(sb); + FileOutputStream fos = new FileOutputStream("out.html"); PrintWriter p = new PrintWriter(new OutputStreamWriter(fos)); -- 1.7.10.4