protected int matchATN(CharStream input) {
		ATNState startState = atn.modeToStartState.get(mode);

		if ( debug ) {
			System.out.format(Locale.getDefault(), "matchATN mode %d start: %s\n", mode, startState);
		}

		int old_mode = mode;

		ATNConfigSet s0_closure = computeStartState(input, startState);
		boolean suppressEdge = s0_closure.hasSemanticContext;
		s0_closure.hasSemanticContext = false;

		DFAState next = addDFAState(s0_closure);
		if (!suppressEdge) {
			decisionToDFA[mode].s0 = next;
		}

		int predict = execATN(input, next);

		if ( debug ) {
			System.out.format(Locale.getDefault(), "DFA after matchATN: %s\n", decisionToDFA[old_mode].toLexerString());
		}

		return predict;
	}
Used during DFA/ATN exec to record the most recent accept configuration info
runtime/Java/src/org/antlr/v4/runtime/atn/LexerATNSimulator.java