private void ParseText(LinkedListStream <IBaseToken> stream, IBaseNode contentNode) { var nextToken = stream.Peek <DoxygenToken>(); Debug.Assert(nextToken.Kind == DoxygenTokenKind.TextStart); TextPosition textStart = nextToken.Position; TextPosition textEnd = textStart; stream.Next(); while (!stream.IsEOF) { var t = stream.Peek <DoxygenToken>(); if (t == null) { break; } if (t.Kind == DoxygenTokenKind.TextEnd) { textEnd = t.Position; stream.Next(); break; } stream.Next(); } if (contentNode != null) { int textLen = textEnd.Index - textStart.Index; string text = Source.Substring(textStart.Index, textLen).Trim(); if (text.Length > 0) { var textNode = new DoxygenNode(contentNode, new DoxygenEntity(DoxygenEntityKind.Text, new TextRange(textStart, textLen))); textNode.Entity.Value = text; textNode.Entity.EndRange = new TextRange(textEnd, 0); contentNode.AddChild(textNode); } } }