X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FGSS.java;h=3c6beacabbf2c2ccd75f2286c75e2ab4d9312124;hp=5c1b92f41f83ff066c676ae4be667a2630d444f5;hb=5c4157c1118401c4223ff485e9531fc3ba851be2;hpb=a60fa7d36f9039881c6eac2b771bd53943d997b7 diff --git a/src/edu/berkeley/sbp/GSS.java b/src/edu/berkeley/sbp/GSS.java index 5c1b92f..3c6beac 100644 --- a/src/edu/berkeley/sbp/GSS.java +++ b/src/edu/berkeley/sbp/GSS.java @@ -185,7 +185,7 @@ class GSS { */ private boolean newNode(Result result, State state, boolean fromEmptyReduction) { Node p = hash.get(state, result.phase()); - if (p != null) { p.addResult(result); return true; } + if (p != null) { p.addResult(result); return !state.doomed(); } do { if (token != null && state.canShift(token)) break; if (state.isAccepting()) break; @@ -195,7 +195,7 @@ class GSS { Node n = new Node(Phase.this, result, state, fromEmptyReduction); // ALLOC for(Object s : state.conjunctStates) newNode(new Result(null, n, null), (State)s, fromEmptyReduction); - return true; + return !n.state().doomed(); } public int toInt() { return pos+1; }