From e2df2c799902dadbc9ebe907ab80e099ac3571e6 Mon Sep 17 00:00:00 2001 From: adam Date: Tue, 4 Jul 2006 21:26:32 -0400 Subject: [PATCH] checkpoint darcs-hash:20060705012632-5007d-625f6175f02693da99546e02409df0e0f1eaedbe.gz --- src/edu/berkeley/sbp/Tree.java | 5 ++++- src/edu/berkeley/sbp/misc/Demo.java | 14 +++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/edu/berkeley/sbp/Tree.java b/src/edu/berkeley/sbp/Tree.java index bffc353..ca351d3 100644 --- a/src/edu/berkeley/sbp/Tree.java +++ b/src/edu/berkeley/sbp/Tree.java @@ -61,8 +61,11 @@ public class Tree public static interface TreeFunctor extends Functor>, R> { } - public static class ArrayBuildingTreeFunctor implements TreeFunctor { + public static class ArrayBuildingTreeFunctor implements TreeFunctor, ToJava { + + public void toJava(StringBuffer sb) { sb.append("new Tree.ArrayBuildingTreeFunctor()"); } public String toString() { return ""; } + public T[] invoke(Iterable> t) { ArrayList ret = new ArrayList(); for(Tree tc : t) { diff --git a/src/edu/berkeley/sbp/misc/Demo.java b/src/edu/berkeley/sbp/misc/Demo.java index dbe6266..5c15980 100644 --- a/src/edu/berkeley/sbp/misc/Demo.java +++ b/src/edu/berkeley/sbp/misc/Demo.java @@ -225,8 +225,8 @@ public class Demo { } public abstract Object plant(Object[] fields, int[] map); public boolean isRaw() { return false; } - public Object invokeRaw(Iterable t) { return null; } - public class TargetReducer implements Functor,Object> { + public Object invokeRaw(Iterable> t) { return null; } + public class TargetReducer implements Tree.TreeFunctor { private Production p; private int[] map; private String name; @@ -236,12 +236,12 @@ public class Demo { this.name = name; } public String toString() { return name; } - public Object invoke(Iterable t) { + public Object invoke(Iterable> t) { if (isRaw()) return invokeRaw(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())); + ret.add(((Tree.TreeFunctor)tc.head()).invoke(tc.children())); else if (tc.numChildren() == 0) ret.add(tc.head()); else { @@ -374,7 +374,7 @@ public class Demo { return ret; } public boolean isRaw() { return _method.isAnnotationPresent(raw.class); } - public Object invokeRaw(Iterable t) { + public Object invokeRaw(Iterable> t) { try { return _method.invoke(null, new Object[] { t }); } catch (Exception e) { @@ -465,7 +465,7 @@ public class Demo { } public static Union make(Tree t, String s) { return make(t, s, new ReflectiveMeta()); } public static Union make(Tree t, String s, ReflectiveMeta rm) { - Functor,Object> red = (Functor,Object>)t.head(); + Tree.TreeFunctor red = (Tree.TreeFunctor)t.head(); MG.Grammar g = (MG.Grammar)red.invoke(t.children()); Context cx = new Context(g,rm); Union u = null; @@ -765,7 +765,7 @@ public class Demo { } public Context(Tree t, ReflectiveMeta rm) { this.rm = rm; - Functor,Object> red = (Functor,Object>)t.head(); + Tree.TreeFunctor red = (Tree.TreeFunctor)t.head(); this.grammar = (MG.Grammar)red.invoke(t.children()); } public Union peek(String name) { return map.get(name); } -- 1.7.10.4