checkpoint
[sbp.git] / src / edu / berkeley / sbp / Walk.java
index cd991e8..496edd6 100644 (file)
@@ -37,7 +37,12 @@ abstract class Walk<T> {
         else if (e instanceof Sequence) return sequence((Sequence)e);
         else if (e instanceof Union) {
             T ret = bottom(e);
         else if (e instanceof Sequence) return sequence((Sequence)e);
         else if (e instanceof Union) {
             T ret = bottom(e);
-            for(Sequence s : (Union)e) ret = union((Union)e, ret, walk(s));
+            for(Sequence s : (Union)e) {
+                ret = union((Union)e, ret, walk(s));
+                // FIXME
+                for(Sequence ss : s.needs()) ret = union((Union)e, ret, walk(ss));
+                for(Sequence ss : s.hates()) ret = union((Union)e, ret, walk(ss));
+            }
             return ret;
         } else {
             throw new Error("unknown element of class " + e.getClass().getName() + ": " + e);
             return ret;
         } else {
             throw new Error("unknown element of class " + e.getClass().getName() + ": " + e);