@Override
		public int hashCode(ATNConfig o) {
			int hashCode = 7;
			hashCode = 31 * hashCode + o.state.stateNumber;
			hashCode = 31 * hashCode + o.alt;
			hashCode = 31 * hashCode + o.semanticContext.hashCode();
	        return hashCode;
		}
The reason that we need this is because we don't want the hash map to use
the standard hash code and equals. We need all configurations with the same
{@code (s,i,_,semctx)} to be equal. Unfortunately, this key effectively doubles
the number of objects associated with ATNConfigs. The other solution is to
use a hash table that lets us specify the equals/hashcode operation.
runtime/Java/src/org/antlr/v4/runtime/atn/ATNConfigSet.java