From state s, look for any transition to a rule that is currently
being traced. When tracing r, visitedPerRuleCheck has r
initially. If you reach a rule stop state, return but notify the
invoking rule that the called rule is nullable. This implies that
invoking rule must look at follow transition for that invoking state.
The visitedStates tracks visited states within a single rule so
we can avoid epsilon-loop-induced infinite recursion here. Keep
filling the cycles in listOfRecursiveCycles and also, as a
side-effect, set leftRecursiveRules.