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;
}
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;
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));