From b0ec1efcb13eceb539f9cd033a0d2908fc2be27a Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 4 Jan 2006 06:01:27 -0500 Subject: [PATCH] checkpoint darcs-hash:20060104110127-5007d-8d5311fa94d603d02ec275421c7d8dddfcca9bdd.gz --- src/edu/berkeley/sbp/Parser.java | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/src/edu/berkeley/sbp/Parser.java b/src/edu/berkeley/sbp/Parser.java index 1afa523..65f3dc3 100644 --- a/src/edu/berkeley/sbp/Parser.java +++ b/src/edu/berkeley/sbp/Parser.java @@ -339,20 +339,14 @@ public abstract class Parser { // FIXME: this could be more elegant and/or cleaner and/or somewhere else private Forest reduce(GSS.Phase.Node parent, int pos, Forest rex, GSS.Phase target) { - if (pos>=0) holder[pos] = parent.pending(); - if (pos==0) { - if (rex==null) { - System.arraycopy(holder, 0, position.holder, 0, holder.length); - rex = position.rewrite(target.getLocation()); - } - for(GSS.Phase.Node child : parent.parents()) - reduce(child, pos-1, rex, target); - } else if (pos>0) { - for(GSS.Phase.Node child : parent.parents()) - reduce(child, pos-1, rex, target); - } else { - return finish(parent, rex, target); + if (pos<0) return finish(parent, rex, target); + holder[pos] = parent.pending(); + if (pos==0 && rex==null) { + System.arraycopy(holder, 0, position.holder, 0, holder.length); + rex = position.rewrite(target.getLocation()); } + for(GSS.Phase.Node child : parent.parents()) + reduce(child, pos-1, rex, target); return rex; } private Forest finish(GSS.Phase.Node parent, Forest result, GSS.Phase target) { -- 1.7.10.4