Antlr4.Runtime.Atn.ParserATNSimulator.SplitAccordingToSemanticValidity C# (CSharp) Method

SplitAccordingToSemanticValidity() protected method

protected SplitAccordingToSemanticValidity ( ATNConfigSet configSet, ParserRuleContext outerContext ) : ATNConfigSet>.Pair
configSet ATNConfigSet
outerContext ParserRuleContext
return ATNConfigSet>.Pair
        protected Pair<ATNConfigSet, ATNConfigSet> SplitAccordingToSemanticValidity(
												  ATNConfigSet configSet,
			ParserRuleContext outerContext)
        {
            ATNConfigSet succeeded = new ATNConfigSet(configSet.fullCtx);
            ATNConfigSet failed = new ATNConfigSet(configSet.fullCtx);
            foreach (ATNConfig c in configSet.configs)
            {
                if (c.semanticContext != SemanticContext.NONE)
                {
                    bool predicateEvaluationResult = EvalSemanticContext(c.semanticContext, outerContext, c.alt, configSet.fullCtx);
                    if (predicateEvaluationResult)
                    {
                        succeeded.Add(c);
                    }
                    else {
                        failed.Add(c);
                    }
                }
                else {
                    succeeded.Add(c);
                }
            }
            return new Pair<ATNConfigSet, ATNConfigSet>(succeeded, failed);
        }