Add a new DFA state if there isn't one with this set of configurations already. This method also detects the first configuration containing an ATN rule stop state. Later, when traversing the DFA, we will know which rule to accept.
@uml @override
@uml Since the alternatives within any lexer decision are ordered by preference, this method stops pursuing the closure as soon as an accept state is reached. After the first accept state is reached by depth-first search from {@code config}, all other (potentially reachable) states for this rule would have a lower priority.
@uml Compute a target state for an edge in the DFA, and attempt to add the computed state and corresponding edge to the DFA.
@uml Evaluate a predicate specified in the lexer.
side-effect: can alter configs.hasSemanticContext
@uml Get an existing target state for an edge in the DFA. If the target state for the edge has not yet been computed or is otherwise not available, this method returns {@code null}.
@uml Given a starting configuration set, figure out all ATN configurations we can reach upon input {@code t}. Parameter {@code reach} is a return parameter.
@uml @override
@uml The index of the character relative to the beginning of the line 0..n-1
@uml line number 1..n within the input
@uml The current token's starting index into the character stream. Shared across DFA to ATN simulation in case the ATN fails and the DFA did not have a previous accept state. In this case, we use the ATN-generated exception object.
@uml This is the current serialized UUID. deprecated Use {@link ATNDeserializer#checkCondition(boolean)} instead.
@uml Must distinguish between missing edge and edge we know leads nowhere
The context cache maps all PredictionContext objects that are equals() to a single cached copy. This cache is shared across all contexts in all ATNConfigs in all DFA states. We rebuild each ATNConfigSet to use only cached nodes/graphs in addDFAState(). We don't want to fill this during closure() since there are lots of contexts that pop up but are not used ever again. It also greatly slows down closure().
@uml Clear the DFA cache used by the current instance. Since the DFA cache may be shared by multiple ATN simulators, this method may affect the performance (but not accuracy) of other parsers which are being used concurrently.
@uml deprecated Use {@link ATNDeserializer#deserialize} instead.
"dup" of ParserInterpreter