Antlr4.Runtime.Misc.RuleDependencyChecker.ExtractRuleRelations C# (CSharp) Method

ExtractRuleRelations() private static method

private static ExtractRuleRelations ( Type recognizer ) : RuleDependencyChecker.RuleRelations
recognizer System.Type
return RuleDependencyChecker.RuleRelations
        private static RuleDependencyChecker.RuleRelations ExtractRuleRelations(Type recognizer)
        {
            string serializedATN = GetSerializedATN(recognizer);
            if (serializedATN == null)
            {
                return null;
            }
            ATN atn = new ATNDeserializer().Deserialize(serializedATN.ToCharArray());
            RuleDependencyChecker.RuleRelations relations = new RuleDependencyChecker.RuleRelations(atn.ruleToStartState.Length);
            foreach (ATNState state in atn.states)
            {
                if (!state.epsilonOnlyTransitions)
                {
                    continue;
                }
                foreach (Transition transition in state.Transitions)
                {
                    if (transition.TransitionType != TransitionType.Rule)
                    {
                        continue;
                    }
                    RuleTransition ruleTransition = (RuleTransition)transition;
                    relations.AddRuleInvocation(state.ruleIndex, ruleTransition.target.ruleIndex);
                }
            }
            return relations;
        }

Same methods

RuleDependencyChecker::ExtractRuleRelations ( TypeInfo recognizer ) : RuleDependencyChecker.RuleRelations