Antlr4.Runtime.Atn.ParserATNSimulator.GetSynValidOrSemInvalidAltThatFinishedDecisionEntryRule C# (CSharp) Метод

GetSynValidOrSemInvalidAltThatFinishedDecisionEntryRule() защищенный Метод

protected GetSynValidOrSemInvalidAltThatFinishedDecisionEntryRule ( ATNConfigSet configs, ParserRuleContext outerContext ) : int
configs ATNConfigSet
outerContext ParserRuleContext
Результат int
        protected int GetSynValidOrSemInvalidAltThatFinishedDecisionEntryRule(ATNConfigSet configs,
																			  ParserRuleContext outerContext)
        {
            Pair<ATNConfigSet, ATNConfigSet> sets =
                SplitAccordingToSemanticValidity(configs, outerContext);
            ATNConfigSet semValidConfigs = sets.a;
            ATNConfigSet semInvalidConfigs = sets.b;
            int alt = getAltThatFinishedDecisionEntryRule(semValidConfigs);
            if (alt != ATN.INVALID_ALT_NUMBER)
            { // semantically/syntactically viable path exists
                return alt;
            }
            // Is there a syntactically valid path with a failed pred?
            if (semInvalidConfigs.Count > 0)
            {
                alt = getAltThatFinishedDecisionEntryRule(semInvalidConfigs);
                if (alt != ATN.INVALID_ALT_NUMBER)
                { // syntactically viable path exists
                    return alt;
                }
            }
            return ATN.INVALID_ALT_NUMBER;
        }