From d22fc3c103cc371f742b2ed0e931e42388255560 Mon Sep 17 00:00:00 2001 From: adam Date: Mon, 29 May 2006 17:40:16 -0400 Subject: [PATCH] tentative checkpoint darcs-hash:20060529214016-5007d-f4948e76448fef69d7f56c0db52230fd2c434661.gz --- src/edu/berkeley/sbp/GSS.java | 26 +++++------------------- src/edu/berkeley/sbp/misc/MetaGrammarTree.java | 4 ++++ 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/src/edu/berkeley/sbp/GSS.java b/src/edu/berkeley/sbp/GSS.java index 0718a10..65af62e 100644 --- a/src/edu/berkeley/sbp/GSS.java +++ b/src/edu/berkeley/sbp/GSS.java @@ -41,7 +41,6 @@ class GSS { boolean reducing; private IntPairMap hash; /* ALLOC */ - private IntPairMap singularReductions; /* ALLOC */ private boolean closed; private boolean good; private Phase next = null; @@ -69,7 +68,6 @@ class GSS { lastperformed.addAll(performed); performed.clear(); hash = new IntPairMap(); - singularReductions = new IntPairMap(); reset = false; good = false; closed = false; @@ -220,7 +218,6 @@ class GSS { // this massively improves GC performance if (prev!=null && parser.helpgc) { prev.hash = null; - prev.singularReductions = null; } this.next = next; closed = true; @@ -358,23 +355,16 @@ class GSS { if (n==null) return; Forest[] holder = new Forest[r.pos]; if (r.pos==0) n.finish(r, r.zero(), n.phase(), holder); - else n.reduce(r, r.pos-1, n.phase(), holder, null, null); + else n.reduce(r, r.pos-1, n.phase(), holder, null); } else { Forest[] holder = new Forest[r.pos]; if (r.pos<=0) throw new Error("called wrong form of reduce()"); int pos = r.pos-1; - n.reduce(r, pos, n.phase(), holder, n2, null); + n.reduce(r, pos, n.phase(), holder, n2); } } - /* - public void reduce(Position r, int pos, Phase target, Forest[] holder) { - reduce(r, pos, target, holder, null); } public void reduce(Position r, int pos, Phase target, Forest[] holder, Node only) { - reduce(r, pos, target, holder, only, this.pending()); - } - */ - public void reduce(Position r, int pos, Phase target, Forest[] holder, Node only, Forest pending) { Forest old = holder[pos]; // FIXME: I'm unsure about this -- basically we want to deal with the case where @@ -385,19 +375,13 @@ class GSS { for(Forest result : results()) for(Node child : ((Forest.Ref)result).parents) { if (only != null && child!=only) continue; - pending = holder[pos] = result; + holder[pos] = result; if (pos==0) { System.arraycopy(holder, 0, r.holder, 0, holder.length); for(int i=0; i