Exemple #1
0
        public void WriteDocs(TextWriter writer)
        {
            IndentedTextWriter writer1 = new IndentedTextWriter(writer, " ");
            List <string>      a       = new List <string> ();

            foreach (KeyValuePair <string, List <LanguageProcessor.DocCode> > doc in (IEnumerable <KeyValuePair <string, List <LanguageProcessor.DocCode> > >) this.docs)
            {
                string[] strArray          = doc.Key.Split('.');
                int      equalsInBeginning = a.GetEqualsInBeginning <string> ((IList <string>)strArray);
                writer1.Indent -= a.Count;
                writer1.Indent += equalsInBeginning;
                for (int index = equalsInBeginning; index < strArray.Length; ++index)
                {
                    writer1.WriteLine(strArray [index]);
                    ++writer1.Indent;
                }
                Dictionary <string, List <LanguageProcessor.DocCode> > dict = new Dictionary <string, List <LanguageProcessor.DocCode> > ();
                foreach (LanguageProcessor.DocCode docCode in doc.Value)
                {
                    dict.GetOldOrSetNew <string, List <LanguageProcessor.DocCode> > (docCode.code.Name).Add(docCode);
                }
                foreach (List <LanguageProcessor.DocCode> list in dict.Values)
                {
                    this.WriteCode(list, writer1);
                    writer.WriteLine();
                }
                a.Clear();
                a.AddRange((IEnumerable <string>)strArray);
            }
        }
Exemple #2
0
        private static void WriteCodeTemplates(IList <LanguageProcessor.DocCode> list, IndentedTextWriter indentedWriter, IList <CodeTemplate> templates)
        {
            Dictionary <string, List <string> >       dictionary = new Dictionary <string, List <string> > ((IEqualityComparer <string>)StringComparer.CurrentCultureIgnoreCase);
            Dictionary <string, List <CodeTemplate> > dict       = new Dictionary <string, List <CodeTemplate> > ();

            for (int index = 0; index < templates.Count; ++index)
            {
                string humanString = ((IEnumerable <string>)list [index].languages).ToHumanString <string> ();
                dict.GetOldOrSetNew <string, List <CodeTemplate> > (humanString).Add(templates [index]);
                foreach (TemplateParameter templateParameter in templates[index])
                {
                    dictionary.GetOldOrSetNew <string, List <string> > (templateParameter.name).AddRange((IEnumerable <string>)list [index].parameterDocs [templateParameter.name]);
                }
            }
            foreach (KeyValuePair <string, List <CodeTemplate> > keyValuePair in dict)
            {
                indentedWriter.WriteLine(keyValuePair.Key + ":");
                ++indentedWriter.Indent;
                foreach (CodeTemplate code in keyValuePair.Value)
                {
                    CodeTemplate.WriteDoc((TextWriter)indentedWriter, code);
                }
                --indentedWriter.Indent;
            }
            ++indentedWriter.Indent;
            List <string> stringList = new List <string> ();

            foreach (LanguageProcessor.DocCode docCode in (IEnumerable <LanguageProcessor.DocCode>)list)
            {
                if (docCode.mainDoc.Count > 0)
                {
                    stringList.AddRange((IEnumerable <string>)docCode.mainDoc);
                    break;
                }
            }
            if (stringList.Count > 0)
            {
                indentedWriter.WriteLineNoTabs("");
                foreach (string str in stringList)
                {
                    indentedWriter.WriteLine(str);
                }
            }
            if (dictionary.Count > 0)
            {
                LanguageProcessor.WriteParameters(indentedWriter, dictionary);
            }
            --indentedWriter.Indent;
        }
