예제 #1
0
            public void AssignAnchors(YamlDocument document)
            {
                existingAnchors.Clear();
                visitedNodes.Clear();

                document.Accept(this);

                Random random = new Random();

                foreach (var visitedNode in visitedNodes)
                {
                    if (visitedNode.Value)
                    {
                        string anchor;
                        do
                        {
                            anchor = random.Next().ToString(CultureInfo.InvariantCulture);
                        } while (existingAnchors.Contains(anchor));
                        existingAnchors.Add(anchor);

                        visitedNode.Key.Anchor = anchor;
                    }
                }
            }
예제 #2
0
 /// <summary>
 /// Called after this object finishes visiting a <see cref="YamlDocument"/>.
 /// </summary>
 /// <param name="document">
 /// The <see cref="YamlDocument"/> that has been visited.
 /// </param>
 protected virtual void Visited(YamlDocument document)
 {
     // Do nothing.
 }
예제 #3
0
 /// <summary>
 /// Called when this object is visiting a <see cref="YamlDocument"/>.
 /// </summary>
 /// <param name="document">
 /// The <see cref="YamlDocument"/> that is being visited.
 /// </param>
 protected virtual void Visit(YamlDocument document)
 {
     VisitChildren(document);
 }
예제 #4
0
 void IYamlVisitor.Visit(YamlDocument document)
 {
     Visit(document);
     Visited(document);
 }