]> Dogcows Code - chaz/carfire/blobdiff - CarFire/CarFire/CarFire/Parse.cs
Fixed path finder thrown exception when finding a path to the cell you are already at.
[chaz/carfire] / CarFire / CarFire / CarFire / Parse.cs
index 169cf30a7b8340b59af9aa61aae521c9e7c04ad8..4c2abcc416fd972cc14fef4f03b3fb279c2d2b33 100644 (file)
@@ -9,7 +9,8 @@ namespace CarFire
 {\r
     /// <summary>\r
     /// Class with handy static methods taking strings and returning objects\r
-    /// parsed from those strings.\r
+    /// parsed from those strings.  For all of these functions, white space is\r
+    /// generally ignored, but superfluous characters are not allowed.\r
     /// </summary>\r
     public class Parse\r
     {\r
@@ -25,6 +26,18 @@ namespace CarFire
             return null;\r
         }\r
 \r
+        /// <summary>\r
+        /// Parses a comment of an INI file.\r
+        /// </summary>\r
+        /// <param name="line">Text.</param>\r
+        /// <returns>The comment, or null if parsing failed.</returns>\r
+        public static string IniComment(string line)\r
+        {\r
+            Match match = Regex.Match(line, @"^;\s*(.*)\s*$");\r
+            if (match.Success) return match.Groups[1].Value;\r
+            return null;\r
+        }\r
+\r
         /// <summary>\r
         /// Parses a key-value pair.\r
         /// </summary>\r
@@ -96,6 +109,18 @@ namespace CarFire
             return null;\r
         }\r
 \r
+        /// <summary>\r
+        /// Parses a single character.\r
+        /// </summary>\r
+        /// <param name="atom">Text.</param>\r
+        /// <returns>The character, or null if parsing failed.</returns>\r
+        public static char? Char(string atom)\r
+        {\r
+            string str = String(atom);\r
+            if (str != null && str.Length == 1) return str[0];\r
+            return null;\r
+        }\r
+\r
         /// <summary>\r
         /// Parses a constant from an enum.\r
         /// </summary>\r
@@ -106,7 +131,7 @@ namespace CarFire
         {\r
             try\r
             {\r
-                return (T)System.Enum.Parse(typeof(T), String(atom), true);\r
+                return (T)System.Enum.Parse(typeof(T), String(atom));\r
             }\r
 #pragma warning disable 0168\r
             catch (System.Exception ex)\r
@@ -156,7 +181,7 @@ namespace CarFire
         /// Parses a function.\r
         /// </summary>\r
         /// <param name="atom">Text.</param>\r
-        /// <returns>An array two strings containing the function name and\r
+        /// <returns>An array with two strings containing the function name and\r
         /// parameter-list, in that order, or null if parsing failed.</returns>\r
         public static string[] Function(string atom)\r
         {\r
@@ -182,7 +207,6 @@ namespace CarFire
             // FIXME: This may barf all over itself if there are nested parentheses, doublequotes, brackets, etc.\r
             foreach (Match match in matches)\r
             {\r
-                Console.WriteLine("matched: " + match.Value);\r
                 list.Add(match.Value);\r
             }\r
 \r
This page took 0.019008 seconds and 4 git commands to generate.