1 /* # skkinput (Simple Kana-Kanji Input)
2  * table.h --- define roma-kana table, roma-kana rule list and prefix rule.
3  * This file is part of skkinput.
4  * Copyright (C) 1997
5  * Takashi SAKAMOTO (sakamoto@yajima.kuis.kyoto-u.ac.jp)
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2, or (at your option)
10  * any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with skkinput; see the file COPYING.  If not, write to
19  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
20  */
21 #ifndef TABLE_H
22 #define TABLE_H
23 
24 struct roma_kana_table {
25   char *prefix ;
26   char *kana ;
27   char *katakana ;
28 } ;
29 
30 /* ���޻����ʤ��Ѵ��ơ��֥�֣���� */
31 static struct roma_kana_table skk_roma_kana_a[] = {
32   { "",   "��",   "��"   },
33   { "b" , "��",   "��"   },  { "by", "�Ӥ�", "�ӥ�" },
34   { "ch", "����", "����" },  { "cy", "����", "����" },
35   { "d",  "��",   "��"   },  { "dh", "�Ǥ�", "�ǥ�" },
36   { "dy", "�¤�", "�¥�" },
37   { "f",  "�դ�", "�ե�" },  { "fy", "�դ�", "�ե�" },
38   { "g",  "��",   "��"   },  { "gy", "����", "����" },
39   { "h",  "��",   "��"   },  { "hy", "�Ҥ�", "�ҥ�" },
40   { "j",  "����", "����" },  { "jy", "����", "����" },
41   { "k",  "��",   "��"   },  { "ky", "����", "����" },
42   { "m",  "��",   "��"   },  { "my", "�ߤ�", "�ߥ�" },
43   { "n",  "��",   "��"   },  { "ny", "�ˤ�", "�˥�" },
44   { "p",  "��",   "��"   },  { "py", "�Ԥ�", "�ԥ�" },
45   { "r",  "��",   "��"   },  { "ry", "���", "���" },
46   { "s",  "��",   "��"   },  { "sh", "����", "����" },
47   { "sy", "����", "����" },
48   { "t",  "��",   "��"   },  { "th", "�Ƥ�", "�ƥ�" },
49   { "ty", "����", "����" },
50   { "v",  "������", "����" },{ "w",  "��",   "��" },
51   { "x",  "��",   "��"   },  { "xk", "��",   "��" },
52   { "xw", "��",   "��"   },  { "xy", "��",   "��" },
53   { "y",  "��",   "��"   },
54   { "z",  "��",   "��"   },  { "zy", "����", "����" },
55   { NULL, NULL,     NULL }
56 } ;
57 
58 /* ���޻����ʤ��Ѵ��ơ��֥�֣���� */
59 static struct roma_kana_table skk_roma_kana_i[] = {
60   { "",   "��",     "��"   },
61   { "b",  "��",     "��"   }, {"by", "�Ӥ�", "�ӥ�"},
62   { "ch", "��",     "��"   }, {"cy", "����", "����"},
63   { "d",  "��",     "��"   }, {"dh", "�Ǥ�", "�ǥ�"},
64   { "dy", "�¤�",   "�¥�" },
65   { "f",  "�դ�",   "�ե�" }, {"fy", "�դ�", "�ե�"},
66   { "g",  "��",     "��"   }, {"gy", "����", "����"},
67   { "h",  "��",     "��"   }, {"hy", "�Ҥ�", "�ҥ�"},
68   { "j",  "��",     "��"   }, {"jy", "����", "����"},
69   { "k",  "��",     "��"   }, {"ky", "����", "����"},
70   { "m",  "��",     "��"   }, {"my", "�ߤ�", "�ߥ�"},
71   { "n",  "��",     "��"   }, {"ny", "�ˤ�", "�˥�"},
72   { "p",  "��",     "��"   }, {"py", "�Ԥ�", "�ԥ�"},
73   { "r",  "��",     "��"   }, {"ry", "�ꤣ", "�ꥣ"},
74   { "s",  "��",     "��"   }, {"sh", "��",   "��"},
75   { "sy", "����",   "����" },
76   { "t",  "��",     "��"   }, {"th", "�Ƥ�", "�ƥ�"},
77   { "ty", "����",   "����" },
78   { "v",  "������", "����" }, {"w",  "����", "����"},
79   { "x",  "��",     "��"   }, {"xw", "��",   "��"},
80   { "z",  "��",     "��"   }, {"zy", "����", "����"},
81   { NULL, NULL,     NULL   }
82 } ;
83 
84 /* ���޻����ʤ��Ѵ��ơ��֥�֣����� */
85 static struct roma_kana_table skk_roma_kana_u[] = {
86   { "",   "��",   "��"   },
87   { "b",  "��",   "��"   }, { "by", "�Ӥ�", "�ӥ�" },
88   { "ch", "����", "����" }, { "cy", "����", "����" },
89   { "d",  "��",   "��"   }, { "dh", "�Ǥ�", "�ǥ�" },
90   { "dy", "�¤�", "�¥�" },
91   { "f",  "��",   "��"   }, { "fy", "�դ�", "�ե�" },
92   { "g",  "��",   "��"   }, { "gy", "����", "����" },
93   { "h",  "��",   "��"   }, { "hy", "�Ҥ�", "�ҥ�" },
94   { "j",  "����", "����" }, { "jy", "����", "����" },
95   { "k",  "��",   "��"   }, { "ky", "����", "����" },
96   { "m",  "��",   "��"   }, { "my", "�ߤ�", "�ߥ�" },
97   { "n",  "��",   "��"   }, { "ny", "�ˤ�", "�˥�" },
98   { "p",  "��",   "��"   }, { "py", "�Ԥ�", "�ԥ�" },
99   { "r",  "��",   "��"   }, { "ry", "���", "���" },
100   { "s",  "��",   "��"   }, { "sh", "����", "����" },
101   { "sy", "����", "����" },
102   { "t",  "��",   "��"   }, { "th", "�Ƥ�", "�ƥ�" },
103   { "ts", "��",   "��"   }, { "ty", "����", "����" },
104   { "v",  "����", "��"   }, { "w",  "��",   "��"   },
105   { "x",  "��",   "��"   }, { "xt", "��",   "��"   },
106   { "xts","��",   "��"   }, { "xy", "��",   "��"   },
107   { "y",  "��",   "��"   },
108   { "z",  "��",   "��"   }, { "zy", "����", "����" },
109   { NULL, NULL,     NULL }
110 } ;
111 
112 /* ���޻����ʤ��Ѵ��ơ��֥�֣���� */
113 static struct roma_kana_table skk_roma_kana_e[] = {
114   { "",   "��",     "��"   },
115   { "b",  "��",     "��"   }, { "by", "�Ӥ�", "�ӥ�" },
116   { "ch", "����",   "����" }, { "cy", "����", "����" },
117   { "d",  "��",     "��"   }, { "dh", "�Ǥ�", "�ǥ�" },
118   { "dy", "�¤�",   "�¥�" },
119   { "f",  "�դ�",   "�ե�" }, { "fy", "�դ�", "�ե�" },
120   { "g",  "��",     "��"   }, { "gy", "����", "����" },
121   { "h",  "��",     "��"   }, { "hy", "�Ҥ�", "�ҥ�" },
122   { "j",  "����",   "����" }, { "jy", "����", "����" },
123   { "k",  "��",     "��"   }, { "ky", "����", "����" },
124   { "m",  "��",     "��"   }, { "my", "�ߤ�", "�ߥ�" },
125   { "n",  "��",     "��"   }, { "ny", "�ˤ�", "�˥�" },
126   { "p",  "��",     "��"   }, { "py", "�Ԥ�", "�ԥ�" },
127   { "r",  "��",     "��"   }, { "ry", "�ꤧ", "�ꥧ" },
128   { "s",  "��",     "��"   }, { "sh", "����", "����" },
129   { "sy", "����",   "����" },
130   { "t",  "��",     "��"   }, { "th", "�Ƥ�", "�ƥ�" },
131   { "ty", "����",   "����" },
132   { "v",  "������", "����" }, { "w",  "����", "����" },
133   { "x",  "��",     "��"   }, { "xk", "��",   "��"   },
134   { "xw", "��",     "��"   },
135   { "y",  "����",   "����" },
136   { "z",  "��",     "��"   }, { "zy", "����", "����" },
137   { NULL, NULL,     NULL   }
138 } ;
139 
140 /* ���޻����ʤ��Ѵ��ơ��֥�֣���� */
141 static struct roma_kana_table skk_roma_kana_o[] = {
142   { "",   "��",     "��"   },
143   { "b",  "��",     "��"   }, { "by", "�Ӥ�", "�ӥ�" },
144   { "ch", "����",   "����" }, { "cy", "����", "����" },
145   { "d",  "��",     "��"   }, { "dh", "�Ǥ�", "�ǥ�" },
146   { "dy", "�¤�",   "�¥�" },
147   { "f",  "�դ�",   "�ե�" }, { "fy", "�դ�", "�ե�" },
148   { "g",  "��",     "��"   }, { "gy", "����", "����" },
149   { "h",  "��",     "��"   }, { "hy", "�Ҥ�", "�ҥ�" },
150   { "j",  "����",   "����" }, { "jy", "����", "����" },
151   { "k",  "��",     "��"   }, { "ky", "����", "����" },
152   { "m",  "��",     "��"   }, { "my", "�ߤ�", "�ߥ�" },
153   { "n",  "��",     "��"   }, { "ny", "�ˤ�", "�˥�" },
154   { "p",  "��",     "��"   }, { "py", "�Ԥ�", "�ԥ�" },
155   { "r",  "��",     "��"   }, { "ry", "���", "���" },
156   { "s",  "��",     "��"   }, { "sh", "����", "����" },
157   { "sy", "����",   "����" },
158   { "t",  "��",     "��"   }, { "th", "�Ƥ�", "�ƥ�" },
159   { "ty", "����",   "����" },
160   { "v",  "������", "����" }, { "w",  "��",   "��"   },
161   { "x",  "��",     "��"   }, { "xy", "��",   "��"   },
162   { "y",  "��",     "��"   },
163   { "z",  "��",     "��"   }, { "zy", "����", "����" },
164   { NULL, NULL,     NULL   }
165 } ;
166 
167 /* ʸ���λ���°���ơ��֥롣*/
168 static int skk_char_type_vector[] = {
169   0, 0, 0, 0, 0, 0, 0, 0,
170   5, 0, 0, 0, 0, 0, 0, 0,
171   0, 0, 0, 0, 0, 0, 0, 0,
172   0, 0, 0, 0, 0, 0, 0, 0,
173   0, 0, 0, 0, 0, 0, 0, 0,
174   0, 0, 0, 0, 0, 0, 0, 0,
175   0, 0, 0, 0, 0, 0, 0, 0,
176   0, 0, 0, 0, 0, 0, 0, 0,
177   0, 4, 4, 4, 4, 4, 4, 4,
178   4, 4, 4, 4, 0, 4, 4, 4,
179   4, 0, 4, 4, 4, 4, 4, 4,
180   0, 4, 4, 0, 0, 0, 0, 0,
181   0, 3, 1, 1, 1, 3, 1, 1,
182   1, 3, 1, 1, 0, 1, 2, 3,
183   1, 0, 1, 1, 1, 3, 1, 1,
184   2, 1, 1, 0, 0, 0, 0, 5,
185 } ;
186 
187 /* ��ǽ�� prefix �Υꥹ�� */
188 static char *skk_prefix_list[] = {
189   "by", "ch", "cy", "dh", "dy", "fy", "gy", "hy", "jy", "ky",  "my",
190   "py", "ry", "sh", "sy", "th", "ts", "ty", "xk", "xt", "xts", "xw",
191   "xy", "zy", "ny", NULL
192 } ;
193 
194 #if 0
195 static struct skk_rom_kana_rule skkinput_rom_kana_rule_list[] = {
196   { "nn", "n",  "��", "��" },
197   { "n'", NULL, "��", "��" },
198   { "nL", NULL, "��", "��" },
199   { "nl", NULL, "��", "��" },
200   { NULL, NULL, NULL, NULL },
201 } ;
202 #endif
203 #endif
204 
205