Union.java: visibility fixes
[sbp.git] / src / edu / berkeley / sbp / Union.java
index d52c6e9..474a542 100644 (file)
@@ -1,3 +1,5 @@
+// Copyright 2006 all rights reserved; see LICENSE file for BSD-style license
+
 package edu.berkeley.sbp;
 import edu.berkeley.sbp.util.*;
 import edu.berkeley.sbp.*;
@@ -17,7 +19,7 @@ import java.lang.ref.*;
  */
 public class Union extends Element implements Iterable<Sequence> {
 
-    private final String name;
+    private final String  name;
     private final boolean synthetic;
     private boolean viewed = false;
 
@@ -70,14 +72,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;
     }
@@ -85,10 +87,9 @@ public class Union extends Element implements Iterable<Sequence> {
 
     // Display //////////////////////////////////////////////////////////////////////////////
 
-    public String getName() {
-        if (name != null) return name;
-        return "(anon_union)";
-    }
+    boolean isSynthetic() { return synthetic; }
+    String getName()      { return name==null ? "(anon_union)" : name; }
+
     public String toString() {
         viewed = true;
         if (name != null) return name;