protected int failOrAccept(SimState prevAccept, CharStream input,
							   ATNConfigSet reach, int t)
	{
		if (prevAccept.dfaState != null) {
			LexerActionExecutor lexerActionExecutor = prevAccept.dfaState.lexerActionExecutor;
			accept(input, lexerActionExecutor, startIndex,
				prevAccept.index, prevAccept.line, prevAccept.charPos);
			return prevAccept.dfaState.prediction;
		}
		else {
			// if no accept and EOF is first char, return EOF
			if ( t==IntStream.EOF && input.index()==startIndex ) {
				return Token.EOF;
			}

			throw new LexerNoViableAltException(recog, input, startIndex, reach);
		}
	}
Compute a target state for an edge in the DFA, and attempt to add the
computed state and corresponding edge to the DFA.

@param input The input stream
@param s The current DFA state
@param t The next input symbol

@return The computed target DFA state for the given input symbol
{@code t}. If {@code t} does not lead to a valid DFA state, this method
returns {@link #ERROR}.
runtime/Java/src/org/antlr/v4/runtime/atn/LexerATNSimulator.java