*** empty log message ***
[m17n/m17n-lib-js.git] / vi-tcvn.mimx
diff --git a/vi-tcvn.mimx b/vi-tcvn.mimx
new file mode 100644 (file)
index 0000000..69026ff
--- /dev/null
@@ -0,0 +1,1039 @@
+<?xml version='1.0'?>
+<input-method xmlns="http://www.m17n.org/MIM">
+  <tags>
+    <language>vi</language>
+    <name>tcvn</name>
+  </tags>
+  <description>
+    <gettext>Vietnames input method using the TCVN6064 sequence.
+Typing Backslash ('\') toggles the normal mode and English mode.
+The following variables are customizable:
+  tone-mark-on-last: control tone mark position in equivocal cases
+  backspace-is-undo: control the action of Backspace key (delete or undo)</gettext>
+  </description>
+  <title>Ắ(TCVN)</title>
+  <variable-list>
+    <defvar vname="tone-mark-on-last">
+      <description>
+        <gettext>Flag to control tone mark position in equivocal cases.
+If this variable is 0 (the default), put tone mark on the first vowel
+in such equivocal cases as "oa", "oe", "uy".
+Otherwise, put tone mark on the last vowel.</gettext>
+      </description>
+      <integer>0</integer>
+      <possible-value>
+        <integer>0</integer>
+        <integer>1</integer>
+      </possible-value>
+    </defvar>
+    <defvar vname="backspace-is-undo">
+      <description>
+        <gettext>Flag to control the action of Backspace key (delete or undo).
+If this variable is 0 (the default), Backspace key deletes the previous
+character (e.g. "q u a i s BS" =&gt; "quá").
+If the value is 1, Backspace key undoes the previous key
+(e.g. "q u a i s BS" =&gt; "quai").</gettext>
+      </description>
+      <integer>0</integer>
+      <possible-value>
+        <integer>0</integer>
+        <integer>1</integer>
+      </possible-value>
+    </defvar>
+  </variable-list>
+  <macro-list>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="vi-base.mimx" xpointer="xmlns(mim=http://www.m17n.org/MIM)xpointer(//mim:defmacro)">
+      <tags>
+        <language>t</language>
+        <name>nil</name>
+        <extra-id>vi-base</extra-id>
+      </tags>
+      <section>macro</section>
+    </xi:include>
+  </macro-list>
+  <map-list>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" parse="xml" href="vi-base.mimx" xpointer="xmlns(mim=http://www.m17n.org/MIM)xpointer(//mim:map)">
+      <tags>
+        <language>t</language>
+        <name>nil</name>
+        <extra-id>vi-base</extra-id>
+      </tags>
+      <section>map</section>
+    </xi:include>
+    <map mname="map-vowel-ext">
+      <rule>
+        <keyseq>
+          <string>2</string>
+        </keyseq>
+        <insert-candidates>
+          <string>âấầẩẫậ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>@</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ÂẤẦẨẪẬ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>1</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ăắằẳẵặ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>!</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ĂẮẰẲẴẶ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>3</string>
+        </keyseq>
+        <insert-candidates>
+          <string>êếềểễệ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>#</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ÊẾỀỂỄỆ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>4</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ôốồổỗộ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>$</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ÔỐỒỔỖỘ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>]</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ơớờởỡợ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>}</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ƠỚỜỞỠỢ</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>[</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ưứừửữự</string>
+        </insert-candidates>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>{</string>
+        </keyseq>
+        <insert-candidates>
+          <string>ƯỨỪỬỮỰ</string>
+        </insert-candidates>
+      </rule>
+    </map>
+    <map mname="map-consonant-ext">
+      <rule>
+        <keyseq>
+          <string>0</string>
+        </keyseq>
+        <insert>
+          <integer>273</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>)</string>
+        </keyseq>
+        <insert>
+          <integer>272</integer>
+        </insert>
+      </rule>
+    </map>
+    <map mname="map-tone-mark">
+      <rule>
+        <keyseq>
+          <string>8</string>
+        </keyseq>
+        <set vname="SELECT">
+          <integer>1</integer>
+        </set>
+        <insert>
+          <integer>49</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>5</string>
+        </keyseq>
+        <set vname="SELECT">
+          <integer>2</integer>
+        </set>
+        <insert>
+          <integer>50</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>6</string>
+        </keyseq>
+        <set vname="SELECT">
+          <integer>3</integer>
+        </set>
+        <insert>
+          <integer>51</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>7</string>
+        </keyseq>
+        <set vname="SELECT">
+          <integer>4</integer>
+        </set>
+        <insert>
+          <integer>52</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>9</string>
+        </keyseq>
+        <set vname="SELECT">
+          <integer>5</integer>
+        </set>
+        <insert>
+          <integer>53</integer>
+        </insert>
+      </rule>
+    </map>
+    <map mname="map-misc">
+      <rule>
+        <keyseq>
+          <string>=</string>
+        </keyseq>
+        <insert>
+          <integer>8363</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>==</string>
+        </keyseq>
+        <insert>
+          <integer>61</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-1</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>49</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-2</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>50</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-3</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>51</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-4</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>52</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-5</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>53</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-6</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>54</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-7</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>55</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-8</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>56</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-9</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>57</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-0</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>48</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A--</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>45</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-=</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>61</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-\</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>92</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-[</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>91</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-]</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>93</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-!</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>33</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-@</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>64</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-#</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>35</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-$</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>36</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-%</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>37</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-^</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>94</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-&amp;</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>38</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-*</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>42</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-(</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>40</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-)</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>41</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <symbol>A-_</symbol>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>95</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-+</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>43</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-|</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>124</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-{</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>123</integer>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <list>
+            <string>A-}</string>
+          </list>
+        </keyseq>
+        <insert>
+          <integer>125</integer>
+        </insert>
+      </rule>
+    </map>
+    <map mname="map-temporary-escape">
+      <rule>
+        <keyseq>
+          <string>22</string>
+        </keyseq>
+        <insert>
+          <string>2</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>@@</string>
+        </keyseq>
+        <insert>
+          <string>@</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>11</string>
+        </keyseq>
+        <insert>
+          <string>1</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>!!</string>
+        </keyseq>
+        <insert>
+          <string>!</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>33</string>
+        </keyseq>
+        <insert>
+          <string>3</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>##</string>
+        </keyseq>
+        <insert>
+          <string>##</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>44</string>
+        </keyseq>
+        <insert>
+          <string>4</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>$$</string>
+        </keyseq>
+        <insert>
+          <string>$</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>]]</string>
+        </keyseq>
+        <insert>
+          <string>]</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>}}</string>
+        </keyseq>
+        <insert>
+          <string>}</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>[[</string>
+        </keyseq>
+        <insert>
+          <string>[</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>{{</string>
+        </keyseq>
+        <insert>
+          <string>{</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>00</string>
+        </keyseq>
+        <insert>
+          <string>0</string>
+        </insert>
+      </rule>
+      <rule>
+        <keyseq>
+          <string>))</string>
+        </keyseq>
+        <insert>
+          <string>)</string>
+        </insert>
+      </rule>
+    </map>
+  </map-list>
+  <state-list>
+    <state sname="state-init">
+      <state-hook>
+        <set vname="C">
+          <char-at>
+            <marker>@-1</marker>
+          </char-at>
+        </set>
+        <set vname="V-1">
+          <integer>0</integer>
+        </set>
+        <set vname="V-2">
+          <integer>0</integer>
+        </set>
+        <set vname="V-3">
+          <integer>0</integer>
+        </set>
+        <set vname="C-AFTER-V">
+          <integer>0</integer>
+        </set>
+        <set vname="SELECT">
+          <integer>0</integer>
+        </set>
+      </state-hook>
+      <branch mname="map-consonant">
+        <set vname="C">
+          <char-at>
+            <marker>@-1</marker>
+          </char-at>
+        </set>
+      </branch>
+      <branch mname="map-consonant-ext">
+        <set vname="C">
+          <char-at>
+            <marker>@-1</marker>
+          </char-at>
+        </set>
+      </branch>
+      <branch mname="map-vowel">
+        <mark>
+          <marker>M</marker>
+        </mark>
+        <set vname="V-2">
+          <varref vname="V-1"/>
+        </set>
+        <set vname="V-1">
+          <char-at>
+            <marker>@-1</marker>
+          </char-at>
+        </set>
+        <shift>
+          <symbol>state-after-v</symbol>
+        </shift>
+      </branch>
+      <branch mname="map-vowel-ext">
+        <mark>
+          <marker>M</marker>
+        </mark>
+        <set vname="V-2">
+          <varref vname="V-1"/>
+        </set>
+        <set vname="V-1">
+          <char-at>
+            <marker>@-1</marker>
+          </char-at>
+        </set>
+        <shift>
+          <symbol>state-after-v</symbol>
+        </shift>
+      </branch>
+      <branch mname="map-temporary-escape">
+        <shift>
+          <symbol>state-temporary-escape</symbol>
+        </shift>
+      </branch>
+      <branch mname="map-permanent-escape">
+        <shift>
+          <symbol>state-escape-in-normal-mode</symbol>
+        </shift>
+      </branch>
+      <branch mname="map-misc"/>
+      <branch mname="map-smart-quotes"/>
+    </state>
+    <state sname="state-after-v">
+      <branch mname="map-consonant">
+        <shift>
+          <symbol>state-after-vc</symbol>
+        </shift>
+      </branch>
+      <branch mname="map-consonant-ext">
+        <shift>
+          <symbol>state-after-vc</symbol>
+        </shift>
+      </branch>
+      <branch mname="map-vowel">
+        <mark>
+          <marker>M</marker>
+        </mark>
+        <set vname="V-3">
+          <varref vname="V-2"/>
+        </set>
+        <set vname="V-2">
+          <varref vname="V-1"/>
+        </set>
+        <set vname="V-1">
+          <char-at>
+            <marker>@-1</marker>
+          </char-at>
+        </set>
+        <move>
+          <marker>T</marker>
+        </move>
+        <select>
+          <integer>0</integer>
+        </select>
+        <funcall fname="macro-handle-mark"/>
+        <move>
+          <marker>M</marker>
+        </move>
+      </branch>
+      <branch mname="map-vowel-ext">
+        <mark>
+          <marker>M</marker>
+        </mark>
+        <set vname="V-3">
+          <varref vname="V-2"/>
+        </set>
+        <set vname="V-2">
+          <varref vname="V-1"/>
+        </set>
+        <set vname="V-1">
+          <char-at>
+            <marker>@-1</marker>
+          </char-at>
+        </set>
+        <move>
+          <marker>T</marker>
+        </move>
+        <select>
+          <integer>0</integer>
+        </select>
+        <funcall fname="macro-handle-mark"/>
+        <move>
+          <marker>M</marker>
+        </move>
+      </branch>
+      <branch mname="map-tone-mark">
+        <delete>
+          <marker>@-</marker>
+        </delete>
+        <pushback>
+          <integer>1</integer>
+        </pushback>
+        <shift>
+          <symbol>state-after-t</symbol>
+        </shift>
+      </branch>
+      <branch mname="map-backspace">
+        <delete>
+          <marker>@-</marker>
+        </delete>
+        <cond>
+          <list>
+            <varref vname="V-3"/>
+            <set vname="V-1">
+              <varref vname="V-2"/>
+            </set>
+            <set vname="V-2">
+              <varref vname="V-3"/>
+            </set>
+            <set vname="V-3">
+              <integer>0</integer>
+            </set>
+            <cond>
+              <list>
+                <gt>
+                  <varref vname="TPLACE"/>
+                  <integer>2</integer>
+                </gt>
+                <set vname="SELECT">
+                  <integer>0</integer>
+                </set>
+              </list>
+            </cond>
+          </list>
+          <list>
+            <varref vname="V-2"/>
+            <set vname="V-1">
+              <varref vname="V-2"/>
+            </set>
+            <set vname="V-2">
+              <integer>0</integer>
+            </set>
+            <cond>
+              <list>
+                <gt>
+                  <varref vname="TPLACE"/>
+                  <integer>1</integer>
+                </gt>
+                <set vname="SELECT">
+                  <integer>0</integer>
+                </set>
+              </list>
+            </cond>
+          </list>
+          <list>
+            <integer>1</integer>
+            <shift>
+              <symbol>state-init</symbol>
+            </shift>
+          </list>
+        </cond>
+      </branch>
+    </state>
+    <state sname="state-after-vc">
+      <state-hook>
+        <set vname="C-AFTER-V">
+          <integer>1</integer>
+        </set>
+      </state-hook>
+      <branch mname="map-consonant">
+        <add vname="C-AFTER-V">
+          <integer>1</integer>
+        </add>
+      </branch>
+      <branch mname="map-consonant-ext">
+        <add vname="C-AFTER-V">
+          <integer>1</integer>
+        </add>
+      </branch>
+      <branch mname="map-tone-mark">
+        <delete>
+          <marker>@-</marker>
+        </delete>
+        <pushback>
+          <integer>1</integer>
+        </pushback>
+        <shift>
+          <symbol>state-after-t</symbol>
+        </shift>
+      </branch>
+      <branch mname="map-backspace">
+        <delete>
+          <marker>@-</marker>
+        </delete>
+        <sub vname="C-AFTER-V">
+          <integer>1</integer>
+        </sub>
+        <cond>
+          <list>
+            <eq>
+              <varref vname="C-AFTER-V"/>
+              <integer>0</integer>
+            </eq>
+            <shift>
+              <symbol>state-after-v</symbol>
+            </shift>
+          </list>
+        </cond>
+      </branch>
+    </state>
+    <state sname="state-after-t">
+      <state-hook>
+        <set vname="CURRENT-SELECT">
+          <integer>-1</integer>
+        </set>
+      </state-hook>
+      <branch mname="map-tone-mark">
+        <cond>
+          <list>
+            <eq>
+              <varref vname="CURRENT-SELECT"/>
+              <varref vname="SELECT"/>
+            </eq>
+            <move>
+              <marker>T</marker>
+            </move>
+            <select>
+              <integer>0</integer>
+            </select>
+            <move>
+              <marker>@&gt;</marker>
+            </move>
+            <shift>
+              <symbol>state-temporary-escape</symbol>
+            </shift>
+          </list>
+          <list>
+            <integer>1</integer>
+            <delete>
+              <marker>@-</marker>
+            </delete>
+            <funcall fname="macro-handle-mark"/>
+            <set vname="CURRENT-SELECT">
+              <varref vname="SELECT"/>
+            </set>
+          </list>
+        </cond>
+      </branch>
+      <catch-all-branch>
+        <cond>
+          <list>
+            <varref vname="C-AFTER-V"/>
+            <shift>
+              <symbol>state-after-vc</symbol>
+            </shift>
+          </list>
+          <list>
+            <integer>1</integer>
+            <shift>
+              <symbol>state-after-v</symbol>
+            </shift>
+          </list>
+        </cond>
+      </catch-all-branch>
+    </state>
+    <state sname="state-temporary-escape">
+      <title>en</title>
+      <state-hook>
+        <commit/>
+      </state-hook>
+      <branch mname="map-alnum">
+        <commit/>
+      </branch>
+    </state>
+    <state sname="state-escape-in-normal-mode">
+      <title>EN</title>
+      <branch mname="map-permanent-escape">
+        <insert>
+          <string>\</string>
+        </insert>
+        <shift>
+          <symbol>state-init</symbol>
+        </shift>
+      </branch>
+      <catch-all-branch>
+        <shift>
+          <symbol>state-permanent-escape</symbol>
+        </shift>
+      </catch-all-branch>
+    </state>
+    <state sname="state-permanent-escape">
+      <title>EN</title>
+      <state-hook>
+        <set vname="ESCAPE">
+          <integer>1</integer>
+        </set>
+      </state-hook>
+      <branch mname="map-permanent-escape">
+        <shift>
+          <symbol>state-escape-in-permanent-escape</symbol>
+        </shift>
+      </branch>
+      <catch-all-branch>
+        <unhandle/>
+      </catch-all-branch>
+    </state>
+    <state sname="state-escape-in-permanent-escape">
+      <title>Ắ</title>
+      <branch mname="map-permanent-escape">
+        <insert>
+          <string>\</string>
+        </insert>
+        <commit/>
+        <shift>
+          <symbol>state-permanent-escape</symbol>
+        </shift>
+      </branch>
+    </state>
+  </state-list>
+</input-method>
\ No newline at end of file