X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FGSS.java;h=0d343a9fa93498a41792cafa3a83de951f603b34;hp=0b6064d633bc02db04426ba46d91379838df8ed4;hb=b2d396676e77fb8777865258f84dfb8f8a2dbcad;hpb=72cc02d0f08922a98b9f2139e814b6c33b275a43 diff --git a/src/edu/berkeley/sbp/GSS.java b/src/edu/berkeley/sbp/GSS.java index 0b6064d..0d343a9 100644 --- a/src/edu/berkeley/sbp/GSS.java +++ b/src/edu/berkeley/sbp/GSS.java @@ -116,6 +116,11 @@ class GSS { int num = hv.size(); for(int i=0; i cache() { return cache==null ? (cache = new HashMap()) : cache; @@ -205,11 +210,14 @@ class GSS { if (allqueued) return; allqueued = true; int where = parents().size(); - for(int i=0; i= 1) + r.reduce(this, null, null); } /** FIXME */ - public void queueReductions(Node n2) { + public void queueReductions(Node n2) { queueReductions(n2, true); } + public void queueReductions(Node n2, boolean includeLongs) { if (!allqueued) { queueReductions(); return; } Node n = this; for(Parser.Table.Reduction r : token==null ? n.state.getEofReductions() : n.state.getReductions(token)) { @@ -227,10 +235,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 +249,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) {