AddRuleInvocation() публичный Метод

public AddRuleInvocation ( int caller, int callee ) : bool
caller int
callee int
Результат bool
Пример #1
0
        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);
        }
Пример #2
0
 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;
 }