Ejemplo n.º 1
0
        /// <summary>
        ///     读取文档杂注@#...#@
        /// </summary>
        protected void ReadFileRem()
        {
            if (++CurWordIndex >= WordElements.Count)
            {
                return;
            }
            WordElement code  = new WordElement();
            bool        shfit = false;

            for (++CurWordIndex; CurWordIndex < WordElements.Count; CurWordIndex++)
            {
                WordElements[CurWordIndex].SetRace(CodeItemRace.Assist, CodeItemFamily.Rem);
                var curElement = WordElements[CurWordIndex];

                if (shfit && curElement.Char == '@')
                {
                    break;
                }
                shfit = curElement.Char == '#';

                code.Append(curElement);
            }
            if (code.Words.Count == 0)
            {
                return;
            }
            code.Release();
            CheckConfig(code);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     合并字符
        /// </summary>
        /// <param name="codeElement">代码块</param>
        /// <param name="sign">字符使用哪个符号(一般都是"或')</param>
        protected void MergeString(WordElement codeElement, char sign)
        {
            var preShift = false;

            for (CurWordIndex++; CurWordIndex < WordElements.Count; CurWordIndex++)
            {
                var curElement = WordElements[CurWordIndex];
                codeElement.Append(curElement);
                if (preShift)
                {
                    preShift = false; //前方为转义字符不处理
                    continue;
                }
                if (curElement.Char == '\\')
                {
                    preShift = true;
                    continue;
                }
                if (curElement.Char == sign)
                {
                    break; //成对出现,结束字符串识别
                }
            }
            codeElement.SetRace(CodeItemRace.Value, CodeItemFamily.Constant, CodeItemType.String);
        }