Add input-method and descrition elements.
[m17n/m17n-db.git] / lo-lrt.mim
1 ;; lo-lrt.mim -- Lao input method with Lao-Roman transliteration
2 ;; Copyright (C) 2003, 2004, 2005
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., 59 Temple Place, Suite 330, Boston, MA
22 ;; 02111-1307, 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   ("ar" "າ")
77   ("i" "ິ" (mark @tone))
78   ("ii" "ີ" (mark @tone))
79   ("eu" "ຶ" (mark @tone))
80   ("ur" "ື" (mark @tone))
81   ("u" "ຸ" (mark @tone))
82   ("uu" "ູ" (mark @tone))
83   ("aM" "ຳ")
84
85   ("ee" (move @-) (move @-) "ເ" (move @+) (move @+))
86   ("aa" (move @-) (move @-) "ແ" (move @+) (move @+))
87   ("oo" (move @-) (move @-) "ໂ" (move @+) (move @+))
88   ("ai" (move @-) (move @-) "ໄ" (move @+) (move @+))
89   ("ei" (move @-) (move @-) "ໃ" (move @+) (move @+))
90
91   ("er" (move @-) (move @-) "ເ" (move @+) (move @+) "ິ" (mark @tone))
92   ("ir" (move @-) (move @-) "ເ" (move @+) (move @+) "ີ" (mark @tone))
93   ("ea" (move @-) (move @-) "ເ" (move @+) (move @+) "ຶ" (mark @tone) "ອ")
94   ("eaa" (move @-) (move @-) "ເ" (move @+) (move @+) "ື" (mark @tone) "ອ")
95   ("ao" (move @-) (move @-) "ເ" (move @+) (move @+) "ົ" (mark @tone) "າ"))
96
97  (vowel-a-e-ae
98   ("a" "ະ")
99   ("e" (move @-) (move @-) "ເ" (move @+) (move @+) "ະ")
100   ("ae" (move @-) (move @-) "ແ" (move @+) (move @+) "ະ"))
101
102  (vowel-oe
103   ("oe" (move @-) (move @-) "ເ" (move @+) (move @+) "າະ"))
104
105  (vowel-o
106   ("o" (move @-) (move @-) "ໂ" (move @+) (move @+) "ະ"))
107
108  (vowel-or
109   ("or" "ໍ" (mark @tone)))
110
111  (vowel-ua
112   ("ua" "ົ" (mark @tone) "ວະ"))
113
114  (vowel-uaa
115   ("uaa" "ົ" (mark @tone) "ວ"))
116
117  (vowel-ie
118   ("ie" (move @-) (move @-) "ເ" (move @+) (move @+) "ັ" (mark @tone) "ຽະ"))
119
120  (vowel-ia
121   ("ia" (move @-) (move @-) "ເ" (move @+) (move @+) "ັ" (mark @tone) "ຽ"))
122
123  (maa-sakod
124   ("k" "ກ")
125   ("g" "ງ")
126   ("y" "ຍ")
127   ("d" "ດ")
128   ("n" "ນ")
129   ("b" "ບ")
130   ("m" "ມ")
131   ("v" "ວ")
132   ("w" "ວ"))
133
134  (maa-sakod-y-v
135   ("y" "ຍ")
136   ("v" "ວ")
137   ("w" "ວ"))
138
139  (maa-sakod-non-y-v
140   ("k" "ກ")
141   ("g" "ງ")
142   ("d" "ດ")
143   ("n" "ນ")
144   ("b" "ບ")
145   ("m" "ມ"))
146
147  (tone
148   ("'" (move @tone) "່" (move @>))
149   ("\"" (move @tone) "້" (move @>))
150   ("^" (move @tone) "໊" (move @>))
151   ("+" (move @tone) "໋" (move @>))
152   ("~" (move @tone) "໌" (move @>)))
153
154  (punctuation
155   ("\\0" "໐")
156   ("\\1" "໑")
157   ("\\2" "໒")
158   ("\\3" "໓")
159   ("\\4" "໔")
160   ("\\5" "໕")
161   ("\\6" "໖")
162   ("\\7" "໗")
163   ("\\8" "໘")
164   ("\\9" "໙")
165   ("\\\\" "ໆ")
166   ("\\$" "ຯ")))
167
168 (state
169  (init
170   (consonant (move 1) (mark @tone) (move @>) (shift c-state))
171   (vowel-simple)
172   (vowel-a-e-ae)
173   (vowel-oe)
174   (vowel-o)
175   (vowel-or)
176   (vowel-ua)
177   (vowel-uaa)
178   (vowel-ie)
179   (vowel-ia)
180   (tone)
181   (punctuation))
182
183  (c-state
184   (semi-vowel (shift cs-state))
185   (nil (shift cs-state)))
186
187  (cs-state
188   (vowel-simple (shift csv-state))
189   (vowel-a-e-ae (shift csv-a-e-ae-state))
190   (vowel-oe (shift csv-oe-state))
191   (vowel-o (shift csv-o-state))
192   (vowel-or (shift csv-or-state))
193   (vowel-ua (shift csv-ua-state))
194   (vowel-uaa (shift csv-uaa-state))
195   (vowel-ie (shift csv-ie-state))
196   (vowel-ia (shift csv-ia-state))
197   (nil (shift csv-state)))
198
199  (csv-state
200   (maa-sakod (shift csvm-state))
201   (nil (shift csvm-state)))
202
203  (csv-a-e-ae-state
204   (maa-sakod (move @-) (delete @-) "ັ" (mark @tone) (move @>)
205              (shift csvm-state))
206   (nil (shift csvm-state)))
207
208  (csv-oe-state
209   (maa-sakod (move @-) (delete @-) (delete @-) "ັ" (mark @tone) "ອ" (move @>)
210              (shift csvm-state))
211   (nil (shift csvm-state)))
212
213  (csv-o-state
214   (maa-sakod-y-v (move @-) (delete @-) "ັ" (mark @tone) (move @>)
215                  (shift csvm-state))
216   (maa-sakod-non-y-v (move @-) (delete @-) "ົ" (mark @tone)
217                      (move 0) (delete @+) (move @>)
218                      (shift csvm-state))
219   (nil (shift csvm-state)))
220
221  (csv-or-state
222   (maa-sakod (move @-) (delete @-) "ອ" (move @+) (shift csvm-state))
223   (nil (shift csvm-state)))
224
225  (csv-ua-state
226   (maa-sakod (move @-) (delete -3) "ັວ" (move @+) (shift csvm-state))
227   (nil (shift csvm-state)))
228
229  (csv-uaa-state
230   (maa-sakod (move @-) (move @-) (delete @-) (move @+) (move @+)
231              (shift csvm-state))
232   (nil (shift csvm-state)))
233
234  (csv-ie-state
235   (maa-sakod (move @-) (delete @-)  (move @+) (shift csvm-state))
236   (nil (shift csvm-state)))
237
238  (csv-ia-state
239   (maa-sakod (move @-) (move @-) (delete @-)  (move @+) (move @+)
240              (shift csvm-state))
241   (nil (shift csvm-state)))
242
243  (csvm-state
244   (tone (shift init))))
245
246 ;; Local Variables:
247 ;; mode: lisp
248 ;; End: