1/*
2 * big5   first byte:   A1-FE
3 *        second byte:   40-7E, A1-FE
4 *
5 * $FreeBSD$
6 */
7
8ENCODING        "BIG5"
9/* VARIABLE	BIG5 character set */
10
11/*
12 * ASCII
13 */
14ALPHA		'A' - 'Z' 'a' - 'z'
15CONTROL		0x00 - 0x1f 0x7f
16DIGIT		'0' - '9'
17GRAPH		0x21 - 0x7e
18LOWER		'a' - 'z'
19PUNCT		0x21 - 0x2f 0x3a - 0x40 0x5b - 0x60 0x7b - 0x7e
20SPACE		0x09 - 0x0d 0x20
21UPPER		'A' - 'Z'
22XDIGIT          '0' - '9' 'a' - 'f' 'A' - 'F'
23BLANK		' ' '\t'
24PRINT		0x20 - 0x7e
25SWIDTH1		0x20 - 0x7e
26
27MAPLOWER       	< 'A' - 'Z' : 'a' >
28MAPLOWER       	< 'a' - 'z' : 'a' >
29MAPUPPER       	< 'A' - 'Z' : 'A' >
30MAPUPPER       	< 'a' - 'z' : 'A' >
31TODIGIT       	< '0' - '9' : 0 >
32TODIGIT       	< 'A' - 'F' : 10 >
33TODIGIT       	< 'a' - 'f' : 10 >
34
35/*
36 * the real thing
37 */
38
39PUNCT           0xa141 - 0xa17e 0xa1a1 - 0xa1ac
40SWIDTH2         0xa141 - 0xa17e 0xa1a1 - 0xa1ac
41
42SPECIAL         0xa1ad - 0xa1fe 0xa240 - 0xa27e 0xa2a1 - 0xa2ae
43SWIDTH2         0xa1ad - 0xa1fe 0xa240 - 0xa27e 0xa2a1 - 0xa2ae
44
45/* full width 0 1 2 .. 9 */
46/* ?DIGIT           0xa2af - 0xa2b8 */
47/* SWIDTH2          0xa2af - 0xa2b8 */
48
49/* map these (SuChou Code (12) and Roman (I II etc.) number (10)) to digits */
50TODIGIT         < 0xa2b9 - 0xa2c2 : 1 >
51TODIGIT         < 0xa2c3 - 0xa2ce : 1 >
52
53/* full width A .. Z and a .. z */
54/* note the lower case alphabets are not continuous */
55UPPER           0xa2cf - 0xa2e8
56LOWER           0xa2e9 - 0xa2fe 0xa340 - 0xa343
57SWIDTH2         0xa2cf - 0xa2e8
58SWIDTH2         0xa2e9 - 0xa2fe 0xa340 - 0xa343
59
60/* we have to got two line for each 'cause they are not continuous */
61MAPLOWER        < 0xa2cf - 0xa2e4 : 0xa2e9 > < 0xa2e5 - 0xa2e8 : 0xa340 >
62MAPLOWER        < 0xa2e9 - 0xa2fe : 0xa2e9 > < 0xa340 - 0xa343 : 0xa340 >
63MAPUPPER        < 0xa2cf - 0xa2e4 : 0xa2cf > < 0xa2e5 - 0xa2e8 : 0xa2e5 >
64MAPUPPER        < 0xa2e9 - 0xa2fe : 0xa2cf > < 0xa340 - 0xa343 : 0xa2e5 >
65
66/* ?XDIGIT          0xa2cf - 0xa2d4 0xa2e9 - 0xa2ee */
67/* SWIDTH2          0xa2cf - 0xa2d4 0xa2e9 - 0xa2ee */
68
69SPACE           0xa3bc
70BLANK           0xa3bc
71SWIDTH2         0xa3bc
72/* bopomofo symbols */
73PHONOGRAM       0xa374 - 0xa37e 0xa3a1 - 0xa3bb
74SWIDTH2         0xa374 - 0xa37e 0xa3a1 - 0xa3bb
75/* tone symbols */
76PHONOGRAM       0xa3bd - 0xa3bf
77SWIDTH2         0xa3bd - 0xa3bf
78/* control */
79CONTROL         0xa3c0 - 0xa3fe
80
81/* greek */
82UPPER           0xa344 - 0xa35b
83LOWER           0xa35c - 0xa373
84SWIDTH2         0xa344 - 0xa35b
85SWIDTH2         0xa35c - 0xa373
86MAPUPPER        < 0xa344 - 0xa35b : 0xa344 > < 0xa35c - 0xa373 : 0xa344 >
87MAPLOWER        < 0xa344 - 0xa35b : 0xa35c > < 0xa35c - 0xa373 : 0xa35c >
88
89/* cyrillic (russian etc) */
90UPPER           0xc7f3 - 0xc7fe 0xc840 - 0xc854
91LOWER           0xc855 - 0xc875
92SWIDTH2         0xc7f3 - 0xc7fe 0xc840 - 0xc854
93SWIDTH2         0xc855 - 0xc875
94MAPUPPER        < 0xc7f3 - 0xc7fe : 0xc7f3 > < 0xc840 - 0xc854 : 0xc840 >
95MAPUPPER        < 0xc855 - 0xc860 : 0xc7f3 > < 0xc861 - 0xc875 : 0xc840 >
96MAPLOWER        < 0xc7f3 - 0xc7fe : 0xc855 > < 0xc840 - 0xc854 : 0xc861 >
97MAPLOWER        < 0xc855 - 0xc860 : 0xc855 > < 0xc861 - 0xc875 : 0xc861 >
98
99IDEOGRAM        0xa440 - 0xa47e 0xa4a1 - 0xa4fe
100IDEOGRAM        0xa540 - 0xa57e 0xa5a1 - 0xa5fe
101IDEOGRAM        0xa640 - 0xa67e 0xa6a1 - 0xa6fe
102IDEOGRAM        0xa740 - 0xa77e 0xa7a1 - 0xa7fe
103IDEOGRAM        0xa840 - 0xa87e 0xa8a1 - 0xa8fe
104IDEOGRAM        0xa940 - 0xa97e 0xa9a1 - 0xa9fe
105IDEOGRAM        0xaa40 - 0xaa7e 0xaaa1 - 0xaafe
106IDEOGRAM        0xab40 - 0xab7e 0xaba1 - 0xabfe
107IDEOGRAM        0xac40 - 0xac7e 0xaca1 - 0xacfe
108IDEOGRAM        0xad40 - 0xad7e 0xada1 - 0xadfe
109IDEOGRAM        0xae40 - 0xae7e 0xaea1 - 0xaefe
110IDEOGRAM        0xaf40 - 0xaf7e 0xafa1 - 0xaffe
111IDEOGRAM        0xb040 - 0xb07e 0xb0a1 - 0xb0fe
112IDEOGRAM        0xb140 - 0xb17e 0xb1a1 - 0xb1fe
113IDEOGRAM        0xb240 - 0xb27e 0xb2a1 - 0xb2fe
114IDEOGRAM        0xb340 - 0xb37e 0xb3a1 - 0xb3fe
115IDEOGRAM        0xb440 - 0xb47e 0xb4a1 - 0xb4fe
116IDEOGRAM        0xb540 - 0xb57e 0xb5a1 - 0xb5fe
117IDEOGRAM        0xb640 - 0xb67e 0xb6a1 - 0xb6fe
118IDEOGRAM        0xb740 - 0xb77e 0xb7a1 - 0xb7fe
119IDEOGRAM        0xb840 - 0xb87e 0xb8a1 - 0xb8fe
120IDEOGRAM        0xb940 - 0xb97e 0xb9a1 - 0xb9fe
121IDEOGRAM        0xba40 - 0xba7e 0xbaa1 - 0xbafe
122IDEOGRAM        0xbb40 - 0xbb7e 0xbba1 - 0xbbfe
123IDEOGRAM        0xbc40 - 0xbc7e 0xbca1 - 0xbcfe
124IDEOGRAM        0xbd40 - 0xbd7e 0xbda1 - 0xbdfe
125IDEOGRAM        0xbe40 - 0xbe7e 0xbea1 - 0xbefe
126IDEOGRAM        0xbf40 - 0xbf7e 0xbfa1 - 0xbffe
127IDEOGRAM        0xc040 - 0xc07e 0xc0a1 - 0xc0fe
128IDEOGRAM        0xc140 - 0xc17e 0xc1a1 - 0xc1fe
129IDEOGRAM        0xc240 - 0xc27e 0xc2a1 - 0xc2fe
130IDEOGRAM        0xc340 - 0xc37e 0xc3a1 - 0xc3fe
131IDEOGRAM        0xc440 - 0xc47e 0xc4a1 - 0xc4fe
132IDEOGRAM        0xc540 - 0xc57e 0xc5a1 - 0xc5fe
133IDEOGRAM        0xc640 - 0xc67e
134
135SWIDTH2         0xa440 - 0xa47e 0xa4a1 - 0xa4fe
136SWIDTH2         0xa540 - 0xa57e 0xa5a1 - 0xa5fe
137SWIDTH2         0xa640 - 0xa67e 0xa6a1 - 0xa6fe
138SWIDTH2         0xa740 - 0xa77e 0xa7a1 - 0xa7fe
139SWIDTH2         0xa840 - 0xa87e 0xa8a1 - 0xa8fe
140SWIDTH2         0xa940 - 0xa97e 0xa9a1 - 0xa9fe
141SWIDTH2         0xaa40 - 0xaa7e 0xaaa1 - 0xaafe
142SWIDTH2         0xab40 - 0xab7e 0xaba1 - 0xabfe
143SWIDTH2         0xac40 - 0xac7e 0xaca1 - 0xacfe
144SWIDTH2         0xad40 - 0xad7e 0xada1 - 0xadfe
145SWIDTH2         0xae40 - 0xae7e 0xaea1 - 0xaefe
146SWIDTH2         0xaf40 - 0xaf7e 0xafa1 - 0xaffe
147SWIDTH2         0xb040 - 0xb07e 0xb0a1 - 0xb0fe
148SWIDTH2         0xb140 - 0xb17e 0xb1a1 - 0xb1fe
149SWIDTH2         0xb240 - 0xb27e 0xb2a1 - 0xb2fe
150SWIDTH2         0xb340 - 0xb37e 0xb3a1 - 0xb3fe
151SWIDTH2         0xb440 - 0xb47e 0xb4a1 - 0xb4fe
152SWIDTH2         0xb540 - 0xb57e 0xb5a1 - 0xb5fe
153SWIDTH2         0xb640 - 0xb67e 0xb6a1 - 0xb6fe
154SWIDTH2         0xb740 - 0xb77e 0xb7a1 - 0xb7fe
155SWIDTH2         0xb840 - 0xb87e 0xb8a1 - 0xb8fe
156SWIDTH2         0xb940 - 0xb97e 0xb9a1 - 0xb9fe
157SWIDTH2         0xba40 - 0xba7e 0xbaa1 - 0xbafe
158SWIDTH2         0xbb40 - 0xbb7e 0xbba1 - 0xbbfe
159SWIDTH2         0xbc40 - 0xbc7e 0xbca1 - 0xbcfe
160SWIDTH2         0xbd40 - 0xbd7e 0xbda1 - 0xbdfe
161SWIDTH2         0xbe40 - 0xbe7e 0xbea1 - 0xbefe
162SWIDTH2         0xbf40 - 0xbf7e 0xbfa1 - 0xbffe
163SWIDTH2         0xc040 - 0xc07e 0xc0a1 - 0xc0fe
164SWIDTH2         0xc140 - 0xc17e 0xc1a1 - 0xc1fe
165SWIDTH2         0xc240 - 0xc27e 0xc2a1 - 0xc2fe
166SWIDTH2         0xc340 - 0xc37e 0xc3a1 - 0xc3fe
167SWIDTH2         0xc440 - 0xc47e 0xc4a1 - 0xc4fe
168SWIDTH2         0xc540 - 0xc57e 0xc5a1 - 0xc5fe
169SWIDTH2         0xc640 - 0xc67e
170
171IDEOGRAM        0xc940 - 0xc97e 0xc9a1 - 0xc9fe
172IDEOGRAM        0xca40 - 0xca7e 0xcaa1 - 0xcafe
173IDEOGRAM        0xcb40 - 0xcb7e 0xcba1 - 0xcbfe
174IDEOGRAM        0xcc40 - 0xcc7e 0xcca1 - 0xccfe
175IDEOGRAM        0xcd40 - 0xcd7e 0xcda1 - 0xcdfe
176IDEOGRAM        0xce40 - 0xce7e 0xcea1 - 0xcefe
177IDEOGRAM        0xcf40 - 0xcf7e 0xcfa1 - 0xcffe
178IDEOGRAM        0xd040 - 0xd07e 0xd0a1 - 0xd0fe
179IDEOGRAM        0xd140 - 0xd17e 0xd1a1 - 0xd1fe
180IDEOGRAM        0xd240 - 0xd27e 0xd2a1 - 0xd2fe
181IDEOGRAM        0xd340 - 0xd37e 0xd3a1 - 0xd3fe
182IDEOGRAM        0xd440 - 0xd47e 0xd4a1 - 0xd4fe
183IDEOGRAM        0xd540 - 0xd57e 0xd5a1 - 0xd5fe
184IDEOGRAM        0xd640 - 0xd67e 0xd6a1 - 0xd6fe
185IDEOGRAM        0xd740 - 0xd77e 0xd7a1 - 0xd7fe
186IDEOGRAM        0xd840 - 0xd87e 0xd8a1 - 0xd8fe
187IDEOGRAM        0xd940 - 0xd97e 0xd9a1 - 0xd9fe
188IDEOGRAM        0xda40 - 0xda7e 0xdaa1 - 0xdafe
189IDEOGRAM        0xdb40 - 0xdb7e 0xdba1 - 0xdbfe
190IDEOGRAM        0xdc40 - 0xdc7e 0xdca1 - 0xdcfe
191IDEOGRAM        0xdd40 - 0xdd7e 0xdda1 - 0xddfe
192IDEOGRAM        0xde40 - 0xde7e 0xdea1 - 0xdefe
193IDEOGRAM        0xdf40 - 0xdf7e 0xdfa1 - 0xdffe
194IDEOGRAM        0xe040 - 0xe07e 0xe0a1 - 0xe0fe
195IDEOGRAM        0xe140 - 0xe17e 0xe1a1 - 0xe1fe
196IDEOGRAM        0xe240 - 0xe27e 0xe2a1 - 0xe2fe
197IDEOGRAM        0xe340 - 0xe37e 0xe3a1 - 0xe3fe
198IDEOGRAM        0xe440 - 0xe47e 0xe4a1 - 0xe4fe
199IDEOGRAM        0xe540 - 0xe57e 0xe5a1 - 0xe5fe
200IDEOGRAM        0xe640 - 0xe67e 0xe6a1 - 0xe6fe
201IDEOGRAM        0xe740 - 0xe77e 0xe7a1 - 0xe7fe
202IDEOGRAM        0xe840 - 0xe87e 0xe8a1 - 0xe8fe
203IDEOGRAM        0xe940 - 0xe97e 0xe9a1 - 0xe9fe
204IDEOGRAM        0xea40 - 0xea7e 0xeaa1 - 0xeafe
205IDEOGRAM        0xeb40 - 0xeb7e 0xeba1 - 0xebfe
206IDEOGRAM        0xec40 - 0xec7e 0xeca1 - 0xecfe
207IDEOGRAM        0xed40 - 0xed7e 0xeda1 - 0xedfe
208IDEOGRAM        0xee40 - 0xee7e 0xeea1 - 0xeefe
209IDEOGRAM        0xef40 - 0xef7e 0xefa1 - 0xeffe
210IDEOGRAM        0xf040 - 0xf07e 0xf0a1 - 0xf0fe
211IDEOGRAM        0xf140 - 0xf17e 0xf1a1 - 0xf1fe
212IDEOGRAM        0xf240 - 0xf27e 0xf2a1 - 0xf2fe
213IDEOGRAM        0xf340 - 0xf37e 0xf3a1 - 0xf3fe
214IDEOGRAM        0xf440 - 0xf47e 0xf4a1 - 0xf4fe
215IDEOGRAM        0xf540 - 0xf57e 0xf5a1 - 0xf5fe
216IDEOGRAM        0xf640 - 0xf67e 0xf6a1 - 0xf6fe
217IDEOGRAM        0xf740 - 0xf77e 0xf7a1 - 0xf7fe
218IDEOGRAM        0xf840 - 0xf87e 0xf8a1 - 0xf8fe
219IDEOGRAM        0xf940 - 0xf97e 0xf9a1 - 0xf9dc
220
221SWIDTH2         0xc940 - 0xc97e 0xc9a1 - 0xc9fe
222SWIDTH2         0xca40 - 0xca7e 0xcaa1 - 0xcafe
223SWIDTH2         0xcb40 - 0xcb7e 0xcba1 - 0xcbfe
224SWIDTH2         0xcc40 - 0xcc7e 0xcca1 - 0xccfe
225SWIDTH2         0xcd40 - 0xcd7e 0xcda1 - 0xcdfe
226SWIDTH2         0xce40 - 0xce7e 0xcea1 - 0xcefe
227SWIDTH2         0xcf40 - 0xcf7e 0xcfa1 - 0xcffe
228SWIDTH2         0xd040 - 0xd07e 0xd0a1 - 0xd0fe
229SWIDTH2         0xd140 - 0xd17e 0xd1a1 - 0xd1fe
230SWIDTH2         0xd240 - 0xd27e 0xd2a1 - 0xd2fe
231SWIDTH2         0xd340 - 0xd37e 0xd3a1 - 0xd3fe
232SWIDTH2         0xd440 - 0xd47e 0xd4a1 - 0xd4fe
233SWIDTH2         0xd540 - 0xd57e 0xd5a1 - 0xd5fe
234SWIDTH2         0xd640 - 0xd67e 0xd6a1 - 0xd6fe
235SWIDTH2         0xd740 - 0xd77e 0xd7a1 - 0xd7fe
236SWIDTH2         0xd840 - 0xd87e 0xd8a1 - 0xd8fe
237SWIDTH2         0xd940 - 0xd97e 0xd9a1 - 0xd9fe
238SWIDTH2         0xda40 - 0xda7e 0xdaa1 - 0xdafe
239SWIDTH2         0xdb40 - 0xdb7e 0xdba1 - 0xdbfe
240SWIDTH2         0xdc40 - 0xdc7e 0xdca1 - 0xdcfe
241SWIDTH2         0xdd40 - 0xdd7e 0xdda1 - 0xddfe
242SWIDTH2         0xde40 - 0xde7e 0xdea1 - 0xdefe
243SWIDTH2         0xdf40 - 0xdf7e 0xdfa1 - 0xdffe
244SWIDTH2         0xe040 - 0xe07e 0xe0a1 - 0xe0fe
245SWIDTH2         0xe140 - 0xe17e 0xe1a1 - 0xe1fe
246SWIDTH2         0xe240 - 0xe27e 0xe2a1 - 0xe2fe
247SWIDTH2         0xe340 - 0xe37e 0xe3a1 - 0xe3fe
248SWIDTH2         0xe440 - 0xe47e 0xe4a1 - 0xe4fe
249SWIDTH2         0xe540 - 0xe57e 0xe5a1 - 0xe5fe
250SWIDTH2         0xe640 - 0xe67e 0xe6a1 - 0xe6fe
251SWIDTH2         0xe740 - 0xe77e 0xe7a1 - 0xe7fe
252SWIDTH2         0xe840 - 0xe87e 0xe8a1 - 0xe8fe
253SWIDTH2         0xe940 - 0xe97e 0xe9a1 - 0xe9fe
254SWIDTH2         0xea40 - 0xea7e 0xeaa1 - 0xeafe
255SWIDTH2         0xeb40 - 0xeb7e 0xeba1 - 0xebfe
256SWIDTH2         0xec40 - 0xec7e 0xeca1 - 0xecfe
257SWIDTH2         0xed40 - 0xed7e 0xeda1 - 0xedfe
258SWIDTH2         0xee40 - 0xee7e 0xeea1 - 0xeefe
259SWIDTH2         0xef40 - 0xef7e 0xefa1 - 0xeffe
260SWIDTH2         0xf040 - 0xf07e 0xf0a1 - 0xf0fe
261SWIDTH2         0xf140 - 0xf17e 0xf1a1 - 0xf1fe
262SWIDTH2         0xf240 - 0xf27e 0xf2a1 - 0xf2fe
263SWIDTH2         0xf340 - 0xf37e 0xf3a1 - 0xf3fe
264SWIDTH2         0xf440 - 0xf47e 0xf4a1 - 0xf4fe
265SWIDTH2         0xf540 - 0xf57e 0xf5a1 - 0xf5fe
266SWIDTH2         0xf640 - 0xf67e 0xf6a1 - 0xf6fe
267SWIDTH2         0xf740 - 0xf77e 0xf7a1 - 0xf7fe
268SWIDTH2         0xf840 - 0xf87e 0xf8a1 - 0xf8fe
269SWIDTH2         0xf940 - 0xf97e 0xf9a1 - 0xf9dc
270
271/* Eten external charset 0xc6a1 - 0xc8d3 */
272
273/* lots strange numbers */
274SPECIAL         0xc6a1 - 0xc6be
275SWIDTH2         0xc6a1 - 0xc6be
276
277TODIGIT         < 0xc6a1 - 0xc6aa : 1 > < 0xc6ab - 0xc6b4 : 1 >
278TODIGIT         < 0xc6b5 - 0xc6be : 1>
279
280/* these are HanZi Radicals */
281SPECIAL         0xc6bf - 0xc6d7 0xc879 - 0xc87e 0xc8a1 - 0xc8a4
282SWIDTH2         0xc6bf - 0xc6d7 0xc879 - 0xc87e 0xc8a1 - 0xc8a4
283
284/* who knows what these are ... */
285SPECIAL         0xc6d8 - 0xc6e6 0xc876 - 0xc878
286SWIDTH2         0xc6d8 - 0xc6e6 0xc876 - 0xc878
287
288/* hiragana */
289SPECIAL         0xc6e7 - 0xc6fe 0xc740 - 0xc77a
290SWIDTH2         0xc6e7 - 0xc6fe 0xc740 - 0xc77a
291
292/* katakana */
293SPECIAL         0xc77b - 0xc77e 0xc7a1 - 0xc7f2
294SWIDTH2         0xc77b - 0xc77e 0xc7a1 - 0xc7f2
295
296/* ZIP code (in Japan) */
297SPECIAL         0xc8a5 - 0xc8cc
298SWIDTH2         0xc8a5 - 0xc8cc
299
300/* various Japanese symbols */
301SPECIAL         0xc8cd - 0xc8d3
302SWIDTH2         0xc8cd - 0xc8d3
303
304/* line drawing glyphs */
305SPECIAL         0xf9dd - 0xf9ff
306SWIDTH2         0xf9dd - 0xf9ff
307
308
309