//------------------------------------------------------- // 分割なし完全一致の語 static public WordTable Scan(WordChain wChain, WordTable wTable) { if (wTable.IsTranslated()) { return(wTable); // 変換済みなら何もしない } // 翻訳しなくていい文字は抜ける if (!wTable.IsWord() || // 空白や制御文字 wTable.IsDigit() || wTable.IsOther()) // 記号 { return(wTable); } // 助詞なら抜ける if (wTable.posCategory == PosCategory.PP) { return(wTable); } // 独立した1文字の語は辞書より先に検索 (単独の이など) if (wTable.word.Length == 1) { CheckOneWord(wTable); if (wTable.transWord != "") { return(wTable); // match } } // 全体で完全一致で検索 SearchResult sResult = KJ_dict.SearchFull(wTable.word); if (sResult != null) { wTable.SetResult(sResult); return(wTable); // 完全一致で見つかった } // 4文字語の調査 (部分分割後は使わない) WordChain wc = Check4Chars(wTable); if (wc != null) { wChain.Swap(wTable, wc); return(wc.Tail); } return(wTable); }