private static void IdentifyTailCalls(ATN atn)
{
foreach (ATNState state in atn.states)
{
foreach (Transition transition in state.transitions)
{
if (!(transition is RuleTransition))
{
continue;
}
RuleTransition ruleTransition = (RuleTransition)transition;
ruleTransition.tailCall = TestTailCall(atn, ruleTransition, false);
ruleTransition.optimizedTailCall = TestTailCall(atn, ruleTransition, true);
}
if (!state.IsOptimized)
{
continue;
}
foreach (Transition transition_1 in state.optimizedTransitions)
{
if (!(transition_1 is RuleTransition))
{
continue;
}
RuleTransition ruleTransition = (RuleTransition)transition_1;
ruleTransition.tailCall = TestTailCall(atn, ruleTransition, false);
ruleTransition.optimizedTailCall = TestTailCall(atn, ruleTransition, true);
}
}
}