checkpoint
[sbp.git] / src / edu / berkeley / sbp / GSS.java
index 8124590..a5d6f88 100644 (file)
@@ -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<Phase.Node>();
@@ -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);