From: adam Date: Wed, 4 Jan 2006 10:09:18 +0000 (-0500) Subject: checkpoint X-Git-Tag: tag_for_25-Mar~450 X-Git-Url: http://git.megacz.com/?p=sbp.git;a=commitdiff_plain;h=f71911854d01647a743d52bfccff8d78a4497550 checkpoint darcs-hash:20060104100918-5007d-6aff793c8d97ec1f782bba513f3e3778aca72bb0.gz --- diff --git a/src/edu/berkeley/sbp/GSS.java b/src/edu/berkeley/sbp/GSS.java index 0b6064d..7bba6a6 100644 --- a/src/edu/berkeley/sbp/GSS.java +++ b/src/edu/berkeley/sbp/GSS.java @@ -191,7 +191,7 @@ class GSS { public final Parser.Table.State state; /** which Phase this Node belongs to (node that Node is also a non-static inner class of Phase) */ - public final Phase phase = Phase.this; + public Phase phase() { return Phase.this; } public HashMap cache() { return cache==null ? (cache = new HashMap()) : cache; @@ -227,10 +227,10 @@ class GSS { if (r.numPop <= 0) continue; if (r.numPop == 1) { Forest ret = n.cache().get(r); - if (ret != null) r.reduce(n, n2, n.phase, ret); - else n.cache().put(r, r.reduce(n, n2, n.phase, null)); + if (ret != null) r.reduce(this, n2, ret); + else n.cache().put(r, r.reduce(this, n2, null)); } else { - r.reduce(n, n2, Phase.this, null); + r.reduce(this, n2, null); } } } @@ -241,7 +241,7 @@ class GSS { if (reducing) for(Parser.Table.Reduction r : token==null ? state.getEofReductions() : state.getReductions(token)) if (r.numPop==0) - r.reduce(this, null, this.phase, r.zero()); + r.reduce(this, null, r.zero()); } private Node(Node parent, Forest pending, Parser.Table.State state, Phase start) { diff --git a/src/edu/berkeley/sbp/Parser.java b/src/edu/berkeley/sbp/Parser.java index 6f1098e..f37c575 100644 --- a/src/edu/berkeley/sbp/Parser.java +++ b/src/edu/berkeley/sbp/Parser.java @@ -314,8 +314,8 @@ public abstract class Parser { holder[numPop-1] = f; return reduce(parent, numPop-2, rex, onlychild, target); } - public Forest reduce(GSS.Phase.Node parent, GSS.Phase.Node onlychild, GSS.Phase target, Forest rex) { - return reduce(parent, numPop-1, rex, onlychild, target); + public Forest reduce(GSS.Phase.Node parent, GSS.Phase.Node onlychild, Forest rex) { + return reduce(parent, numPop-1, rex, onlychild, parent.phase()); } private Forest zero = null; @@ -341,7 +341,7 @@ public abstract class Parser { } else { State state = parent.state.gotoSetNonTerminals.get(position.owner()); if (state!=null) - target.newNode(parent, rex, state, numPop<=0, parent.phase); + target.newNode(parent, rex, state, numPop<=0, parent.phase()); } return rex; }