From cd979dfc5968a185c12d6eedc2aa688ef4b0f8b8 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 11 Jan 2006 02:42:42 -0500 Subject: [PATCH] checkpoint harmony darcs-hash:20060111074242-5007d-8446781a5fe2ceb65e513e240b621603d229df17.gz --- src/edu/berkeley/sbp/GSS.java | 18 ++++++++++++++++-- src/edu/berkeley/sbp/Parser.java | 14 -------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/edu/berkeley/sbp/GSS.java b/src/edu/berkeley/sbp/GSS.java index 5feba84..1432402 100644 --- a/src/edu/berkeley/sbp/GSS.java +++ b/src/edu/berkeley/sbp/GSS.java @@ -286,7 +286,7 @@ class GSS { if (n==null) return; Forest[] holder = new Forest[r.position.pos]; if (r.position.pos==0) n.finish(r, r.zero(), n.phase(), holder); - else r.reduce(n, r.position.pos-1, n.phase(), holder); + else n.reduce(r, r.position.pos-1, n.phase(), holder); } else { Forest[] holder = new Forest[r.position.pos]; if (r.position.pos<=0) throw new Error("called wrong form of reduce()"); @@ -298,12 +298,26 @@ class GSS { Forest rex = r.position.rewrite(n.phase().getLocation()); n2.finish(r, rex, n.phase(), holder); } else { - r.reduce(n2, pos-1, n.phase(), holder); + n2.reduce(r, pos-1, n.phase(), holder); } holder[pos] = old; } } + public void reduce(Reduction r, int pos, GSS.Phase target, Forest[] holder) { + Forest old = holder[pos]; + holder[pos] = this.pending(); + if (pos==0) { + System.arraycopy(holder, 0, r.position.holder, 0, holder.length); + for(int i=0; i { return zero = position.rewrite(null); } - // FIXME: this could be more elegant and/or cleaner and/or somewhere else - 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) { - System.arraycopy(holder, 0, position.holder, 0, holder.length); - for(int i=0; i