Exemple #1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="tag">TypeCobol type</param>
 /// <param name="usage">Usage format</param>
 internal TypeCobolType(Tags tag, UsageFormat usage = UsageFormat.None)
 {
     this.Tag   = tag;
     this.Usage = usage;
 }
Exemple #2
0
        /// <summary>
        /// Helper to format usage messages for a program.
        /// </summary>
        /// <param name="mode">
        /// Controls what is to be formatted.
        /// </param>
        /// <param name="pars">
        /// Usually an array of strings, see remarks.
        /// </param>
        /// <returns>
        /// The formatted result.
        /// </returns>
        /// <remarks>
        /// The parameter array must be an array of strings when using
        /// <see cref="UsageFormat.Options"/>.  For all other formats
        /// the <see cref="object.ToString"/> gets called.
        /// </remarks>
        /// <b>Example:</b>
        /// <code>
        /// private static string[] options = {
        ///     "server",   "host",     "Connect to a server at {host}",
        ///     "protocol", "name",     "Use the protocol {name}        (default: imap)",
        ///     "account",  "user",     "Login using the {user} account",
        ///     "password", "text",     "Use the login password {text}",
        ///     "timeout",  "seconds",  "Connection/Read/Write timeout  (default: 30)",
        ///     "ascii",    "",         "Do not use line drawing chars or colors",
        ///     "debug",    "",         "Output debug information",
        ///     "help",     "",         "Print this text and quit",
        /// };
        /// 
        /// public static void Usage()
        /// {   Console.WriteLine(ArgsTool.Usage(ArgsTool.UsageFormat.Usage,
        ///                   ArgsTool.Param(options, "server",  false),
        ///                   ArgsTool.Param(options, "protocol", true),
        ///                   ArgsTool.Param(options, "account",  true)));
        ///     Console.WriteLine(ArgsTool.Usage(ArgsTool.UsageFormat.Cont,
        ///                   ArgsTool.Param(options, "password", true),
        ///                   ArgsTool.Param(options, "timeout",  true),
        ///                   ArgsTool.Param(options, "ascii",    true),
        ///                   ArgsTool.Param(options, "debug",    true)));
        ///     Console.WriteLine(ArgsTool.Usage(ArgsTool.UsageFormat.More, "-help"));
        ///     Console.WriteLine("\n{0}\n",
        ///                   ArgsTool.Usage(ArgsTool.UsageFormat.Options, options));
        /// }
        /// </code>
        public static string Usage(UsageFormat mode, params object[] pars)
        {
            StringBuilder sb = new StringBuilder();
            if(mode == UsageFormat.Usage)
                sb.Append("Usage:   " + ArgsTool.AppName);
            else if(mode == UsageFormat.More)
                sb.Append("         " + ArgsTool.AppName);
            else if(mode == UsageFormat.Cont)
                sb.Append(' ', ArgsTool.AppName.Length + 9);
            else
                return List((string[])pars, "Options: ");

            sb.Append(' ');
            foreach(object o in pars) sb.Append(o);
            return sb.ToString();
        }