From: adam Date: Fri, 14 Jul 2006 01:02:58 +0000 (-0400) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~150 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=34202c7836b0f48a034f38e4477623d512d0b2d5 checkpoint darcs-hash:20060714010258-5007d-8312de127672ba25e19f172bf8372f6b3fd2f938.gz --- diff --git a/src/edu/berkeley/sbp/bind/Bindable.java b/src/edu/berkeley/sbp/bind/Bindable.java index ddd6242..7c620c9 100644 --- a/src/edu/berkeley/sbp/bind/Bindable.java +++ b/src/edu/berkeley/sbp/bind/Bindable.java @@ -29,6 +29,13 @@ public abstract class Bindable implements ToJava { return null; } + public Binding createBinding() { + return new Binding() { + public Object invoke(Object[] o) { + return impose(o); + } + }; + } public Binding createBinding(final int[] map) { return new Binding() { public Object invoke(Object[] o) { diff --git a/src/edu/berkeley/sbp/meta/MetaGrammar.java b/src/edu/berkeley/sbp/meta/MetaGrammar.java index 2340de2..91fd42f 100644 --- a/src/edu/berkeley/sbp/meta/MetaGrammar.java +++ b/src/edu/berkeley/sbp/meta/MetaGrammar.java @@ -166,7 +166,7 @@ public class MetaGrammar { } public String toString() { return "reducer-"+_bindable.toString(); } public Object invoke(Iterable> t) { - if (_israw) return _bindable.impose(new Object[] { t }); + if (_israw) return _bindable.createBinding().invoke(new Object[] { t }); ArrayList ret = new ArrayList(); for(Tree tc : t) { if (tc.head() != null && tc.head() instanceof Functor)