public void AddChildNode(MarkdownNode childNode) { this.childNodes.Add(childNode); }
private MarkdownNode GetNextNode() { if (_ungotNode != null) { _ungotNode = null; return _rootEnumerator.Current; } if (_rootEnumerator.MoveNext()) { return _rootEnumerator.Current; } return null; }
/// <summary> /// /// </summary> /// <param name="node"></param> /// <param name="level"></param> /// <returns> /// return headingNode if expected heading level encounterd. /// null, if higher level encountered. /// throw exception, if unexpected node encountered. /// </returns> private HeadingNode GetHeadingWithExpectedLevel(MarkdownNode node, int level) { if (node == null) { return null; } // check for appropriate header if (node.NodeType != MarkdownNodeType.Heading) { throw new HelpSchemaException(GetExtent(node), "Expect Heading"); } var headingNode = node as HeadingNode; if (headingNode.HeadingLevel < level) { UngetNode(node); return null; } if (headingNode.HeadingLevel != level) { throw new HelpSchemaException(headingNode.SourceExtent, "Expect Heading level " + level); } return headingNode; }
private SourceExtent GetExtent(MarkdownNode node) { TextNode textNode = node as TextNode; if (textNode != null) { return textNode.SourceExtent; } ParagraphNode paragraphNode = node as ParagraphNode; if (paragraphNode != null && paragraphNode.Spans.Any()) { return paragraphNode.Spans.First().SourceExtent; } return new SourceExtent("", 0, 0, 0, 0); }
private void UngetNode(MarkdownNode node) { if (_ungotNode != null) { throw new ArgumentException("Cannot ungot token, already ungot one"); } _ungotNode = node; }