From: adam Date: Fri, 14 Jul 2006 01:06:56 +0000 (-0400) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~149 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=6a3a36e63c18501aa5a37c6af49f419beaa82759 checkpoint darcs-hash:20060714010656-5007d-4e5f9865089c6f559dbb936b6b2fbf416a010005.gz --- diff --git a/src/edu/berkeley/sbp/Tree.java b/src/edu/berkeley/sbp/Tree.java index 086a9bb..8e3020d 100644 --- a/src/edu/berkeley/sbp/Tree.java +++ b/src/edu/berkeley/sbp/Tree.java @@ -1,7 +1,7 @@ package edu.berkeley.sbp; import edu.berkeley.sbp.*; -import edu.berkeley.sbp.*; import edu.berkeley.sbp.util.*; +import edu.berkeley.sbp.bind.*; import java.io.*; import java.util.*; import java.lang.reflect.*; @@ -84,4 +84,14 @@ public class Tree } } + public static class BindingFunctor implements TreeFunctor/*, ToJava*/ { + private Binding _binding; + public BindingFunctor(Binding binding) { + this._binding = binding; + } + public Object invoke(Iterable> t) { + return _binding.invoke(new Object[] { t }); + } + } + } diff --git a/src/edu/berkeley/sbp/meta/MetaGrammar.java b/src/edu/berkeley/sbp/meta/MetaGrammar.java index 91fd42f..32cac8a 100644 --- a/src/edu/berkeley/sbp/meta/MetaGrammar.java +++ b/src/edu/berkeley/sbp/meta/MetaGrammar.java @@ -135,6 +135,10 @@ public class MetaGrammar { p.drops); } + if (isRaw()) + return Sequence.rewritingSequence(new Tree.BindingFunctor(_bindable.createBinding()), + p.elements, + p.drops); return Sequence.rewritingSequence(new TreeBindableReducer(buildSequence(p), _bindable, isRaw()),