protected int getAltThatFinishedDecisionEntryRule(ATNConfigSet configs) {
		IntervalSet alts = new IntervalSet();
		for (ATNConfig c : configs) {
			if ( c.getOuterContextDepth()>0 || (c.state instanceof RuleStopState && c.context.hasEmptyPath()) ) {
				alts.add(c.alt);
			}
		}
		if ( alts.size()==0 ) return ATN.INVALID_ALT_NUMBER;
		return alts.getMinElement();
	}
This method is used to improve the localization of error messages by
choosing an alternative rather than throwing a
{@link NoViableAltException} in particular prediction scenarios where the
{@link #ERROR} state was reached during ATN simulation.

<p>
The default implementation of this method uses the following
algorithm to identify an ATN configuration which successfully parsed the
decision entry rule. Choosing such an alternative ensures that the
{@link ParserRuleContext} returned by the calling rule will be complete
and valid, and the syntax error will be reported later at a more
localized location.</p>

<ul>
<li>If a syntactically valid path or paths reach the end of the decision rule and
they are semantically valid if predicated, return the min associated alt.</li>
<li>Else, if a semantically invalid but syntactically valid path exist
or paths exist, return the minimum associated alt.
</li>
<li>Otherwise, return {@link ATN#INVALID_ALT_NUMBER}.</li>
</ul>

<p>
In some scenarios, the algorithm described above could predict an
alternative which will result in a {@link FailedPredicateException} in
the parser. Specifically, this could occur if the <em>only</em> configuration
capable of successfully parsing to the end of the decision rule is
blocked by a semantic predicate. By choosing this alternative within
{@link #adaptivePredict} instead of throwing a
{@link NoViableAltException}, the resulting
{@link FailedPredicateException} in the parser will identify the specific
predicate which is preventing the parser from successfully parsing the
decision rule, which helps developers identify and correct logic errors
in semantic predicates.
</p>

@param configs The ATN configurations which were valid immediately before
the {@link #ERROR} state was reached
@param outerContext The is the \gamma_0 initial parser context from the paper
or the parser stack at the instant before prediction commences.

@return The value to return from {@link #adaptivePredict}, or
{@link ATN#INVALID_ALT_NUMBER} if a suitable alternative was not
identified and {@link #adaptivePredict} should report an error instead.
runtime/Java/src/org/antlr/v4/runtime/atn/ParserATNSimulator.java