Mercurial > defical
diff defical-sharp/defical-cli/argumentparser.cs @ 0:ebed2bd0d300
Initial import from svn. History be damned.
author | Edho P. Arief <me@myconan.net> |
---|---|
date | Fri, 02 Apr 2010 23:11:57 +0700 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/defical-sharp/defical-cli/argumentparser.cs Fri Apr 02 23:11:57 2010 +0700 @@ -0,0 +1,131 @@ +namespace defical_cli +{ + public partial class Program + { + private partial class main + { + private bool getArguments(string[] args) + { + bool ret = true; + int numArgs = args.Length; + for (int i = 0; i < numArgs; i++) + { + switch (args[i].Substring(0, 1)) + { + case "-": + { + switch (args[i].Substring(1, 1)) + { + case "g": + { + args[i] = "--graph"; + i--; + break; + } + case "n": + { + args[i] = "--numver"; + i--; + break; + } + case "d": + { + args[i] = "--numdef"; + i--; + break; + } + case "a": + { + args[i] = "--algorithm"; + i--; + break; + } + case "-": + { + if (i < numArgs - 1) + { + switch (args[i].Substring(2)) + { + case "graph": + #region graphparser + { + switch (args[i + 1]) + { + case "wheel": + case "fan": + case "doublefan": + { + this.graphType = args[i + 1]; + break; + } + default: + { + ret = false; + break; + } + } + break; + } + #endregion + case "numver": + #region numverparser + { + int tempNumVer = -1; + if (parseNum(args[i + 1], 5, 10, out tempNumVer)) + { + this.numVer = tempNumVer; + } + else { ret = false; } + break; + } + #endregion + case "numdef": + #region numdefparser + { + int tempNumDef = -1; + if (parseNum(args[i + 1], 0, 10, out tempNumDef)) + { + this.numDef = tempNumDef; + } + else { ret = false; } + break; + } + #endregion + case "algorithm": + #region algorithmparser + { + switch (args[i + 1]) + { + case "backtrack": + this.algorithm = args[i + 1]; + break; + default: + ret = false; + break; + } + break; + } + #endregion + } + i++; + } + else { ret = false; } + break; + } + } + break; + } + default: + { + ret = false; + break; + } + } + } + //TODO + return ret; + } + + } + } +} \ No newline at end of file