/// <summary> /// 2017-04-19 作成 /// /// パースに失敗してもエラーではない。 /// </summary> /// <param name="line"></param> /// <param name="caret"></param> /// <param name="out_ms"></param> /// <returns></returns> public static bool MatchMasu (string line, ref int caret, out Masu out_ms #if DEBUG , IDebugMojiretu dbg_reigai #endif ) { Match m = Itiran_FenParser.GetMasuPattern(PureSettei.fenSyurui).Match(line, caret); if (m.Success) { // キャレットを進める Util_String.SkipMatch(line, ref caret, m); int suji = LisInt.FenSuji_Int(PureSettei.fenSyurui, m.Groups[1].Value); int dan = LisInt.FenDan_Int(PureSettei.fenSyurui, m.Groups[2].Value); // 升を返す out_ms = Conv_Masu.ToMasu(suji, dan); return(true); } else { // 該当なし(エラーではない) out_ms = Conv_Masu.masu_error; return(false); } }
///// <summary> ///// ///// </summary> ///// <param name="out_restString"></param> ///// <param name="commandline">B3といった文字列☆</param> ///// <returns></returns> //public static bool TryParseMs( // string commandline, // Kyokumen ky, // ref int caret, // out Masu result //) //{ // //「B4」形式と想定 // // テキスト形式の符号「A4 …」の最初の1要素を、切り取ってトークンに分解します。 // //------------------------------------------------------------ // // リスト作成 // //------------------------------------------------------------ // Match m = Itiran_FenParser.GetMasuMovePattern(Option_Application.Optionlist.USI).Match(commandline, caret); // if (m.Success) // { // Util_String.SkipMatch(commandline, ref caret, m); // // 符号1「B4」を元に、Masu を作ります。 // // 盤上の駒を動かしたぜ☆ // result = Med_Parser.FenSujiDan_Masu( // Option_Application.Optionlist.USI, // m.Groups[1].Value, //ABCabc か、 ZKH // m.Groups[2].Value //1234 か、 * // ); // return true; // } // // 「B4B3」形式ではなかった☆(^△^)!? 次の一手が読めない☆ // result = ky.MASU_ERROR; // return false; //} /// <summary> /// A1 を 0 に。 /// </summary> /// <param name="f"></param> /// <param name="suji"></param> /// <param name="dan"></param> /// <returns></returns> public static Masu FenSujiDan_Masu(FenSyurui f, string suji, string dan) { return(Conv_Masu.ToMasu(LisInt.FenSuji_Int(f, suji), LisInt.FenDan_Int(f, dan))); }