make sure we track Input.Region for epsilon reductions (important for ambiguity-hunting)
[sbp.git] / src / edu / berkeley / sbp / Union.java
index d52c6e9..f1f65b1 100644 (file)
@@ -70,14 +70,14 @@ public class Union extends Element implements Iterable<Sequence> {
     // Epsilon Form //////////////////////////////////////////////////////////////////////////////
 
     // FIXME
-    private Forest.Many epsilonForm = null;
-    Forest epsilonForm() {
-        if (epsilonForm != null) return epsilonForm;
-        epsilonForm = new Forest.Many();
+    //private Forest.Many epsilonForm = null;
+    Forest epsilonForm(Input.Region loc) {
+        //if (epsilonForm != null) return epsilonForm;
+        Forest.Many epsilonForm = new Forest.Many();
         for(Sequence s : this) {
             // FIXME FIXME FIXME
             if (new Walk.Cache().possiblyEpsilon(s))
-                epsilonForm.merge(s.epsilonForm());
+                epsilonForm.merge(s.epsilonForm(loc));
         }
         return epsilonForm;
     }