projects
/
sbp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix major bug: create YieldSet2 which does not consider needs/hates
[sbp.git]
/
src
/
edu
/
berkeley
/
sbp
/
Parser.java
diff --git
a/src/edu/berkeley/sbp/Parser.java
b/src/edu/berkeley/sbp/Parser.java
index
10768f6
..
f2bb701
100644
(file)
--- a/
src/edu/berkeley/sbp/Parser.java
+++ b/
src/edu/berkeley/sbp/Parser.java
@@
-122,6
+122,8
@@
public abstract class Parser<Token, NodeType> {
walk(start0, all_elements);
for(SequenceOrElement e : all_elements)
cache.ys.addAll(e, new Walk.YieldSet(e, cache).walk());
walk(start0, all_elements);
for(SequenceOrElement e : all_elements)
cache.ys.addAll(e, new Walk.YieldSet(e, cache).walk());
+ for(SequenceOrElement e : all_elements)
+ cache.ys2.addAll(e, new Walk.YieldSet2(e, cache).walk());
HashSet<Position> hp = new HashSet<Position>();
reachable(start0, hp);
HashSet<Position> hp = new HashSet<Position>();
reachable(start0, hp);
@@
-289,7
+291,8
@@
public abstract class Parser<Token, NodeType> {
for(Position p : hs) {
Element e = p.element();
if (e==null) continue;
for(Position p : hs) {
Element e = p.element();
if (e==null) continue;
- for(SequenceOrElement y : cache.ys.getAll(e)) {
+ for(SequenceOrElement y : cache.ys2.getAll(e)) {
+ //System.out.println(e + " yields " + y);
HashSet<Position> hp = new HashSet<Position>();
reachable(p.next(), hp);
move.addAll(y, hp);
HashSet<Position> hp = new HashSet<Position>();
reachable(p.next(), hp);
move.addAll(y, hp);