private static ArgsReader ParseParameters(string[] args)
 {
     ArgsReader reader = new ArgsReader(args);
       reader.MoveNext();
       templateFileName = reader.Current;
       if (!File.Exists(templateFileName))
     Messages.TemplateFileNotFound(templateFileName);
       reader.MoveNext();
       while (!reader.EOF && !reader.Error)
       {
     switch (reader.Current.ToLower())
     {
       case "-input":
     LoadInputs(reader);
     break;
       case "-excel":
       case "-xml":
       case "-html":
     string method = reader.Current.ToLower();
     if (!reader.MoveNext() || reader.Current.StartsWith("-"))
     {
       Messages.NoExportName(method);
       reader.Error = true;
     }
     exportFiles[method] = reader.Current;
     reader.MoveNext();
     break;
       default:
     Messages.UnknownSpecifier(reader.Current);
     reader.Error = true;
     break;
     }
       }
       if (!reader.Error && exportFiles.Count == 0)
       {
     Messages.NoExportFilenames();
     reader.Error = true;
       }
       return reader;
 }
 private static void LoadInputs(ArgsReader reader)
 {
     while (reader.MoveNext() && IsExportSpec(reader.Current))
       {
     Uri uri;
     if (Uri.TryCreate(reader.Current, UriKind.Absolute, out uri) ||
       Uri.TryCreate("http://" + reader.Current, UriKind.Absolute, out uri))
     {
       positions.Add(new WebPosition(uri));
     }
     else
     {
       Messages.BadUri(reader.Current);
       reader.Error = true;
       break;
     }
       }
 }