forked from jasder/antlr
PredictionContext instances are not naturally ordered, so remove Comparable implementation
This commit is contained in:
parent
4c45a4bc66
commit
84324f1dad
|
@ -40,13 +40,13 @@ import org.antlr.v4.runtime.misc.Nullable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.IdentityHashMap;
|
import java.util.IdentityHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public abstract class PredictionContext implements Comparable<PredictionContext> // to sort node lists by id
|
public abstract class PredictionContext {
|
||||||
{
|
|
||||||
/**
|
/**
|
||||||
* Represents {@code $} in local context prediction, which means wildcard.
|
* Represents {@code $} in local context prediction, which means wildcard.
|
||||||
* {@code *+x = *}.
|
* {@code *+x = *}.
|
||||||
|
@ -130,11 +130,6 @@ public abstract class PredictionContext implements Comparable<PredictionContext>
|
||||||
return getReturnState(size() - 1) == EMPTY_RETURN_STATE;
|
return getReturnState(size() - 1) == EMPTY_RETURN_STATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public int compareTo(PredictionContext o) { // used for toDotString to print nodes in order
|
|
||||||
return id - o.id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final int hashCode() {
|
public final int hashCode() {
|
||||||
return cachedHashCode;
|
return cachedHashCode;
|
||||||
|
@ -550,7 +545,12 @@ public abstract class PredictionContext implements Comparable<PredictionContext>
|
||||||
buf.append("rankdir=LR;\n");
|
buf.append("rankdir=LR;\n");
|
||||||
|
|
||||||
List<PredictionContext> nodes = getAllContextNodes(context);
|
List<PredictionContext> nodes = getAllContextNodes(context);
|
||||||
Collections.sort(nodes);
|
Collections.sort(nodes, new Comparator<PredictionContext>() {
|
||||||
|
@Override
|
||||||
|
public int compare(PredictionContext o1, PredictionContext o2) {
|
||||||
|
return o1.id - o2.id;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
for (PredictionContext current : nodes) {
|
for (PredictionContext current : nodes) {
|
||||||
if ( current instanceof SingletonPredictionContext ) {
|
if ( current instanceof SingletonPredictionContext ) {
|
||||||
|
|
Loading…
Reference in New Issue