checkpoint
authoradam <adam@megacz.com>
Fri, 14 Jul 2006 01:06:56 +0000 (21:06 -0400)
committeradam <adam@megacz.com>
Fri, 14 Jul 2006 01:06:56 +0000 (21:06 -0400)
darcs-hash:20060714010656-5007d-4e5f9865089c6f559dbb936b6b2fbf416a010005.gz

src/edu/berkeley/sbp/Tree.java
src/edu/berkeley/sbp/meta/MetaGrammar.java

index 086a9bb..8e3020d 100644 (file)
@@ -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<T>
         }
     }
 
+    public static class BindingFunctor<T> implements TreeFunctor<T,Object>/*, ToJava*/ {
+        private Binding _binding;
+        public BindingFunctor(Binding binding) {
+            this._binding = binding;
+        }
+        public Object invoke(Iterable<Tree<T>> t) {
+            return _binding.invoke(new Object[] { t });           
+        }
+    }
+
 }
index 91fd42f..32cac8a 100644 (file)
@@ -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()),