From e9565d3e145567a79e11ca7a3c3e8cd7fa6d3e57 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 4 Jan 2006 22:08:57 -0500 Subject: [PATCH] checkpoint darcs-hash:20060105030857-5007d-b000eca02d0f105f242d51a87014da0dd452ee4f.gz --- src/edu/berkeley/sbp/GSS.java | 2 +- src/edu/berkeley/sbp/Parser.java | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/edu/berkeley/sbp/GSS.java b/src/edu/berkeley/sbp/GSS.java index 7d13fb2..1d401a5 100644 --- a/src/edu/berkeley/sbp/GSS.java +++ b/src/edu/berkeley/sbp/GSS.java @@ -90,7 +90,7 @@ class GSS { if (token==null) break; int count = 0; Parser.Table.Reduction r = null; - if (!state.hasReductions(token)) return; + if (!state.canReduce(token)) return; //if (count > 1) break; //if (r.numPop == 0) break; //r.reduce(pending, parent, null, Phase.this, null); diff --git a/src/edu/berkeley/sbp/Parser.java b/src/edu/berkeley/sbp/Parser.java index 076bc7d..cdf1715 100644 --- a/src/edu/berkeley/sbp/Parser.java +++ b/src/edu/berkeley/sbp/Parser.java @@ -179,19 +179,21 @@ public abstract class Parser { private TopologicalBag shifts = new TopologicalBag(); private boolean accept = false; + private TopologicalBag oshifts = shifts; + //private TopologicalBag reductions2 = reductions; + // Interface Methods ////////////////////////////////////////////////////////////////////////////// public boolean isAccepting() { return accept; } public boolean canShift(Token t) { return shifts.contains(t); } - public Iterable getShifts(Token t) { return shifts.get(t); } - - public Iterable getReductions(Token t) { return t==null ? eofReductions : reductions.get(t); } - public boolean hasReductions(Token t) { return t==null ? eofReductions.size()>0 : reductions.has(t); } + public boolean canReduce(Token t) { return t==null ? eofReductions.size()>0 : reductions.has(t); } public Iterator iterator() { return hs.iterator(); } - public void invokeShifts(Token t, Invokable irbc, B b, C c) { shifts.invoke(t, irbc, b, c); } + public void invokeShifts(Token t, Invokable irbc, B b, C c) { + oshifts.invoke(t, irbc, b, c); + } public void invokeReductions(Token t, Invokable irbc, B b, C c) { if (t==null) for(Reduction r : eofReductions) irbc.invoke(r, b, c); else reductions.invoke(t, irbc, b, c); -- 1.7.10.4