/// <summary> /// AE: file != null && !docs.ContainsKey(file) && lines != null /// </summary> /// <param name="file"></param> /// <param name="lines"></param> private void ParseLinesInFile(string file, IEnumerable<string> lines) { List<LanguageElement> elements = new List<LanguageElement>(); LanguageElement newElement = new LanguageElement(); foreach (var line in lines) { if (line.ContainsNonWhiteSpace()) { if (line[0] == '#') { if (collectDocComments && line.Length > 1 && line[1] == '#') { newElement.AddDoc(line.Substring(2)); } } else { newElement.SetMainLine(line); elements.Add(newElement); newElement = new LanguageElement(); } } } if (collectDocComments) { int index = 0; while (index < elements.Count) { DocCode doc = MakeCode(elements, ref index); foreach (var language in doc.languages) { AddCode(doc, language); } //var temp = doc.parameterDocs["ID"]; string key = file.Replace('\\', '.'); List<DocCode> docList = docs.GetOldOrSetNew(key); docList.Add(doc); } this.elements[file] = elements; } else { int index = 0; while (index < elements.Count) { DocCode doc = MakeCode(elements, ref index); foreach (var language in doc.languages) { AddCode(doc, language); } } } }