Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
            }
        }