X-Git-Url: http://git.megacz.com/?p=sbp.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fsbp%2FParser.java;h=2fc0691e3dc4d307060b74a81fefd528d91c97e2;hp=6b9bad72497c9d8501efa8348ed631393a645493;hb=6f1b2b1cba77222aeed1594d878b8c1250e31c1f;hpb=ce8452c48968090d71261ac773e39134ff764af4 diff --git a/src/edu/berkeley/sbp/Parser.java b/src/edu/berkeley/sbp/Parser.java index 6b9bad7..2fc0691 100644 --- a/src/edu/berkeley/sbp/Parser.java +++ b/src/edu/berkeley/sbp/Parser.java @@ -273,8 +273,8 @@ public abstract class Parser implements Serializable { HashMap> gotoSetNonTerminals = new HashMap>(); private transient TopologicalBag> gotoSetTerminals = new TopologicalBag>(); - private TopologicalBag reductions = new TopologicalBag(); - private HashSet eofReductions = new HashSet(); + TopologicalBag reductions = new TopologicalBag(); + HashSet eofReductions = new HashSet(); private TopologicalBag> shifts = new TopologicalBag>(); private boolean accept = false; @@ -290,16 +290,16 @@ public abstract class Parser implements Serializable { Iterable positions() { return hs; } boolean canShift(Token t) { return oshifts!=null && oshifts.contains(t); } - void invokeShifts(Token t, GSS.Phase phase, Result r) { oshifts.invoke(t, phase, r); } + void invokeShifts(Token t, GSS.Phase phase, Node pred, Forest f) { oshifts.invoke(t, phase, pred, f); } boolean canReduce(Token t) { return oreductions != null && (t==null ? eofReductions.size()>0 : oreductions.contains(t)); } void invokeEpsilonReductions(Token t, Node node) { - if (t==null) for(Pos r : eofReductions) node.invoke(r, null); - else oreductions.invoke(t, node, null); + if (t==null) for(Pos r : eofReductions) node.invoke(r, null, null); + else oreductions.invoke(t, node, null, null); } void invokeReductions(Token t, Node node, Result b) { - if (t==null) for(Pos r : eofReductions) node.invoke(r, b); - else oreductions.invoke(t, node, b); + if (t==null) for(Pos r : eofReductions) node.invoke(r, b, null); + else oreductions.invoke(t, node, b, null); } // Constructor //////////////////////////////////////////////////////////////////////////////