public LuaDocumentStatement(string triviaText) { var items = triviaText.Replace("///", string.Empty) .Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries) .Select(i => i.Trim()).ToList(); int curIndex = 0; while (curIndex < items.Count) { int beginIndex = items.FindIndex(curIndex, i => i == Tokens.OpenSummary); if (beginIndex != -1) { AddLineText(items, curIndex, beginIndex); int endIndex = items.FindIndex(beginIndex + 1, it => it == Tokens.CloseSummary); if (endIndex != -1) { LuaSummaryDocumentStatement summary = new LuaSummaryDocumentStatement(); bool hasAttr = false; for (int i = beginIndex + 1; i < endIndex; ++i) { string text = items[i]; if (IsAttribute(text, out AttributeFlags arrt)) { attr_ |= arrt; hasAttr = true; } else { summary.Texts.Add(text); } } if (summary.Texts.Count > 0 || !hasAttr) { Statements.Add(summary); } curIndex = endIndex + 1; } else { AddLineText(items, curIndex, items.Count); curIndex = items.Count; } } else { AddLineText(items, curIndex, items.Count); curIndex = items.Count; } } }
private bool IsEmptyDocument(LuaSummaryDocumentStatement document) { if (document.Texts.Count == 0) { return(true); } if (attr_ != AttributeFlags.None && document.Texts.Count == 2) { return(document.Texts[0] == "<summary>" && document.Texts[1] == "</summary>"); } return(false); }
public LuaDocumentStatement(string triviaText) { var items = triviaText.Replace("///", string.Empty) .Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries) .Select(i => i.Trim()).ToList(); var document = new LuaSummaryDocumentStatement(); foreach (var item in items) { if (IsAttribute(item, out AttributeFlags arrt)) { attr_ |= arrt; } else { document.Texts.Add(item); } } if (document.Texts.Count > 0) { Statements.Add(document); } }