public AddRuleInvocation ( int caller, int callee ) : bool | ||
caller | int | |
callee | int | |
return | bool |
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.GetTransitions()) { if (transition.TransitionType != TransitionType.Rule) { continue; } RuleTransition ruleTransition = (RuleTransition)transition; relations.AddRuleInvocation(state.ruleIndex, ruleTransition.target.ruleIndex); } } return(relations); }
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; }