/// <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); }
/// <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); }