1:
2:
3:
4:
5:
6:
7: static const struct rk_rule rk_rule_alphabet[] =
8: {
9: {"a", "a", NULL},
10: {"b", "b", NULL},
11: {"c", "c", NULL},
12: {"d", "d", NULL},
13: {"e", "e", NULL},
14: {"f", "f", NULL},
15: {"g", "g", NULL},
16: {"h", "h", NULL},
17: {"i", "i", NULL},
18: {"j", "j", NULL},
19: {"k", "k", NULL},
20: {"l", "l", NULL},
21: {"m", "m", NULL},
22: {"n", "n", NULL},
23: {"o", "o", NULL},
24: {"p", "p", NULL},
25: {"q", "q", NULL},
26: {"r", "r", NULL},
27: {"s", "s", NULL},
28: {"t", "t", NULL},
29: {"u", "u", NULL},
30: {"v", "v", NULL},
31: {"w", "w", NULL},
32: {"x", "x", NULL},
33: {"y", "y", NULL},
34: {"z", "z", NULL},
35: {"A", "A", NULL},
36: {"B", "B", NULL},
37: {"C", "C", NULL},
38: {"D", "D", NULL},
39: {"E", "E", NULL},
40: {"F", "F", NULL},
41: {"G", "G", NULL},
42: {"H", "H", NULL},
43: {"I", "I", NULL},
44: {"J", "J", NULL},
45: {"K", "K", NULL},
46: {"L", "L", NULL},
47: {"M", "M", NULL},
48: {"N", "N", NULL},
49: {"O", "O", NULL},
50: {"P", "P", NULL},
51: {"Q", "Q", NULL},
52: {"R", "R", NULL},
53: {"S", "S", NULL},
54: {"T", "T", NULL},
55: {"U", "U", NULL},
56: {"V", "V", NULL},
57: {"W", "W", NULL},
58: {"X", "X", NULL},
59: {"Y", "Y", NULL},
60: {"Z", "Z", NULL},
61:
62: {NULL, NULL, NULL}
63: };
64:
65: static const struct rk_rule rk_rule_walphabet[] =
66: {
67: {"a", "a", NULL},
68: {"b", "b", NULL},
69: {"c", "c", NULL},
70: {"d", "d", NULL},
71: {"e", "e", NULL},
72: {"f", "f", NULL},
73: {"g", "g", NULL},
74: {"h", "h", NULL},
75: {"i", "i", NULL},
76: {"j", "j", NULL},
77: {"k", "k", NULL},
78: {"l", "l", NULL},
79: {"m", "m", NULL},
80: {"n", "n", NULL},
81: {"o", "o", NULL},
82: {"p", "p", NULL},
83: {"q", "q", NULL},
84: {"r", "r", NULL},
85: {"s", "s", NULL},
86: {"t", "t", NULL},
87: {"u", "u", NULL},
88: {"v", "v", NULL},
89: {"w", "w", NULL},
90: {"x", "x", NULL},
91: {"y", "y", NULL},
92: {"z", "z", NULL},
93: {"A", "A", NULL},
94: {"B", "B", NULL},
95: {"C", "C", NULL},
96: {"D", "D", NULL},
97: {"E", "E", NULL},
98: {"F", "F", NULL},
99: {"G", "G", NULL},
100: {"H", "H", NULL},
101: {"I", "I", NULL},
102: {"J", "J", NULL},
103: {"K", "K", NULL},
104: {"L", "L", NULL},
105: {"M", "M", NULL},
106: {"N", "N", NULL},
107: {"O", "O", NULL},
108: {"P", "P", NULL},
109: {"Q", "Q", NULL},
110: {"R", "R", NULL},
111: {"S", "S", NULL},
112: {"T", "T", NULL},
113: {"U", "U", NULL},
114: {"V", "V", NULL},
115: {"W", "W", NULL},
116: {"X", "X", NULL},
117: {"Y", "Y", NULL},
118: {"Z", "Z", NULL},
119:
120: {NULL, NULL, NULL}
121: };
122:
123: #define SKK_LIKE_KIGO_MAP \
124: {"z/", "・", NULL}, \
125: {"z[", "「", NULL}, \
126: {"z]", "」", NULL}, \
127: {"z,", "‥", NULL}, \
128: {"z.", "…", NULL}, \
129: {"z-", "〜", NULL}, \
130: {"zh", "←", NULL}, \
131: {"zj", "↓", NULL}, \
132: {"zk", "↑", NULL}, \
133: {"zl", "→", NULL}
134:
135: static const struct rk_rule rk_rule_hiragana[] =
136: {
137: SKK_LIKE_KIGO_MAP,
138:
139: {"a", "あ", NULL},
140: {"i", "い", NULL},
141: {"u", "う", NULL},
142: {"e", "え", NULL},
143: {"o", "お", NULL},
144:
145: {"xa", "ぁ", NULL},
146: {"xi", "ぃ", NULL},
147: {"xu", "ぅ", NULL},
148: {"xe", "ぇ", NULL},
149: {"xo", "ぉ", NULL},
150:
151: {"ka", "か", NULL},
152: {"ki", "き", NULL},
153: {"ku", "く", NULL},
154: {"ke", "け", NULL},
155: {"ko", "こ", NULL},
156:
157: {"kya", "きゃ", NULL},
158: {"kyi", "きぃ", NULL},
159: {"kyu", "きゅ", NULL},
160: {"kye", "きぇ", NULL},
161: {"kyo", "きょ", NULL},
162:
163: {"k", "っ", "k"},
164:
165: {"ga", "が", NULL},
166: {"gi", "ぎ", NULL},
167: {"gu", "ぐ", NULL},
168: {"ge", "げ", NULL},
169: {"go", "ご", NULL},
170:
171: {"gya", "ぎゃ", NULL},
172: {"gyi", "ぎぃ", NULL},
173: {"gyu", "ぎゅ", NULL},
174: {"gye", "ぎぇ", NULL},
175: {"gyo", "ぎょ", NULL},
176:
177: {"g", "っ", "g"},
178:
179: {"sa", "さ", NULL},
180: {"si", "し", NULL},
181: {"su", "す", NULL},
182: {"se", "せ", NULL},
183: {"so", "そ", NULL},
184:
185: {"sya", "しゃ", NULL},
186: {"syi", "しぃ", NULL},
187: {"syu", "しゅ", NULL},
188: {"sye", "しぇ", NULL},
189: {"syo", "しょ", NULL},
190:
191: {"sha", "しゃ", NULL},
192: {"shi", "し", NULL},
193: {"shu", "しゅ", NULL},
194: {"she", "しぇ", NULL},
195: {"sho", "しょ", NULL},
196:
197: {"s", "っ", "s"},
198:
199: {"za", "ざ", NULL},
200: {"zi", "じ", NULL},
201: {"zu", "ず", NULL},
202: {"ze", "ぜ", NULL},
203: {"zo", "ぞ", NULL},
204:
205: {"zya", "じゃ", NULL},
206: {"zyi", "じぃ", NULL},
207: {"zyu", "じゅ", NULL},
208: {"zye", "じぇ", NULL},
209: {"zyo", "じょ", NULL},
210:
211: {"z", "っ", "z"},
212:
213: {"ja", "じゃ", NULL},
214: {"ji", "じ", NULL},
215: {"ju", "じゅ", NULL},
216: {"je", "じぇ", NULL},
217: {"jo", "じょ", NULL},
218:
219: {"jya", "じゃ", NULL},
220: {"jyi", "じぃ", NULL},
221: {"jyu", "じゅ", NULL},
222: {"jye", "じぇ", NULL},
223: {"jyo", "じょ", NULL},
224:
225: {"j", "っ", "j"},
226:
227: {"ta", "た", NULL},
228: {"ti", "ち", NULL},
229: {"tu", "つ", NULL},
230: {"te", "て", NULL},
231: {"to", "と", NULL},
232:
233: {"tya", "ちゃ", NULL},
234: {"tyi", "ちぃ", NULL},
235: {"tyu", "ちゅ", NULL},
236: {"tye", "ちぇ", NULL},
237: {"tyo", "ちょ", NULL},
238:
239: {"tha", "てぁ", NULL},
240: {"thi", "てぃ", NULL},
241: {"thu", "てゅ", NULL},
242: {"the", "てぇ", NULL},
243: {"tho", "てょ", NULL},
244:
245: {"t", "っ", "tc"},
246:
247: {"cha", "ちゃ", NULL},
248: {"chi", "ち", NULL},
249: {"chu", "ちゅ", NULL},
250: {"che", "ちぇ", NULL},
251: {"cho", "ちょ", NULL},
252:
253: {"tsu", "つ", NULL},
254: {"xtu", "っ", NULL},
255: {"xtsu", "っ", NULL},
256:
257: {"c", "っ", "c"},
258:
259: {"da", "だ", NULL},
260: {"di", "ぢ", NULL},
261: {"du", "づ", NULL},
262: {"de", "で", NULL},
263: {"do", "ど", NULL},
264:
265: {"dya", "ぢゃ", NULL},
266: {"dyi", "ぢぃ", NULL},
267: {"dyu", "ぢゅ", NULL},
268: {"dye", "ぢぇ", NULL},
269: {"dyo", "ぢょ", NULL},
270:
271: {"dha", "でゃ", NULL},
272: {"dhi", "でぃ", NULL},
273: {"dhu", "でゅ", NULL},
274: {"dhe", "でぇ", NULL},
275: {"dho", "でょ", NULL},
276:
277: {"d", "っ", "d"},
278:
279: {"na", "な", NULL},
280: {"ni", "に", NULL},
281: {"nu", "ぬ", NULL},
282: {"ne", "ね", NULL},
283: {"no", "の", NULL},
284:
285: {"nya", "にゃ", NULL},
286: {"nyi", "にぃ", NULL},
287: {"nyu", "にゅ", NULL},
288: {"nye", "にぇ", NULL},
289: {"nyo", "にょ", NULL},
290:
291: {"n", "ん", NULL},
292: {"nn", "ん", NULL},
293:
294: {"ha", "は", NULL},
295: {"hi", "ひ", NULL},
296: {"hu", "ふ", NULL},
297: {"he", "へ", NULL},
298: {"ho", "ほ", NULL},
299:
300: {"hya", "ひゃ", NULL},
301: {"hyi", "ひぃ", NULL},
302: {"hyu", "ひゅ", NULL},
303: {"hye", "ひぇ", NULL},
304: {"hyo", "ひょ", NULL},
305:
306: {"h", "っ", "h"},
307:
308: {"fa", "ふぁ", NULL},
309: {"fi", "ふぃ", NULL},
310: {"fu", "ふ", NULL},
311: {"fe", "ふぇ", NULL},
312: {"fo", "ふぉ", NULL},
313:
314: {"fya", "ふゃ", NULL},
315: {"fyi", "ふぃ", NULL},
316: {"fyu", "ふゅ", NULL},
317: {"fye", "ふぇ", NULL},
318: {"fyo", "ふょ", NULL},
319:
320: {"f", "っ", "f"},
321:
322: {"ba", "ば", NULL},
323: {"bi", "び", NULL},
324: {"bu", "ぶ", NULL},
325: {"be", "べ", NULL},
326: {"bo", "ぼ", NULL},
327:
328: {"bya", "びゃ", NULL},
329: {"byi", "びぃ", NULL},
330: {"byu", "びゅ", NULL},
331: {"bye", "びぇ", NULL},
332: {"byo", "びょ", NULL},
333:
334: {"b", "っ", "b" },
335:
336: {"pa", "ぱ", NULL},
337: {"pi", "ぴ", NULL},
338: {"pu", "ぷ", NULL},
339: {"pe", "ぺ", NULL},
340: {"po", "ぽ", NULL},
341:
342: {"pya", "ぴゃ", NULL},
343: {"pyi", "ぴぃ", NULL},
344: {"pyu", "ぴゅ", NULL},
345: {"pye", "ぴぇ", NULL},
346: {"pyo", "ぴょ", NULL},
347:
348: {"p", "っ", "p"},
349:
350: {"ma", "ま", NULL},
351: {"mi", "み", NULL},
352: {"mu", "む", NULL},
353: {"me", "め", NULL},
354: {"mo", "も", NULL},
355:
356: {"mya", "みゃ", NULL},
357: {"myi", "みぃ", NULL},
358: {"myu", "みゅ", NULL},
359: {"mye", "みぇ", NULL},
360: {"myo", "みょ", NULL},
361:
362: {"m", "ん", "bp"},
363: {"m", "っ", "m"},
364:
365: {"y", "っ", "y"},
366: {"ya", "や", NULL},
367: {"yu", "ゆ", NULL},
368: {"yo", "よ", NULL},
369:
370: {"xya", "ゃ", NULL},
371: {"xyu", "ゅ", NULL},
372: {"xyo", "ょ", NULL},
373:
374: {"r", "っ", "r"},
375: {"ra", "ら", NULL},
376: {"ri", "り", NULL},
377: {"ru", "る", NULL},
378: {"re", "れ", NULL},
379: {"ro", "ろ", NULL},
380:
381: {"rya", "りゃ", NULL},
382: {"ryi", "りぃ", NULL},
383: {"ryu", "りゅ", NULL},
384: {"rye", "りぇ", NULL},
385: {"ryo", "りょ", NULL},
386:
387: {"xwa", "ゎ", NULL},
388: {"wa", "わ", NULL},
389: {"wi", "うぃ", NULL},
390: {"xwi", "ゐ", NULL},
391: {"we", "うぇ", NULL},
392: {"xwe", "ゑ", NULL},
393: {"wo", "を", NULL},
394:
395: {"va", "う゛ぁ", NULL},
396: {"vi", "う゛ぃ", NULL},
397: {"vu", "う゛", NULL},
398: {"ve", "う゛ぇ", NULL},
399: {"vo", "う゛ぉ", NULL},
400:
401: {NULL, NULL, NULL}
402: };
403:
404: static const struct rk_rule rk_rule_katakana[] =
405: {
406: SKK_LIKE_KIGO_MAP,
407:
408: {"a", "ア", NULL},
409: {"i", "イ", NULL},
410: {"u", "ウ", NULL},
411: {"e", "エ", NULL},
412: {"o", "オ", NULL},
413:
414: {"xa", "ァ", NULL},
415: {"xi", "ィ", NULL},
416: {"xu", "ゥ", NULL},
417: {"xe", "ェ", NULL},
418: {"xo", "ォ", NULL},
419:
420: {"ka", "カ", NULL},
421: {"ki", "キ", NULL},
422: {"ku", "ク", NULL},
423: {"ke", "ケ", NULL},
424: {"ko", "コ", NULL},
425:
426: {"kya", "キャ", NULL},
427: {"kyi", "キィ", NULL},
428: {"kyu", "キュ", NULL},
429: {"kye", "キェ", NULL},
430: {"kyo", "キョ", NULL},
431:
432: {"k", "ッ", "k"},
433:
434: {"ga", "ガ", NULL},
435: {"gi", "ギ", NULL},
436: {"gu", "グ", NULL},
437: {"ge", "ゲ", NULL},
438: {"go", "ゴ", NULL},
439:
440: {"gya", "ギャ", NULL},
441: {"gyi", "ギィ", NULL},
442: {"gyu", "ギュ", NULL},
443: {"gye", "ギェ", NULL},
444: {"gyo", "ギョ", NULL},
445:
446: {"g", "ッ", "g"},
447:
448: {"sa", "サ", NULL},
449: {"si", "シ", NULL},
450: {"su", "ス", NULL},
451: {"se", "セ", NULL},
452: {"so", "ソ", NULL},
453:
454: {"sya", "シャ", NULL},
455: {"syi", "シィ", NULL},
456: {"syu", "シュ", NULL},
457: {"sye", "シェ", NULL},
458: {"syo", "ショ", NULL},
459:
460: {"sha", "シャ", NULL},
461: {"shi", "シ", NULL},
462: {"shu", "シュ", NULL},
463: {"she", "シェ", NULL},
464: {"sho", "ショ", NULL},
465:
466: {"s", "ッ", "s"},
467:
468: {"za", "ザ", NULL},
469: {"zi", "ジ", NULL},
470: {"zu", "ズ", NULL},
471: {"ze", "ゼ", NULL},
472: {"zo", "ゾ", NULL},
473:
474: {"zya", "ジャ", NULL},
475: {"zyi", "ジィ", NULL},
476: {"zyu", "ジュ", NULL},
477: {"zye", "ジェ", NULL},
478: {"zyo", "ジョ", NULL},
479:
480: {"z", "ッ", "z"},
481:
482: {"ja", "ジャ", NULL},
483: {"ji", "ジ", NULL},
484: {"ju", "ジュ", NULL},
485: {"je", "ジェ", NULL},
486: {"jo", "ジョ", NULL},
487:
488: {"jya", "ジャ", NULL},
489: {"jyi", "ジィ", NULL},
490: {"jyu", "ジュ", NULL},
491: {"jye", "ジェ", NULL},
492: {"jyo", "ジョ", NULL},
493:
494: {"j", "ッ", "j"},
495:
496: {"ta", "タ", NULL},
497: {"ti", "チ", NULL},
498: {"tu", "ツ", NULL},
499: {"te", "テ", NULL},
500: {"to", "ト", NULL},
501:
502: {"tya", "チャ", NULL},
503: {"tyi", "チィ", NULL},
504: {"tyu", "チュ", NULL},
505: {"tye", "チェ", NULL},
506: {"tyo", "チョ", NULL},
507:
508: {"tha", "テァ", NULL},
509: {"thi", "ティ", NULL},
510: {"thu", "テュ", NULL},
511: {"the", "テェ", NULL},
512: {"tho", "テョ", NULL},
513:
514: {"t", "ッ", "tc"},
515:
516: {"cha", "チャ", NULL},
517: {"chi", "チ", NULL},
518: {"chu", "チュ", NULL},
519: {"che", "チェ", NULL},
520: {"cho", "チョ", NULL},
521:
522: {"tsu", "ツ", NULL},
523: {"xtu", "ッ", NULL},
524: {"xtsu", "ッ", NULL},
525:
526: {"c", "ッ", "c"},
527:
528: {"da", "ダ", NULL},
529: {"di", "ヂ", NULL},
530: {"du", "ヅ", NULL},
531: {"de", "デ", NULL},
532: {"do", "ド", NULL},
533:
534: {"dya", "ヂャ", NULL},
535: {"dyi", "ヂィ", NULL},
536: {"dyu", "ヂュ", NULL},
537: {"dye", "ヂェ", NULL},
538: {"dyo", "ヂョ", NULL},
539:
540: {"dha", "デャ", NULL},
541: {"dhi", "ディ", NULL},
542: {"dhu", "デュ", NULL},
543: {"dhe", "デェ", NULL},
544: {"dho", "デョ", NULL},
545:
546: {"d", "ッ", "d"},
547:
548: {"na", "ナ", NULL},
549: {"ni", "ニ", NULL},
550: {"nu", "ヌ", NULL},
551: {"ne", "ネ", NULL},
552: {"no", "ノ", NULL},
553:
554: {"nya", "ニャ", NULL},
555: {"nyi", "ニィ", NULL},
556: {"nyu", "ニュ", NULL},
557: {"nye", "ニェ", NULL},
558: {"nyo", "ニョ", NULL},
559:
560: {"n", "ン", NULL},
561: {"nn", "ン", NULL},
562:
563: {"ha", "ハ", NULL},
564: {"hi", "ヒ", NULL},
565: {"hu", "フ", NULL},
566: {"he", "ヘ", NULL},
567: {"ho", "ホ", NULL},
568:
569: {"hya", "ヒャ", NULL},
570: {"hyi", "ヒィ", NULL},
571: {"hyu", "ヒュ", NULL},
572: {"hye", "ヒェ", NULL},