wasn't killing all states

[git-p4: depot-paths = "//depot/code/antlr4/main/": change = 6766]
This commit is contained in:
parrt 2010-03-22 17:15:42 -08:00
parent f871e2dbf7
commit ad036f9ab1
1 changed files with 11 additions and 6 deletions

View File

@ -194,17 +194,22 @@ public class DFAMinimizer {
for (IntervalSet s : uniq) {
List<Interval> intervals = s.getIntervals();
for (Interval I : intervals) {
for (int i=I.a+1; i<=I.b; i++) {
System.out.println("kill "+i);
dfa.stateSet.remove(dfa.states.get(i));
dfa.states.set(i, null);
for (int i=I.a; i<=I.b; i++) {
if ( states[i].stateNumber != i ) { // if not one of our merged states
System.out.println("kill "+i);
DFAState d = dfa.states.get(i);
dfa.stateSet.remove(d);
if ( d.isAcceptState ) {
dfa.altToAcceptStates[d.predictsAlt].remove(d);
}
dfa.states.set(i, null);
}
}
}
}
}
private void print(boolean[][] distinct) {
void print(boolean[][] distinct) {
int n = distinct.length;
for (int i=0; i<n; i++) {
System.out.print(dfa.states.get(i).stateNumber+":");