Exemple #3
0
        private static void WriteTerminatingStringTemplate(IList <LanguageProcessor.DocCode> list, IndentedTextWriter writer, IList <TerminatingStringTemplate> templates)
        {
            Dictionary <string, List <string> > dictionary = new Dictionary <string, List <string> > ((IEqualityComparer <string>)StringComparer.CurrentCultureIgnoreCase);
            Dictionary <string, List <TerminatingStringTemplate> > dict = new Dictionary <string, List <TerminatingStringTemplate> > ();

            for (int index = 0; index < templates.Count; ++index)
            {
                string humanString = ((IEnumerable <string>)list [index].languages).ToHumanString <string> ();
                dict.GetOldOrSetNew <string, List <TerminatingStringTemplate> > (humanString).Add(templates [index]);
                dictionary.GetOldOrSetNew <string, List <string> > (templates [index].Parameter.name).AddRange((IEnumerable <string>)list [index].parameterDocs [templates [index].Parameter.name]);
            }
            foreach (KeyValuePair <string, List <TerminatingStringTemplate> > keyValuePair in dict)
            {
                writer.WriteLine(keyValuePair.Key + ":");
                ++writer.Indent;
                foreach (TerminatingStringTemplate template in keyValuePair.Value)
                {
                    TerminatingStringTemplate.WriteDoc((TextWriter)writer, template);
                }
                --writer.Indent;
            }
            writer.WriteLineNoTabs("");
            ++writer.Indent;
            string[] strArray = (string[])null;
            foreach (LanguageProcessor.DocCode docCode in (IEnumerable <LanguageProcessor.DocCode>)list)
            {
                if (docCode.mainDoc.Count > 0)
                {
                    strArray = docCode.mainDoc.ToArray();
                    break;
                }
            }
            if (strArray != null)
            {
                foreach (string str in list[0].mainDoc)
                {
                    writer.WriteLine(str);
                }
            }
            if (dictionary.Count > 0)
            {
                LanguageProcessor.WriteParameters(writer, dictionary);
            }
            --writer.Indent;
        }
        private static void WriteTerminatingStringTemplate(IList<DocCode> list,
            IndentedTextWriter writer, IList<TerminatingStringTemplate> templates)
        {
            //TerminatingStringTemplate.WriteDoc(writer, template);

            var parameterDocs = new Dictionary<string, List<string>>(
                StringComparer.CurrentCultureIgnoreCase);

            var templatesSortedByGame = new Dictionary<string, List<TerminatingStringTemplate>>();

            for (int i = 0; i < templates.Count; i++)
            {
                string key = list[i].languages.ToHumanString();
                List<TerminatingStringTemplate> tempList = templatesSortedByGame.GetOldOrSetNew(key);
                tempList.Add(templates[i]);

                List<string> values = parameterDocs.GetOldOrSetNew(templates[i].Parameter.Name);
                values.AddRange(list[i].parameterDocs[templates[i].Parameter.Name]);
            }

            foreach (var item in templatesSortedByGame)
            {
                writer.WriteLine(item.Key + ":");
                writer.Indent++;
                foreach (var template in item.Value)
                {
                    WriteDoc(writer, template);
                }
                writer.Indent--;
            }
            writer.WriteLineNoTabs("");

            writer.Indent++;

            string[] mainDoc = null;
            foreach (var item in list)
            {
                if (item.mainDoc.Count > 0)
                {
                    mainDoc = item.mainDoc.ToArray();
                    break;
                }
            }

            if (mainDoc != null)
            {
                foreach (var item in list[0].mainDoc)
                {
                    writer.WriteLine(item);
                }
            }
            #if DEBUG
            else
            {
                writer.WriteLine("No doc for this code found.");
            }
            #endif
            if (parameterDocs.Count > 0)
            {
                WriteParameters(writer, parameterDocs);
            }
            writer.Indent--;
        }
        public void WriteDocs(TextWriter writer)
        {
            var indentedWriter = new IndentedTextWriter(writer, " ");
            List<string> names = new List<string>();

            foreach (var code in docs)
            {
                string[] newNames = code.Key.Split('.');
                int same = names.GetEqualsInBeginning(newNames);
                indentedWriter.Indent -= names.Count;
                indentedWriter.Indent += same;
                for (int i = same; i < newNames.Length; i++)
                {
                    indentedWriter.WriteLine(newNames[i]);
                    indentedWriter.Indent++;
                }

                var sortedDocs = new Dictionary<string, List<DocCode>>();
                foreach (var docCode in code.Value)
                {
                    List<DocCode> list = sortedDocs.GetOldOrSetNew(docCode.code.Name);
                    list.Add(docCode);
                }
                foreach (var list in sortedDocs.Values)
                {
                    WriteCode(list, indentedWriter);
                    writer.WriteLine();
                }

                names.Clear();
                names.AddRange(newNames);
            }
        }
        private static void WriteCodeTemplates(IList<DocCode> list, 
            IndentedTextWriter indentedWriter, 
            IList<CodeTemplate> templates)
        {
            var parameterDocs = new Dictionary<string, List<string>>(
                StringComparer.CurrentCultureIgnoreCase);

            var templatesSortedByGame = new Dictionary<string, List<CodeTemplate>>();

            for (int i = 0; i < templates.Count; i++)
            {
                string key = list[i].languages.ToHumanString();
                List<CodeTemplate> tempList = templatesSortedByGame.GetOldOrSetNew(key);
                tempList.Add(templates[i]);

                foreach (var parameter in templates[i])
                {
                    List<string> values = parameterDocs.GetOldOrSetNew(parameter.name);
                    values.AddRange(list[i].parameterDocs[parameter.name]);
                }
            }

            foreach (var item in templatesSortedByGame)
            {
                indentedWriter.WriteLine(item.Key + ":");
                indentedWriter.Indent++;
                foreach (var template in item.Value)
                {
                    CodeTemplate.WriteDoc(indentedWriter, template);
                }
                indentedWriter.Indent--;
            }

            indentedWriter.Indent++;

            List<string> mainDoc = new List<string>();
            foreach (var item in list)
            {
                if (item.mainDoc.Count > 0)
                {
                    mainDoc.AddRange(item.mainDoc);
                    break;
                }
            }

            if (mainDoc.Count > 0)
            {
                indentedWriter.WriteLineNoTabs("");
                foreach (var item in mainDoc)
                {
                    indentedWriter.WriteLine(item);
                }
            }
            #if DEBUG
            else
            {
                indentedWriter.WriteLine("No doc for this code found.");
            }
            #endif
            if (parameterDocs.Count > 0)
            {
                WriteParameters(indentedWriter, parameterDocs);
            }
            indentedWriter.Indent--;
        }