OvidiuS icon

Program.cs

OvidiuS | PRO | 06/14/14 11:53:36 PM UTC | 0 ⭐ | 514 👁️ | Never ⏰ | []
C# |

3.16 KB

|

None

|

0 👍

/

0 👎

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.Xml.Serialization;
 
namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            XmlSerializer serializer = new XmlSerializer(typeof(NotepadPlus));
            NotepadPlus pawnDeserialized;
            StreamReader streamReader = new StreamReader("pawn.xml");
 
            using (XmlReader xmlReader = XmlReader.Create(streamReader))
            {           
                pawnDeserialized = (NotepadPlus)serializer.Deserialize(xmlReader);
            }
 
            int i = 1;
            using (System.IO.StreamWriter file = new System.IO.StreamWriter("pawn.sublime-temp"))
            {
                foreach (var e in pawnDeserialized.Items)
                {
                    foreach (var x in e.KeyWord)
                    {
                        if (x.func != null)
                        {
                            file.Write("{ \"trigger\": " + "\"" + x.name);
                            if (x.Overload != null)
                            {
                                foreach (var c in x.Overload)
                                {
                                    file.Write("\\t" + c.descr + "\", " + "\"contents\": \""+ x.name + "(");
                                    foreach (var p in c.Param)
                                    {
                                        int cn = c.Param.Count();
 
                                        if (p.name != "" && cn != 0)
                                        {
                                            file.Write("${" + i + ":" + p.name);
                                            file.Write(cn != i ? "}, " : "}");
                                            i++;
                                        }
                                    }
                                }
                            }
                            i = 1;
                            file.Write(")\" },\n");
                        }
                      
                    }
 
                }
            }
            Console.WriteLine("Jobs done!");
 
            /* EXTRACT functions to function.txt
            var xdoc = XDocument.Load("pawn.xml");
            var keyWord = from e in xdoc.Descendants("KeyWord")
                          select new
                          {
                              name = e.Attribute("name"),
                              isFunc = e.Attribute("func"),
                          };
 
 
            using (System.IO.StreamWriter file = new System.IO.StreamWriter("function.txt"))
            {
                foreach (var functions in keyWord)
                {
                    if (functions.isFunc != null)
                    {
                        Console.WriteLine("Function name: " + functions.name.Value);
                        file.Write(functions.name.Value + "|");
                    }
                }
            }
            */
            Console.ReadLine();
        }
    }
}

Comments