X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fcarfire;a=blobdiff_plain;f=CarFire%2FCarFire%2FCarFire%2FParse.cs;h=2df3ca73028aadadc36013bb529593b988e38dfd;hp=169cf30a7b8340b59af9aa61aae521c9e7c04ad8;hb=722dcd763d115992b2a56d4001db80d11e583064;hpb=7fa101e60a4bc35dfd5dabf8f66811e3f8cfa673
diff --git a/CarFire/CarFire/CarFire/Parse.cs b/CarFire/CarFire/CarFire/Parse.cs
index 169cf30..2df3ca7 100644
--- a/CarFire/CarFire/CarFire/Parse.cs
+++ b/CarFire/CarFire/CarFire/Parse.cs
@@ -9,7 +9,8 @@ namespace CarFire
{
///
/// Class with handy static methods taking strings and returning objects
- /// parsed from those strings.
+ /// parsed from those strings. For all of these functions, white space is
+ /// generally ignored, but any superfluous characters will make the parse fail.
///
public class Parse
{
@@ -25,6 +26,18 @@ namespace CarFire
return null;
}
+ ///
+ /// Parses a comment of an INI file.
+ ///
+ /// Text.
+ /// The comment.
+ public static string IniComment(string line)
+ {
+ Match match = Regex.Match(line, @"^;\s*(.*)\s*$");
+ if (match.Success) return match.Groups[1].Value;
+ return null;
+ }
+
///
/// Parses a key-value pair.
///
@@ -96,6 +109,18 @@ namespace CarFire
return null;
}
+ ///
+ /// Parses a single character.
+ ///
+ /// Text.
+ /// The character, or null if parsing failed.
+ public static char? Char(string atom)
+ {
+ string str = String(atom);
+ if (str != null && str.Length == 1) return str[0];
+ return null;
+ }
+
///
/// Parses a constant from an enum.
///
@@ -182,7 +207,6 @@ namespace CarFire
// FIXME: This may barf all over itself if there are nested parentheses, doublequotes, brackets, etc.
foreach (Match match in matches)
{
- Console.WriteLine("matched: " + match.Value);
list.Add(match.Value);
}