yay, new boolean resolution approach works
[sbp.git] / src / edu / berkeley / sbp / Forest.java
index 5c09170..8ed6eb5 100644 (file)
@@ -88,10 +88,13 @@ public abstract class Forest<T> {
         private boolean kcache = false;
         private boolean keep = false;
         public boolean keep() {
+            return true;
+            /*
             if (kcache) return keep;
             kcache = true;
             for(Forest<T> token : tokens) if (!token.valid()) return keep = false;
             return keep = creator==null || (creator.needs.size()==0 && creator.hates.size()==0);
+            */
         }
         public boolean keep(Iterable<Body<T>> h) {
             if (keep()) return true;
@@ -152,7 +155,7 @@ public abstract class Forest<T> {
         }
         public Iterator<Body<T>> iterator() { return ((IterableForest<T>)resolve()).iterator(); }
         public HashSet<Tree<T>> expand(boolean toss) { return resolve().expand(toss); }
-        public boolean valid() { if (valid) return true; resolve(); return valid; }
+        public boolean valid() { return true; /*if (valid) return true; resolve(); return valid;*/ }
         public String toString() { return resolve().toString(); }
         public Forest resolve() {
             if (hp==null) return res;
@@ -190,7 +193,7 @@ public abstract class Forest<T> {
     private static class MultiForest<T> extends IterableForest<T> {
         private final FastSet<Body<T>> results;
         private boolean valid;
-        public boolean valid() { return valid; }
+        public boolean valid() { /*return valid;*/ return true; }
         private MultiForest(FastSet<Body<T>> results, boolean valid) { this.results = results; this.valid = valid; }
         public MultiForest(Token.Location loc, T tag, Forest<T>[] tokens, Sequence creator, boolean unwrap, boolean singleton) {
             this.results = new FastSet<Body<T>>(new Body(loc, tag, tokens, creator, unwrap, singleton));