fix major bug: create YieldSet2 which does not consider needs/hates
[sbp.git] / src / edu / berkeley / sbp / Parser.java
index 10768f6..f2bb701 100644 (file)
@@ -122,6 +122,8 @@ public abstract class Parser<Token, NodeType> {
             walk(start0, all_elements);
             for(SequenceOrElement e : all_elements)
                 cache.ys.addAll(e, new Walk.YieldSet(e, cache).walk());
+            for(SequenceOrElement e : all_elements)
+                cache.ys2.addAll(e, new Walk.YieldSet2(e, cache).walk());
             HashSet<Position> hp = new HashSet<Position>();
             reachable(start0, hp);
 
@@ -289,7 +291,8 @@ public abstract class Parser<Token, NodeType> {
                 for(Position p : hs) {
                     Element e = p.element();
                     if (e==null) continue;
-                    for(SequenceOrElement y : cache.ys.getAll(e)) {
+                    for(SequenceOrElement y : cache.ys2.getAll(e)) {
+                        //System.out.println(e + " yields " + y);
                         HashSet<Position> hp = new HashSet<Position>();
                         reachable(p.next(), hp);
                         move.addAll(y, hp);