public override void Run(IEnumerable <string> args) { var validFormats = RootTree.GetSupportedFormats(); string cur_format = ""; var formats = new Dictionary <string, List <string> > (); var options = new OptionSet() { { "f|format=", "The documentation {FORMAT} used in FILES. " + "Valid formats include:\n " + string.Join("\n ", validFormats) + "\n" + "If not specified, no HelpSource is used. This may " + "impact the PublicUrls displayed for nodes.", v => { if (Array.IndexOf(validFormats, v) < 0) { Error("Invalid documentation format: {0}.", v); } cur_format = v; } }, { "<>", v => AddFormat(formats, cur_format, v) }, }; List <string> files = Parse(options, args, "dump-tree", "[OPTIONS]+ FILES", "Print out the nodes within the assembled .tree FILES,\n" + "as produced by 'mdoc assemble'."); if (files == null) { return; } foreach (string format in formats.Keys) { foreach (string file in formats[format]) { HelpSource hs = format == "" ? null : RootTree.GetHelpSource(format, file.Replace(".tree", "")); Tree t = new Tree(hs, file); Node.PrintTree(t); } } }