/// <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);
        }
Example #3
0
        /// <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);
        }
Example #6
0
 /// <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);
 }