X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FGSS.java;h=a5d6f88391dcdff2b95d6d003535dfd7db48817c;hp=8124590dc465f326e7e8e90c33d92c7fed4c4752;hb=2a11d8ca5ae3af89ac2bdea58f71e463b6e4affe;hpb=927dc9b785de472f2237c5adbc4d2ad12f16cc2d diff --git a/src/edu/berkeley/sbp/GSS.java b/src/edu/berkeley/sbp/GSS.java index 8124590..a5d6f88 100644 --- a/src/edu/berkeley/sbp/GSS.java +++ b/src/edu/berkeley/sbp/GSS.java @@ -48,7 +48,7 @@ class GSS { private Forest forest; - public Phase(Phase prev, Parser parser, Phase previous, Tok token, Input.Location location, Forest forest) { + public Phase(Phase prev, Parser parser, Phase previous, Tok token, Input.Location location, Forest forest) throws ParseFailed { this.prev = prev; this.forest = forest; this.parser = parser; @@ -59,7 +59,7 @@ class GSS { reset(); } - public void reset() { + public void reset() throws ParseFailed { waiting.clear(); performed.clear(); hash = new IntPairMap(); @@ -183,7 +183,7 @@ class GSS { } /** perform all reduction operations */ - public void reduce() { + public void reduce() throws ParseFailed{ try { reducing = true; if (reducing_list==null || reducing_list.length < hash.size()) @@ -293,6 +293,7 @@ class GSS { else state.invokeReductions(token, this, this, n2); } + public void performEmptyReductions() { state.invokeReductions(token, this, null, null); } public final void invoke(Position r, Node n, Node n2) { if (n==null || n2==null || r.pos==0) { if (r.pos==0) { @@ -351,8 +352,6 @@ class GSS { target.newNode(this, result, state0, r.pos<=0, r); } - public void performEmptyReductions() { state.invokeReductions(token, this, null, null); } - private Node(Node parent, Forest pending, State state) { this.state = state; this.holder().merge(pending);