/// <summary> /// Build automaton from word string /// </summary> /// <param name="word">Word string</param> /// <param name="keyboard">Keyboard</param> /// <returns>Automaton</returns> public virtual InputAutomaton ToAutomaton(string s, InputKeyboard keyboard) { // Start state InputAutomaton start = new InputAutomaton(); InputAutomaton current = start; string c; for (int i = 0; i < s.Length; i++) { InputAutomaton next; // Get next input character (Hiragana, Alphabet, Number, Sign) c = s.Substring(i, 1); // Convert the input character to Katakana, Large alphabet, Hankaku. // In old version, As SJIS does not have Hiragana of "ヴ", we converted that to Katakana c = c.Hira2Kana(); c = c.Zenkaku2Hankaku(); next = new InputAutomaton(); if (CreateAutomaton(current, c, next, InputCustomDefaultV1.Ope_NO_CUSTOM)) { current = next; } } return(start); }
/// <summary> /// Build automaton from word string /// </summary> /// <param name="word">Word string</param> /// <param name="keyboard">Keyboard</param> /// <returns>Automaton</returns> public virtual InputAutomaton ToAutomaton(string s, InputKeyboard keyboard) { var plane = GetPlane(keyboard, "Default"); // Start state InputAutomaton start = new InputAutomaton(); InputAutomaton current = start; string c; // Make automaton for (int i = 0; i < s.Length; i++) { InputAutomaton next; // Get next input character c = s.Substring(i, 1); next = new InputAutomaton(); current = ProcessNormal(plane, s, current, ref c, ref i, next); current = next; } return(start); }
/// <summary> /// Build automaton from word string /// </summary> /// <param name="word">Word string</param> /// <param name="keyboard">Keyboard</param> /// <returns>Automaton</returns> public virtual InputAutomaton ToAutomaton(string s, InputKeyboard keyboard) { // Start state InputAutomaton start = new InputAutomaton(); InputAutomaton current = start; string c, c_conv; var s_conv = s.Kana2Hira(); s_conv = s.Zenkaku2Hankaku(true, true); // Make automaton for (int i = 0; i < s.Length; i++) { InputAutomaton next; // Get next input character c = s.Substring(i, 1); c_conv = s_conv.Substring(i, 1); // Use original next = new InputAutomaton(); current.SetConnect(c_conv[0], new InputAutomaton.Connect() { Automaton = next, Flags = InputCustomDefaultV1.Ope_NO_CUSTOM, Character = c, }); current = next; } return(start); }
/// <summary> /// Get plane number corresponds to keyboard and mode. /// Return -1 if no plane exists. /// </summary> /// <param name="keyboard">Keyboard</param> /// <param name="mode">Mode</param> /// <returns></returns> public int GetPlane(InputKeyboard keyboard, string mode) { if (keyboard.Author == "Denasu System") { if (keyboard.Name == "101 Keyboard") { return(Alphabet101); } else if (keyboard.Name == "106 キーボード") { return(Alphabet106); } } return(-1); }
/// <summary> /// Get plane number corresponds to keyboard and mode. /// Return -1 if no plane exists. /// </summary> /// <param name="keyboard">Keyboard</param> /// <param name="mode">Mode</param> /// <returns></returns> public int GetPlane(InputKeyboard keyboard, string mode) { if (keyboard.Author == "Denasu System") { if (keyboard.Name == "106 キーボード") { if (mode == SupportedMode[0]) { return(Kana); } else if (mode == SupportedMode[1]) { return(Alphabet); } } } return(-1); }
/// <summary> /// Get plane number corresponds to keyboard and mode. /// Return -1 if no plane exists. /// </summary> /// <param name="keyboard">Keyboard</param> /// <param name="mode">Mode</param> /// <returns></returns> public int GetPlane(InputKeyboard keyboard, string mode) { return(0); }