*** empty log message ***
[m17n/m17n-db.git] / MIM / lo-lrt.mim
1 ;; lo-lrt.mim -- Lao input method with Lao-Roman transliteration
2 ;; Copyright (C) 2003, 2004, 2005, 2008
3 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
4 ;;   Registration Number H15PRO112
5
6 ;; This file is part of the m17n database; a sub-part of the m17n
7 ;; library.
8
9 ;; The m17n library is free software; you can redistribute it and/or
10 ;; modify it under the terms of the GNU Lesser General Public License
11 ;; as published by the Free Software Foundation; either version 2.1 of
12 ;; the License, or (at your option) any later version.
13
14 ;; The m17n library is distributed in the hope that it will be useful,
15 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 ;; Lesser General Public License for more details.
18
19 ;; You should have received a copy of the GNU Lesser General Public
20 ;; License along with the m17n library; if not, write to the Free
21 ;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 ;; Boston, MA 02110-1301, USA.
23
24 (input-method lo lrt)
25
26 (description "Lao input method using Lao-Roman transliteration.
27 ")
28
29 (title "ກ")
30 (map
31  (consonant
32   ("k" "ກ")
33   ("kh" "ຂ")
34   ("qh" "ຄ")
35   ("ng" "ງ")
36   ("j" "ຈ")
37   ("s" "ສ")
38   ("x" "ຊ")
39   ("y" "ຍ")
40   ("d" "ດ")
41   ("t" "ຕ")
42   ("th" "ຖ")
43   ("dh" "ທ")
44   ("n" "ນ")
45   ("b" "ບ")
46   ("p" "ປ")
47   ("hp" "ຜ")
48   ("fh" "ຝ")
49   ("ph" "ພ")
50   ("f" "ຟ")
51   ("m" "ມ")
52   ("gn" "ຢ")
53   ("l" "ລ")
54   ("r" "ຣ")
55   ("v" "ວ")
56   ("w" "ວ")
57   ("hh" "ຫ")
58   ("O" "ອ")
59   ("h" "ຮ")
60   ("nh" "ໜ")
61   ("mh" "ໝ")
62   ("lh" "ຫຼ")
63   ("ngh" "ຫງ")
64   ("yh" "ຫຽ")
65   ("wh" "ຫວ")
66   ("hl" "ຫລ")
67   ("hy" "ຫຍ")
68   ("hn" "ຫນ")
69   ("hm" "ຫມ")
70   )
71
72  (semi-vowel
73   ("r" (move 1) "ຼ" (move @>)))
74
75  (vowel-simple
76   ("hya" "ຽ")
77   ("ar" "າ")
78   ("i" "ິ" (mark TONE))
79   ("ii" "ີ" (mark TONE))
80   ("eu" "ຶ" (mark TONE))
81   ("ur" "ື" (mark TONE))
82   ("u" "ຸ" (mark TONE))
83   ("uu" "ູ" (mark TONE))
84   ("aM" "ຳ")
85
86   ("ee" (move @-) (move @-) "ເ" (move @+) (move @+))
87   ("aa" (move @-) (move @-) "ແ" (move @+) (move @+))
88   ("oo" (move @-) (move @-) "ໂ" (move @+) (move @+))
89   ("ai" (move @-) (move @-) "ໄ" (move @+) (move @+))
90   ("ei" (move @-) (move @-) "ໃ" (move @+) (move @+))
91
92   ("er" (move @-) (move @-) "ເ" (move @+) (move @+) "ິ" (mark TONE))
93   ("ir" (move @-) (move @-) "ເ" (move @+) (move @+) "ີ" (mark TONE))
94   ("ea" (move @-) (move @-) "ເ" (move @+) (move @+) "ຶ" (mark TONE) "ອ")
95   ("eaa" (move @-) (move @-) "ເ" (move @+) (move @+) "ື" (mark TONE) "ອ")
96   ("ao" (move @-) (move @-) "ເ" (move @+) (move @+) "ົ" (mark TONE) "າ"))
97
98  (vowel-a-e-ae
99   ("a" "ະ")
100   ("e" (move @-) (move @-) "ເ" (move @+) (move @+) "ະ")
101   ("ae" (move @-) (move @-) "ແ" (move @+) (move @+) "ະ"))
102
103  (vowel-oe
104   ("oe" (move @-) (move @-) "ເ" (move @+) (move @+) "າະ"))
105
106  (vowel-o
107   ("o" (move @-) (move @-) "ໂ" (move @+) (move @+) "ະ"))
108
109  (vowel-or
110   ("or" "ໍ" (mark TONE)))
111
112  (vowel-ua
113   ("ua" "ົ" (mark TONE) "ວະ"))
114
115  (vowel-uaa
116   ("uaa" "ົ" (mark TONE) "ວ"))
117
118  (vowel-ie
119   ("ie" (move @-) (move @-) "ເ" (move @+) (move @+) "ັ" (mark TONE) "ຽະ"))
120
121  (vowel-ia
122   ("ia" (move @-) (move @-) "ເ" (move @+) (move @+) "ັ" (mark TONE) "ຽ"))
123
124  (maa-sakod
125   ("k" "ກ")
126   ("g" "ງ")
127   ("y" "ຍ")
128   ("d" "ດ")
129   ("n" "ນ")
130   ("b" "ບ")
131   ("m" "ມ")
132   ("v" "ວ")
133   ("w" "ວ"))
134
135  (maa-sakod-y-v
136   ("y" "ຍ")
137   ("v" "ວ")
138   ("w" "ວ"))
139
140  (maa-sakod-non-y-v
141   ("k" "ກ")
142   ("g" "ງ")
143   ("d" "ດ")
144   ("n" "ນ")
145   ("b" "ບ")
146   ("m" "ມ"))
147
148  (tone
149   ("'" (move TONE) "່" (move @>))
150   ("\"" (move TONE) "້" (move @>))
151   ("^" (move TONE) "໊" (move @>))
152   ("+" (move TONE) "໋" (move @>))
153   ("~" (move TONE) "໌" (move @>)))
154
155  (punctuation
156   ("\\0" "໐")
157   ("\\1" "໑")
158   ("\\2" "໒")
159   ("\\3" "໓")
160   ("\\4" "໔")
161   ("\\5" "໕")
162   ("\\6" "໖")
163   ("\\7" "໗")
164   ("\\8" "໘")
165   ("\\9" "໙")
166   ("\\\\" "ໆ")
167   ("\\$" "ຯ")))
168
169 (state
170  (init
171   (consonant (move 1) (mark TONE) (move @>) (shift c-state))
172   (vowel-simple)
173   (vowel-a-e-ae)
174   (vowel-oe)
175   (vowel-o)
176   (vowel-or)
177   (vowel-ua)
178   (vowel-uaa)
179   (vowel-ie)
180   (vowel-ia)
181   (tone)
182   (punctuation))
183
184  (c-state
185   (semi-vowel (shift cs-state))
186   (nil (shift cs-state)))
187
188  (cs-state
189   (vowel-simple (shift csv-state))
190   (vowel-a-e-ae (shift csv-a-e-ae-state))
191   (vowel-oe (shift csv-oe-state))
192   (vowel-o (shift csv-o-state))
193   (vowel-or (shift csv-or-state))
194   (vowel-ua (shift csv-ua-state))
195   (vowel-uaa (shift csv-uaa-state))
196   (vowel-ie (shift csv-ie-state))
197   (vowel-ia (shift csv-ia-state))
198   (nil (shift csv-state)))
199
200  (csv-state
201   (maa-sakod (shift csvm-state))
202   (nil (shift csvm-state)))
203
204  (csv-a-e-ae-state
205   (maa-sakod (move @-) (delete @-) "ັ" (mark TONE) (move @>)
206              (shift csvm-state))
207   (nil (shift csvm-state)))
208
209  (csv-oe-state
210   (maa-sakod (move @-) (delete @-) (delete @-) "ັ" (mark TONE) "ອ" (move @>)
211              (shift csvm-state))
212   (nil (shift csvm-state)))
213
214  (csv-o-state
215   (maa-sakod-y-v (move @-) (delete @-) "ັ" (mark TONE) (move @>)
216                  (shift csvm-state))
217   (maa-sakod-non-y-v (move @-) (delete @-) "ົ" (mark TONE)
218                      (move 0) (delete @+) (move @>)
219                      (shift csvm-state))
220   (nil (shift csvm-state)))
221
222  (csv-or-state
223   (maa-sakod (move @-) (delete @-) "ອ" (move @+) (shift csvm-state))
224   (nil (shift csvm-state)))
225
226  (csv-ua-state
227   (maa-sakod (move @-) (delete -3) "ັວ" (move @+) (shift csvm-state))
228   (nil (shift csvm-state)))
229
230  (csv-uaa-state
231   (maa-sakod (move @-) (move @-) (delete @-) (move @+) (move @+)
232              (shift csvm-state))
233   (nil (shift csvm-state)))
234
235  (csv-ie-state
236   (maa-sakod (move @-) (delete @-)  (move @+) (shift csvm-state))
237   (nil (shift csvm-state)))
238
239  (csv-ia-state
240   (maa-sakod (move @-) (move @-) (delete @-)  (move @+) (move @+)
241              (shift csvm-state))
242   (nil (shift csvm-state)))
243
244  (csvm-state
245   (tone (shift init))))
246
247 ;; Local Variables:
248 ;; mode: lisp
249 ;; End: