checkpoint harmony
[sbp.git] / src / edu / berkeley / sbp / Parser.java
index 41eae02..2a090b0 100644 (file)
@@ -272,12 +272,6 @@ public abstract class Parser<T extends Token, R> {
                 return zero = position.rewrite(null);
             }
 
-            public void reduce(GSS.Phase.Node parent) {
-                Forest[] holder = new Forest[position.pos];
-                if (position.pos==0) finish(parent, zero(), parent.phase(), holder);
-                else           reduce(parent, position.pos-1, parent.phase(), holder);
-            }
-
             public void reduce(GSS.Phase.Node parent, GSS.Phase.Node onlychild) {
                 Forest[] holder = new Forest[position.pos];
                 if (position.pos<=0) throw new Error("called wrong form of reduce()");
@@ -294,7 +288,7 @@ public abstract class Parser<T extends Token, R> {
             }
 
             // FIXME: this could be more elegant and/or cleaner and/or somewhere else
-            private void reduce(GSS.Phase.Node parent, int pos, GSS.Phase target, Forest[] holder) {
+            public void reduce(GSS.Phase.Node parent, int pos, GSS.Phase target, Forest[] holder) {
                 Forest old = holder[pos];
                 holder[pos] = parent.pending();
                 if (pos==0) {
@@ -307,7 +301,7 @@ public abstract class Parser<T extends Token, R> {
                 }
                 holder[pos] = old;
             }
-            private void finish(GSS.Phase.Node parent, Forest result, GSS.Phase target, Forest[] holder) {
+            public void finish(GSS.Phase.Node parent, Forest result, GSS.Phase target, Forest[] holder) {
                 State state = parent.state.gotoSetNonTerminals.get(position.owner());
                 if (result==null) throw new Error();
                 if (state!=null)