X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FForest.java;fp=src%2Fedu%2Fberkeley%2Fsbp%2FForest.java;h=353e2561d83d06986c7f7bdb9e45778250ab02e2;hp=bdaedca81f52d6967d3033d1c1fc4137cb1e800b;hb=972303162555284f8066047d3caead8df139afd4;hpb=c042bb0dcce5d64f09b2788b2dfb722145162d2b diff --git a/src/edu/berkeley/sbp/Forest.java b/src/edu/berkeley/sbp/Forest.java index bdaedca..353e256 100644 --- a/src/edu/berkeley/sbp/Forest.java +++ b/src/edu/berkeley/sbp/Forest.java @@ -158,6 +158,14 @@ public abstract class Forest implements GraphViz.ToGraphViz { void gather(HashSet> ht) { touched(); + + // FIXME: do something more sensible here + if (ht.contains(this)) { + System.err.println("WARNING: grammar produced a circular forest\n" + this); + //throw new Error("grammar produced a circular forest:\n" + this); + return; + } + ht.add(this); for(Forest f : hp) f.gather(ht); }