Beispiel #1
0
 /**
  * This function parses an XML file formatted like
  * what Twallan's STBL.exe awaits
  */
 private static int parseTwallanFormat(XElement Root, STBLWriter stblWriter)
 {
     bool awaits_key = true;
     bool warnings = false;
     string key = "";
     foreach(XElement elem in Root.Descendants()) {
         // KEY tag
         if (awaits_key) {
             if (elem.Name == "KEY") {
                 key = preprocessKey(elem.Value);
                 awaits_key = false;
             } else {
                 Console.WriteLine ("WARN: <KEY> awaited at {0}. Skipping.", ((IXmlLineInfo)elem).LineNumber);
                 warnings = true;
             }
         // STR tag
         } else {
             if (elem.Name == "STR") {
                 if (stblWriter.add(key, elem.Value) != 0) {
                     Console.WriteLine ("WARN: element at {0} is duplicate.", ((IXmlLineInfo)elem).LineNumber);
                 }
                 awaits_key = true;
             } else {
                 Console.WriteLine ("WARN: <STR> awaited at {0}. Skipping.", ((IXmlLineInfo)elem).LineNumber);
                 awaits_key = true;
                 warnings = true;
             }
         }
     }
     if (warnings) {
         return -2;
     }
     return 0;
 }
Beispiel #2
0
 /**
  * This is where the real things are handled.
  */
 public static int convertFile(string filein, string fileout)
 {
     try {
         XDocument doc = XDocument.Load(filein);
         STBLWriter stblWriter = new STBLWriter(fileout);
         int result;
         if (doc.Root.Name == "TEXT") {
             result = parseTwallanFormat (doc.Root, stblWriter);
         } else {
             result = parseXSTBLFormat (doc.Root, stblWriter);
         }
         stblWriter.write ();
         stblWriter.close ();
         return result;
     } catch (System.IO.FileNotFoundException e) {
         Console.WriteLine (e.Message);
         return -1;
     }
 }
Beispiel #3
0
 /**
  * This function parses an XML file in the new format
  * allowed by stblc
  */
 private static int parseXSTBLFormat(XElement Root, STBLWriter stblWriter)
 {
     Console.WriteLine("Unimplemented at the moment");
     return 0;
 }