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