/// <summary> /// コマンド未登録時用デリゲートを登録。 /// </summary> /// <param name="notFound">コマンド未登録時用デリゲート</param> void SetNotFound(CommandHandlar notFound) { if (notFound == null) { this.notFound = new CommandHandlar(this.DefaultNotFound); } else { this.notFound = notFound; } }
/// <summary> /// 初期化。 /// コマンド、引数間の区切り文字(正規表現)を指定。 /// </summary> /// <param name="delim1">コマンドと引数の区切り文字</param> /// <param name="delim2">引数同士の間の区切り文字</param> /// <param name="delim3">リダイレクト用の区切り文字</param> public CommandParser(string prompt, string delim1, string delim2, string delim3) { this.commands = new Hashtable(); this.commands[HELP_COMMAND] = new Tuple(new CommandHandlar(this.ShowHelp), HELP_MESSAGE); this.commands[QUIT_COMMAND] = new Tuple(new CommandHandlar(Quit), QUIT_MESSAGE); this.commands[SOURCE_COMMAND] = new Tuple(new CommandHandlar(this.Source), SOURCE_MESSAGE); this.notFound = new CommandHandlar(this.DefaultNotFound); this.prompt = prompt; this.delim1 = new Regex(delim1); this.delim2 = new Regex(delim2); this.delim3 = new Regex(delim3); }
public Tuple(CommandHandlar ope, string help) { this.ope = ope; this.help = help; }
/// <summary> /// コマンド未登録時用デリゲートを登録。 /// </summary> /// <param name="notFound">コマンド未登録時用デリゲート</param> void SetNotFound(CommandHandlar notFound) { if(notFound == null) this.notFound = new CommandHandlar(this.DefaultNotFound); else this.notFound = notFound; }
/// <summary> /// コマンドを追加する。 /// </summary> /// <param name="command">コマンド名</param> /// <param name="ope">コマンド処理デリゲート</param> /// <param name="help">ヘルプメッセージ</param> public void Add(string command, CommandHandlar ope, string help) { this.commands[command] = new Tuple(ope, help); }
/// <summary> /// コマンドを追加する。 /// </summary> /// <param name="command">コマンド名</param> /// <param name="ope">コマンド処理デリゲート</param> public void Add(string command, CommandHandlar ope) { this.Add(command, ope, ""); }