@Override
    public boolean equals(Object o) {
		if (!(o instanceof ATNConfig)) {
			return false;
		}

		return this.equals((ATNConfig)o);
	}
An ATN configuration is equal to another if both have
 the same state, they predict the same alternative, and
 syntactic/semantic contexts are the same.
runtime/Java/src/org/antlr/v4/runtime/atn/ATNConfig.java