Lines Matching refs:reach
45 * requests go through the DFA first. If they reach a state without an edge for
70 * The next time we reach this DFA state with an SLL conflict, through DFA
150 * When we start in the DFA and reach an accept state that's predicated, we test
651 $reach = $this->computeReachSet($previousD->configs, $t, false);
653 if ($reach === null) {
660 $D = new DFAState($reach);
662 $predictedAlt = self::getUniqueAlt($reach);
665 $altSubSets = PredictionMode::getConflictingAltSubsets($reach);
671 (string) $reach,
674 $this->getConflictingAlts($reach)
684 } elseif (PredictionMode::hasSLLConflictTerminatingPrediction($this->mode, $reach)) {
687 $D->configs->setConflictingAlts($this->getConflictingAlts($reach));
725 // Update DFA so reach becomes accept state with (predicate,alt) pairs
750 * Comes back with reach.uniqueAlt set to a valid alt.
766 $reach = null;
773 $reach = $this->computeReachSet($previous, $t, $fullCtx);
775 if ($reach === null) {
800 $altSubSets = PredictionMode::getConflictingAltSubsets($reach);
811 $reach->uniqueAlt = self::getUniqueAlt($reach);
814 if ($reach->uniqueAlt !== ATN::INVALID_ALT_NUMBER) {
815 $predictedAlt = $reach->uniqueAlt;
841 $previous = $reach;
851 if ($reach->uniqueAlt !== ATN::INVALID_ALT_NUMBER) {
852 $this->reportContextSensitivity($dfa, $predictedAlt, $reach, $startIndex, $input->getIndex());
885 $this->reportAmbiguity($dfa, $D, $startIndex, $input->getIndex(), $foundExactAmbig, null, $reach);
909 * For full-context reach operations, separate handling is required to
915 // First figure out where we can reach on input t
955 // Now figure out where the reach operation can take us...
957 $reach = null;
959 /* This block optimizes the reach operation for intermediate sets which
964 * relevant to the reach set, but this condition is not true when one
975 $reach = $intermediate;
978 $reach = $intermediate;
982 // If the reach set could not be trivially determined, perform a closure
984 if ($reach === null) {
985 $reach = new ATNConfigSet($fullCtx);
990 $this->closure($item, $reach, $closureBusy, false, $fullCtx, $treatEofAsEpsilon);
998 * context). Update reach to contain only these configurations. This
1002 * When reach==intermediate, no closure operation was performed. In
1013 $reach = $this->removeAllConfigsNotInRuleStopState($reach, $reach->equals($intermediate));
1017 * configuration. For full-context reach operations, these
1019 * only add them back to reach if no configuration during the current
1024 if ($skippedStopStates !== null && (!$fullCtx || !PredictionMode::hasConfigInRuleStopState($reach))) {
1030 $reach->add($lValue, $this->mergeCache);
1034 if ($reach->isEmpty()) {
1038 return $reach;
1114 * predicates evaluated when we reach conflict state (or unique prediction).
1406 * - If a syntactically valid path or paths reach the end of the decision rule and
1585 * closure operations if we reach a DFA state that uniquely predicts
1814 * We need to detect any state that can reach loop entry on
2243 After matching input A, we reach the stop state for rule A, state 1.