+ var showHelp = false;
+ List<string> extra = null;
+
+ Command cmd = null;
+
+ if (args[0] == "store-symbols")
+ cmd = new Command (StoreSymbolsAction, 2);
+
+ if (cmd != null) {
+ args = args.Skip (1).ToArray ();
+ } else {
+ cmd = new Command (SymbolicateAction, 2, 2);
+ }
+
+ var options = new OptionSet {
+ { "h|help", "Show this help", v => showHelp = true },
+ };
+
+ try {
+ extra = options.Parse (args);
+ } catch (OptionException e) {
+ Console.WriteLine ("Option error: {0}", e.Message);
+ showHelp = true;
+ }
+
+ if (showHelp || extra == null || extra.Count < cmd.MinArgCount || extra.Count > cmd.MaxArgCount) {