+-------------------------------------------------------------+
|                                                             |
|                    Console Utilities 1.2                    |
|             Copyright  2007 by Matthew Johnson             |
|                   University of Cambridge                   |
|http://mi.eng.cam.ac.uk/~mj293/software_consoleUtilities.html|
|                                                             |
+-------------------------------------------------------------+

Thank you for downloading this library.  Look in the provided
help document for full information on all options.  If you want
to get started quickly, here is some example code to get you
going:

// We build up each argument separately, and then add them to the 
// parser. First we'll build some data arguments, which take 
// arguments themselves. 
DataArgument foo = new DataArgument("foo", 1, "arg0 foos"); 

// Another kind of argument is a switch argument, one which can 
// have several distinct values, much like an enumeration 
SwitchArgument bar = new SwitchArgument("bar"); 
bar.AddOption("foo", "Bars with foo"); 
bar.AddOption("frob", "Bars with frob"); 

// The final kind of argument is a flag, a boolean on/off 
// switch. If you want to implement your own arguments, 
// look at the IArgument interface. 
FlagArgument baz = new FlagArgument("baz", "use baz when fooing"); 

// Now we build up the parser. 
ArgumentParser parser = new ArgumentParser(); 
parser.AddArgument(foo); parser.AddArgument(bar); 
parser.AddArgument(baz); 

// The parser will return a Dictionary containing key/value 
// pairs corresponding to the arguments it knows. If there 
// is a problem, it will throw an exception whose Message 
// property will describe what is wrong. 
Dictionary<string,object> options; 
try 
{ 
        options = parser.Parse(args); 
}
catch (Exception e)
{ 
        Console.Error.WriteLine("{0}\n", e.Message); 
        Console.Error.WriteLine(parser.Usage()); 
        Environment.Exit(1);
} 

string fooArg = (string)options["foo"]; 
string barSwitch = (string)options["bar"]; 
if(barSwitch == "foo" && (bool)options["baz"])
        Console.WriteLine("Frobnosticate");


==================== Revision Information ====================

Version 1.2 (23/3/2007)
-----------------------
* Added the IntArgument and Double Argument Types
* Added the Pinwheel type
* Fixed various small bugs, completed the documentation

Version 1.1 (14/2/2007)
-----------------------

* First public release.