- void reachable(HashSet<Position> h) { firstp().reachable(h); }
-
- Forest epsilonForm() { return firstp().rewrite(null); }
+ // DO NOT MESS WITH THE FOLLOWING LINE!!!
+ private Forest.Ref epsilonForm = null;
+ private boolean eps = false;
+ Forest epsilonForm() {
+ if (epsilonForm==null) {
+ epsilonForm = new Forest.Ref();
+ Forest fo = firstp().rewrite(null);
+ epsilonForm.merge(fo);
+ }
+ return epsilonForm;
+ }