Пример #1
0
            static void ThrowIfNodeHasRecursiveTypeDefenitionReq(TicNode node, int bypassNumber)
            {
                if (node.VisitMark == bypassNumber)
                {
                    var route = new HashSet <TicNode>();
                    FindRecursionTypeRoute(node, route);
                    throw TicErrors.RecursiveTypeDefinition(route.ToArray());
                }

                var markBefore = node.VisitMark;

                node.VisitMark = bypassNumber;
                ThrowIfStateHasRecursiveTypeDefeinitionReq(node.State, bypassNumber);
                node.VisitMark = markBefore;
            }
Пример #2
0
 private void ThrowRecursiveTypeDefenition(TicNode node)
 {
     _cycle.Push(node);
     throw TicErrors.RecursiveTypeDefinition(_cycle.ToArray());
 }