69026ffba76359d7bca30dc3c8274ebb6e1192e6
[m17n/m17n-lib-js.git] / vi-tcvn.mimx
1 <?xml version='1.0'?>
2 <input-method xmlns="http://www.m17n.org/MIM">
3   <tags>
4     <language>vi</language>
5     <name>tcvn</name>
6   </tags>
7   <description>
8     <gettext>Vietnames input method using the TCVN6064 sequence.
9 Typing Backslash ('\') toggles the normal mode and English mode.
10 The following variables are customizable:
11   tone-mark-on-last: control tone mark position in equivocal cases
12   backspace-is-undo: control the action of Backspace key (delete or undo)</gettext>
13   </description>
14   <title>Ắ(TCVN)</title>
15   <variable-list>
16     <defvar vname="tone-mark-on-last">
17       <description>
18         <gettext>Flag to control tone mark position in equivocal cases.
19 If this variable is 0 (the default), put tone mark on the first vowel
20 in such equivocal cases as "oa", "oe", "uy".
21 Otherwise, put tone mark on the last vowel.</gettext>
22       </description>
23       <integer>0</integer>
24       <possible-value>
25         <integer>0</integer>
26         <integer>1</integer>
27       </possible-value>
28     </defvar>
29     <defvar vname="backspace-is-undo">
30       <description>
31         <gettext>Flag to control the action of Backspace key (delete or undo).
32 If this variable is 0 (the default), Backspace key deletes the previous
33 character (e.g. "q u a i s BS" =&gt; "quá").
34 If the value is 1, Backspace key undoes the previous key
35 (e.g. "q u a i s BS" =&gt; "quai").</gettext>
36       </description>
37       <integer>0</integer>
38       <possible-value>
39         <integer>0</integer>
40         <integer>1</integer>
41       </possible-value>
42     </defvar>
43   </variable-list>
44   <macro-list>
45     <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)">
46       <tags>
47         <language>t</language>
48         <name>nil</name>
49         <extra-id>vi-base</extra-id>
50       </tags>
51       <section>macro</section>
52     </xi:include>
53   </macro-list>
54   <map-list>
55     <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)">
56       <tags>
57         <language>t</language>
58         <name>nil</name>
59         <extra-id>vi-base</extra-id>
60       </tags>
61       <section>map</section>
62     </xi:include>
63     <map mname="map-vowel-ext">
64       <rule>
65         <keyseq>
66           <string>2</string>
67         </keyseq>
68         <insert-candidates>
69           <string>âấầẩẫậ</string>
70         </insert-candidates>
71       </rule>
72       <rule>
73         <keyseq>
74           <string>@</string>
75         </keyseq>
76         <insert-candidates>
77           <string>ÂẤẦẨẪẬ</string>
78         </insert-candidates>
79       </rule>
80       <rule>
81         <keyseq>
82           <string>1</string>
83         </keyseq>
84         <insert-candidates>
85           <string>ăắằẳẵặ</string>
86         </insert-candidates>
87       </rule>
88       <rule>
89         <keyseq>
90           <string>!</string>
91         </keyseq>
92         <insert-candidates>
93           <string>ĂẮẰẲẴẶ</string>
94         </insert-candidates>
95       </rule>
96       <rule>
97         <keyseq>
98           <string>3</string>
99         </keyseq>
100         <insert-candidates>
101           <string>êếềểễệ</string>
102         </insert-candidates>
103       </rule>
104       <rule>
105         <keyseq>
106           <string>#</string>
107         </keyseq>
108         <insert-candidates>
109           <string>ÊẾỀỂỄỆ</string>
110         </insert-candidates>
111       </rule>
112       <rule>
113         <keyseq>
114           <string>4</string>
115         </keyseq>
116         <insert-candidates>
117           <string>ôốồổỗộ</string>
118         </insert-candidates>
119       </rule>
120       <rule>
121         <keyseq>
122           <string>$</string>
123         </keyseq>
124         <insert-candidates>
125           <string>ÔỐỒỔỖỘ</string>
126         </insert-candidates>
127       </rule>
128       <rule>
129         <keyseq>
130           <string>]</string>
131         </keyseq>
132         <insert-candidates>
133           <string>ơớờởỡợ</string>
134         </insert-candidates>
135       </rule>
136       <rule>
137         <keyseq>
138           <string>}</string>
139         </keyseq>
140         <insert-candidates>
141           <string>ƠỚỜỞỠỢ</string>
142         </insert-candidates>
143       </rule>
144       <rule>
145         <keyseq>
146           <string>[</string>
147         </keyseq>
148         <insert-candidates>
149           <string>ưứừửữự</string>
150         </insert-candidates>
151       </rule>
152       <rule>
153         <keyseq>
154           <string>{</string>
155         </keyseq>
156         <insert-candidates>
157           <string>ƯỨỪỬỮỰ</string>
158         </insert-candidates>
159       </rule>
160     </map>
161     <map mname="map-consonant-ext">
162       <rule>
163         <keyseq>
164           <string>0</string>
165         </keyseq>
166         <insert>
167           <integer>273</integer>
168         </insert>
169       </rule>
170       <rule>
171         <keyseq>
172           <string>)</string>
173         </keyseq>
174         <insert>
175           <integer>272</integer>
176         </insert>
177       </rule>
178     </map>
179     <map mname="map-tone-mark">
180       <rule>
181         <keyseq>
182           <string>8</string>
183         </keyseq>
184         <set vname="SELECT">
185           <integer>1</integer>
186         </set>
187         <insert>
188           <integer>49</integer>
189         </insert>
190       </rule>
191       <rule>
192         <keyseq>
193           <string>5</string>
194         </keyseq>
195         <set vname="SELECT">
196           <integer>2</integer>
197         </set>
198         <insert>
199           <integer>50</integer>
200         </insert>
201       </rule>
202       <rule>
203         <keyseq>
204           <string>6</string>
205         </keyseq>
206         <set vname="SELECT">
207           <integer>3</integer>
208         </set>
209         <insert>
210           <integer>51</integer>
211         </insert>
212       </rule>
213       <rule>
214         <keyseq>
215           <string>7</string>
216         </keyseq>
217         <set vname="SELECT">
218           <integer>4</integer>
219         </set>
220         <insert>
221           <integer>52</integer>
222         </insert>
223       </rule>
224       <rule>
225         <keyseq>
226           <string>9</string>
227         </keyseq>
228         <set vname="SELECT">
229           <integer>5</integer>
230         </set>
231         <insert>
232           <integer>53</integer>
233         </insert>
234       </rule>
235     </map>
236     <map mname="map-misc">
237       <rule>
238         <keyseq>
239           <string>=</string>
240         </keyseq>
241         <insert>
242           <integer>8363</integer>
243         </insert>
244       </rule>
245       <rule>
246         <keyseq>
247           <string>==</string>
248         </keyseq>
249         <insert>
250           <integer>61</integer>
251         </insert>
252       </rule>
253       <rule>
254         <keyseq>
255           <list>
256             <symbol>A-1</symbol>
257           </list>
258         </keyseq>
259         <insert>
260           <integer>49</integer>
261         </insert>
262       </rule>
263       <rule>
264         <keyseq>
265           <list>
266             <symbol>A-2</symbol>
267           </list>
268         </keyseq>
269         <insert>
270           <integer>50</integer>
271         </insert>
272       </rule>
273       <rule>
274         <keyseq>
275           <list>
276             <symbol>A-3</symbol>
277           </list>
278         </keyseq>
279         <insert>
280           <integer>51</integer>
281         </insert>
282       </rule>
283       <rule>
284         <keyseq>
285           <list>
286             <symbol>A-4</symbol>
287           </list>
288         </keyseq>
289         <insert>
290           <integer>52</integer>
291         </insert>
292       </rule>
293       <rule>
294         <keyseq>
295           <list>
296             <symbol>A-5</symbol>
297           </list>
298         </keyseq>
299         <insert>
300           <integer>53</integer>
301         </insert>
302       </rule>
303       <rule>
304         <keyseq>
305           <list>
306             <symbol>A-6</symbol>
307           </list>
308         </keyseq>
309         <insert>
310           <integer>54</integer>
311         </insert>
312       </rule>
313       <rule>
314         <keyseq>
315           <list>
316             <symbol>A-7</symbol>
317           </list>
318         </keyseq>
319         <insert>
320           <integer>55</integer>
321         </insert>
322       </rule>
323       <rule>
324         <keyseq>
325           <list>
326             <symbol>A-8</symbol>
327           </list>
328         </keyseq>
329         <insert>
330           <integer>56</integer>
331         </insert>
332       </rule>
333       <rule>
334         <keyseq>
335           <list>
336             <symbol>A-9</symbol>
337           </list>
338         </keyseq>
339         <insert>
340           <integer>57</integer>
341         </insert>
342       </rule>
343       <rule>
344         <keyseq>
345           <list>
346             <symbol>A-0</symbol>
347           </list>
348         </keyseq>
349         <insert>
350           <integer>48</integer>
351         </insert>
352       </rule>
353       <rule>
354         <keyseq>
355           <list>
356             <symbol>A--</symbol>
357           </list>
358         </keyseq>
359         <insert>
360           <integer>45</integer>
361         </insert>
362       </rule>
363       <rule>
364         <keyseq>
365           <list>
366             <string>A-=</string>
367           </list>
368         </keyseq>
369         <insert>
370           <integer>61</integer>
371         </insert>
372       </rule>
373       <rule>
374         <keyseq>
375           <list>
376             <string>A-\</string>
377           </list>
378         </keyseq>
379         <insert>
380           <integer>92</integer>
381         </insert>
382       </rule>
383       <rule>
384         <keyseq>
385           <list>
386             <string>A-[</string>
387           </list>
388         </keyseq>
389         <insert>
390           <integer>91</integer>
391         </insert>
392       </rule>
393       <rule>
394         <keyseq>
395           <list>
396             <string>A-]</string>
397           </list>
398         </keyseq>
399         <insert>
400           <integer>93</integer>
401         </insert>
402       </rule>
403       <rule>
404         <keyseq>
405           <list>
406             <string>A-!</string>
407           </list>
408         </keyseq>
409         <insert>
410           <integer>33</integer>
411         </insert>
412       </rule>
413       <rule>
414         <keyseq>
415           <list>
416             <string>A-@</string>
417           </list>
418         </keyseq>
419         <insert>
420           <integer>64</integer>
421         </insert>
422       </rule>
423       <rule>
424         <keyseq>
425           <list>
426             <string>A-#</string>
427           </list>
428         </keyseq>
429         <insert>
430           <integer>35</integer>
431         </insert>
432       </rule>
433       <rule>
434         <keyseq>
435           <list>
436             <string>A-$</string>
437           </list>
438         </keyseq>
439         <insert>
440           <integer>36</integer>
441         </insert>
442       </rule>
443       <rule>
444         <keyseq>
445           <list>
446             <string>A-%</string>
447           </list>
448         </keyseq>
449         <insert>
450           <integer>37</integer>
451         </insert>
452       </rule>
453       <rule>
454         <keyseq>
455           <list>
456             <string>A-^</string>
457           </list>
458         </keyseq>
459         <insert>
460           <integer>94</integer>
461         </insert>
462       </rule>
463       <rule>
464         <keyseq>
465           <list>
466             <string>A-&amp;</string>
467           </list>
468         </keyseq>
469         <insert>
470           <integer>38</integer>
471         </insert>
472       </rule>
473       <rule>
474         <keyseq>
475           <list>
476             <string>A-*</string>
477           </list>
478         </keyseq>
479         <insert>
480           <integer>42</integer>
481         </insert>
482       </rule>
483       <rule>
484         <keyseq>
485           <list>
486             <string>A-(</string>
487           </list>
488         </keyseq>
489         <insert>
490           <integer>40</integer>
491         </insert>
492       </rule>
493       <rule>
494         <keyseq>
495           <list>
496             <string>A-)</string>
497           </list>
498         </keyseq>
499         <insert>
500           <integer>41</integer>
501         </insert>
502       </rule>
503       <rule>
504         <keyseq>
505           <list>
506             <symbol>A-_</symbol>
507           </list>
508         </keyseq>
509         <insert>
510           <integer>95</integer>
511         </insert>
512       </rule>
513       <rule>
514         <keyseq>
515           <list>
516             <string>A-+</string>
517           </list>
518         </keyseq>
519         <insert>
520           <integer>43</integer>
521         </insert>
522       </rule>
523       <rule>
524         <keyseq>
525           <list>
526             <string>A-|</string>
527           </list>
528         </keyseq>
529         <insert>
530           <integer>124</integer>
531         </insert>
532       </rule>
533       <rule>
534         <keyseq>
535           <list>
536             <string>A-{</string>
537           </list>
538         </keyseq>
539         <insert>
540           <integer>123</integer>
541         </insert>
542       </rule>
543       <rule>
544         <keyseq>
545           <list>
546             <string>A-}</string>
547           </list>
548         </keyseq>
549         <insert>
550           <integer>125</integer>
551         </insert>
552       </rule>
553     </map>
554     <map mname="map-temporary-escape">
555       <rule>
556         <keyseq>
557           <string>22</string>
558         </keyseq>
559         <insert>
560           <string>2</string>
561         </insert>
562       </rule>
563       <rule>
564         <keyseq>
565           <string>@@</string>
566         </keyseq>
567         <insert>
568           <string>@</string>
569         </insert>
570       </rule>
571       <rule>
572         <keyseq>
573           <string>11</string>
574         </keyseq>
575         <insert>
576           <string>1</string>
577         </insert>
578       </rule>
579       <rule>
580         <keyseq>
581           <string>!!</string>
582         </keyseq>
583         <insert>
584           <string>!</string>
585         </insert>
586       </rule>
587       <rule>
588         <keyseq>
589           <string>33</string>
590         </keyseq>
591         <insert>
592           <string>3</string>
593         </insert>
594       </rule>
595       <rule>
596         <keyseq>
597           <string>##</string>
598         </keyseq>
599         <insert>
600           <string>##</string>
601         </insert>
602       </rule>
603       <rule>
604         <keyseq>
605           <string>44</string>
606         </keyseq>
607         <insert>
608           <string>4</string>
609         </insert>
610       </rule>
611       <rule>
612         <keyseq>
613           <string>$$</string>
614         </keyseq>
615         <insert>
616           <string>$</string>
617         </insert>
618       </rule>
619       <rule>
620         <keyseq>
621           <string>]]</string>
622         </keyseq>
623         <insert>
624           <string>]</string>
625         </insert>
626       </rule>
627       <rule>
628         <keyseq>
629           <string>}}</string>
630         </keyseq>
631         <insert>
632           <string>}</string>
633         </insert>
634       </rule>
635       <rule>
636         <keyseq>
637           <string>[[</string>
638         </keyseq>
639         <insert>
640           <string>[</string>
641         </insert>
642       </rule>
643       <rule>
644         <keyseq>
645           <string>{{</string>
646         </keyseq>
647         <insert>
648           <string>{</string>
649         </insert>
650       </rule>
651       <rule>
652         <keyseq>
653           <string>00</string>
654         </keyseq>
655         <insert>
656           <string>0</string>
657         </insert>
658       </rule>
659       <rule>
660         <keyseq>
661           <string>))</string>
662         </keyseq>
663         <insert>
664           <string>)</string>
665         </insert>
666       </rule>
667     </map>
668   </map-list>
669   <state-list>
670     <state sname="state-init">
671       <state-hook>
672         <set vname="C">
673           <char-at>
674             <marker>@-1</marker>
675           </char-at>
676         </set>
677         <set vname="V-1">
678           <integer>0</integer>
679         </set>
680         <set vname="V-2">
681           <integer>0</integer>
682         </set>
683         <set vname="V-3">
684           <integer>0</integer>
685         </set>
686         <set vname="C-AFTER-V">
687           <integer>0</integer>
688         </set>
689         <set vname="SELECT">
690           <integer>0</integer>
691         </set>
692       </state-hook>
693       <branch mname="map-consonant">
694         <set vname="C">
695           <char-at>
696             <marker>@-1</marker>
697           </char-at>
698         </set>
699       </branch>
700       <branch mname="map-consonant-ext">
701         <set vname="C">
702           <char-at>
703             <marker>@-1</marker>
704           </char-at>
705         </set>
706       </branch>
707       <branch mname="map-vowel">
708         <mark>
709           <marker>M</marker>
710         </mark>
711         <set vname="V-2">
712           <varref vname="V-1"/>
713         </set>
714         <set vname="V-1">
715           <char-at>
716             <marker>@-1</marker>
717           </char-at>
718         </set>
719         <shift>
720           <symbol>state-after-v</symbol>
721         </shift>
722       </branch>
723       <branch mname="map-vowel-ext">
724         <mark>
725           <marker>M</marker>
726         </mark>
727         <set vname="V-2">
728           <varref vname="V-1"/>
729         </set>
730         <set vname="V-1">
731           <char-at>
732             <marker>@-1</marker>
733           </char-at>
734         </set>
735         <shift>
736           <symbol>state-after-v</symbol>
737         </shift>
738       </branch>
739       <branch mname="map-temporary-escape">
740         <shift>
741           <symbol>state-temporary-escape</symbol>
742         </shift>
743       </branch>
744       <branch mname="map-permanent-escape">
745         <shift>
746           <symbol>state-escape-in-normal-mode</symbol>
747         </shift>
748       </branch>
749       <branch mname="map-misc"/>
750       <branch mname="map-smart-quotes"/>
751     </state>
752     <state sname="state-after-v">
753       <branch mname="map-consonant">
754         <shift>
755           <symbol>state-after-vc</symbol>
756         </shift>
757       </branch>
758       <branch mname="map-consonant-ext">
759         <shift>
760           <symbol>state-after-vc</symbol>
761         </shift>
762       </branch>
763       <branch mname="map-vowel">
764         <mark>
765           <marker>M</marker>
766         </mark>
767         <set vname="V-3">
768           <varref vname="V-2"/>
769         </set>
770         <set vname="V-2">
771           <varref vname="V-1"/>
772         </set>
773         <set vname="V-1">
774           <char-at>
775             <marker>@-1</marker>
776           </char-at>
777         </set>
778         <move>
779           <marker>T</marker>
780         </move>
781         <select>
782           <integer>0</integer>
783         </select>
784         <funcall fname="macro-handle-mark"/>
785         <move>
786           <marker>M</marker>
787         </move>
788       </branch>
789       <branch mname="map-vowel-ext">
790         <mark>
791           <marker>M</marker>
792         </mark>
793         <set vname="V-3">
794           <varref vname="V-2"/>
795         </set>
796         <set vname="V-2">
797           <varref vname="V-1"/>
798         </set>
799         <set vname="V-1">
800           <char-at>
801             <marker>@-1</marker>
802           </char-at>
803         </set>
804         <move>
805           <marker>T</marker>
806         </move>
807         <select>
808           <integer>0</integer>
809         </select>
810         <funcall fname="macro-handle-mark"/>
811         <move>
812           <marker>M</marker>
813         </move>
814       </branch>
815       <branch mname="map-tone-mark">
816         <delete>
817           <marker>@-</marker>
818         </delete>
819         <pushback>
820           <integer>1</integer>
821         </pushback>
822         <shift>
823           <symbol>state-after-t</symbol>
824         </shift>
825       </branch>
826       <branch mname="map-backspace">
827         <delete>
828           <marker>@-</marker>
829         </delete>
830         <cond>
831           <list>
832             <varref vname="V-3"/>
833             <set vname="V-1">
834               <varref vname="V-2"/>
835             </set>
836             <set vname="V-2">
837               <varref vname="V-3"/>
838             </set>
839             <set vname="V-3">
840               <integer>0</integer>
841             </set>
842             <cond>
843               <list>
844                 <gt>
845                   <varref vname="TPLACE"/>
846                   <integer>2</integer>
847                 </gt>
848                 <set vname="SELECT">
849                   <integer>0</integer>
850                 </set>
851               </list>
852             </cond>
853           </list>
854           <list>
855             <varref vname="V-2"/>
856             <set vname="V-1">
857               <varref vname="V-2"/>
858             </set>
859             <set vname="V-2">
860               <integer>0</integer>
861             </set>
862             <cond>
863               <list>
864                 <gt>
865                   <varref vname="TPLACE"/>
866                   <integer>1</integer>
867                 </gt>
868                 <set vname="SELECT">
869                   <integer>0</integer>
870                 </set>
871               </list>
872             </cond>
873           </list>
874           <list>
875             <integer>1</integer>
876             <shift>
877               <symbol>state-init</symbol>
878             </shift>
879           </list>
880         </cond>
881       </branch>
882     </state>
883     <state sname="state-after-vc">
884       <state-hook>
885         <set vname="C-AFTER-V">
886           <integer>1</integer>
887         </set>
888       </state-hook>
889       <branch mname="map-consonant">
890         <add vname="C-AFTER-V">
891           <integer>1</integer>
892         </add>
893       </branch>
894       <branch mname="map-consonant-ext">
895         <add vname="C-AFTER-V">
896           <integer>1</integer>
897         </add>
898       </branch>
899       <branch mname="map-tone-mark">
900         <delete>
901           <marker>@-</marker>
902         </delete>
903         <pushback>
904           <integer>1</integer>
905         </pushback>
906         <shift>
907           <symbol>state-after-t</symbol>
908         </shift>
909       </branch>
910       <branch mname="map-backspace">
911         <delete>
912           <marker>@-</marker>
913         </delete>
914         <sub vname="C-AFTER-V">
915           <integer>1</integer>
916         </sub>
917         <cond>
918           <list>
919             <eq>
920               <varref vname="C-AFTER-V"/>
921               <integer>0</integer>
922             </eq>
923             <shift>
924               <symbol>state-after-v</symbol>
925             </shift>
926           </list>
927         </cond>
928       </branch>
929     </state>
930     <state sname="state-after-t">
931       <state-hook>
932         <set vname="CURRENT-SELECT">
933           <integer>-1</integer>
934         </set>
935       </state-hook>
936       <branch mname="map-tone-mark">
937         <cond>
938           <list>
939             <eq>
940               <varref vname="CURRENT-SELECT"/>
941               <varref vname="SELECT"/>
942             </eq>
943             <move>
944               <marker>T</marker>
945             </move>
946             <select>
947               <integer>0</integer>
948             </select>
949             <move>
950               <marker>@&gt;</marker>
951             </move>
952             <shift>
953               <symbol>state-temporary-escape</symbol>
954             </shift>
955           </list>
956           <list>
957             <integer>1</integer>
958             <delete>
959               <marker>@-</marker>
960             </delete>
961             <funcall fname="macro-handle-mark"/>
962             <set vname="CURRENT-SELECT">
963               <varref vname="SELECT"/>
964             </set>
965           </list>
966         </cond>
967       </branch>
968       <catch-all-branch>
969         <cond>
970           <list>
971             <varref vname="C-AFTER-V"/>
972             <shift>
973               <symbol>state-after-vc</symbol>
974             </shift>
975           </list>
976           <list>
977             <integer>1</integer>
978             <shift>
979               <symbol>state-after-v</symbol>
980             </shift>
981           </list>
982         </cond>
983       </catch-all-branch>
984     </state>
985     <state sname="state-temporary-escape">
986       <title>en</title>
987       <state-hook>
988         <commit/>
989       </state-hook>
990       <branch mname="map-alnum">
991         <commit/>
992       </branch>
993     </state>
994     <state sname="state-escape-in-normal-mode">
995       <title>EN</title>
996       <branch mname="map-permanent-escape">
997         <insert>
998           <string>\</string>
999         </insert>
1000         <shift>
1001           <symbol>state-init</symbol>
1002         </shift>
1003       </branch>
1004       <catch-all-branch>
1005         <shift>
1006           <symbol>state-permanent-escape</symbol>
1007         </shift>
1008       </catch-all-branch>
1009     </state>
1010     <state sname="state-permanent-escape">
1011       <title>EN</title>
1012       <state-hook>
1013         <set vname="ESCAPE">
1014           <integer>1</integer>
1015         </set>
1016       </state-hook>
1017       <branch mname="map-permanent-escape">
1018         <shift>
1019           <symbol>state-escape-in-permanent-escape</symbol>
1020         </shift>
1021       </branch>
1022       <catch-all-branch>
1023         <unhandle/>
1024       </catch-all-branch>
1025     </state>
1026     <state sname="state-escape-in-permanent-escape">
1027       <title>Ắ</title>
1028       <branch mname="map-permanent-escape">
1029         <insert>
1030           <string>\</string>
1031         </insert>
1032         <commit/>
1033         <shift>
1034           <symbol>state-permanent-escape</symbol>
1035         </shift>
1036       </branch>
1037     </state>
1038   </state-list>
1039 </input-method>