1/*
2 * GB2312   first byte:   A1-FE
3 *          second byte:  A1-FE
4 *
5 * $FreeBSD$
6 */
7
8ENCODING	"GB2312"
9
10/*
11 * ASCII compatible
12 */
13ALPHA		'A' - 'Z' 'a' - 'z'
14BLANK		' ' '\t'
15CONTROL		0x00 - 0x1f 0x7f
16DIGIT		'0' - '9'
17GRAPH		0x21 - 0x7e
18LOWER		'a' - 'z'
19MAPLOWER	< 'A' - 'Z' : 'a' > < 'a' - 'z' : 'a' >
20MAPUPPER	< 'A' - 'Z' : 'A' > < 'a' - 'z' : 'A' >
21PRINT		0x20 - 0x7e
22PUNCT		0x21 - 0x2f 0x3a - 0x40 0x5b - 0x60 0x7b - 0x7e
23SPACE		0x09 - 0x0d 0x20
24TODIGIT		< '0' - '9' : 0 >
25TODIGIT		< 'A' - 'F' : 10 > < 'a' - 'f' : 10 >
26UPPER		'A' - 'Z'
27XDIGIT		'0' - '9' 'a' - 'f' 'A' - 'F'
28
29/*
30 * GB2312 data
31 */
32ALPHA		0xa3c1 - 0xa3da 0xa3e1 - 0xa3fa
33ALPHA		0xa6a1 - 0xa6b8 0xa6c1 - 0xa6d8
34ALPHA		0xa7a1 - 0xa7c1 0xa7d1 - 0xa7f1
35ALPHA		0xa8a1 - 0xa8bb 0xa8bd - 0xa8c0
36BLANK		0xa1a1
37DIGIT           0xa2a1 - 0xa2aa 0xa2b1 - 0xa2e2 0xa2e5 - 0xa2ee 0xa2f1 - 0xa2fc
38DIGIT           0xa3b0 - 0xa3b9
39GRAPH		0xa1a9
40GRAPH		0xa2ab - 0xa2b0 0xa2e4 0xa2ef 0xa2f0 0xa2fd 0xa2fe
41GRAPH		0xa4f4 - 0xa4fe
42GRAPH		0xa5f7 - 0xa5fe
43GRAPH		0xa6b9 - 0xa6c0 0xa6d9 - 0xa6df 0xa6ec 0xa6ed 0xa6f3 0xa6f6 - 0xa6fe
44GRAPH		0xa7c2 - 0xa7d0 0xa7f2 - 0xa7fe
45GRAPH		0xa8bc 0xa8c1 - 0xa8fe
46GRAPH		0xa9a1-0xa9a3 0xa9f0 - 0xa9fe
47GRAPH		0xaaa1 - 0xaafe
48GRAPH		0xaba1 - 0xabfe
49GRAPH		0xaca1 - 0xacfe
50GRAPH		0xada1 - 0xadfe
51GRAPH		0xaea1 - 0xaefe
52GRAPH		0xafa1 - 0xaffe
53GRAPH		0xd7fa - 0xd7fe
54IDEOGRAM	0xb0a1 - 0xb0fe
55IDEOGRAM	0xb1a1 - 0xb1fe
56IDEOGRAM	0xb2a1 - 0xb2fe
57IDEOGRAM	0xb3a1 - 0xb3fe
58IDEOGRAM	0xb4a1 - 0xb4fe
59IDEOGRAM	0xb5a1 - 0xb5fe
60IDEOGRAM	0xb6a1 - 0xb6fe
61IDEOGRAM	0xb7a1 - 0xb7fe
62IDEOGRAM	0xb8a1 - 0xb8fe
63IDEOGRAM	0xb9a1 - 0xb9fe
64IDEOGRAM	0xbaa1 - 0xbafe
65IDEOGRAM	0xbba1 - 0xbbfe
66IDEOGRAM	0xbca1 - 0xbcfe
67IDEOGRAM	0xbda1 - 0xbdfe
68IDEOGRAM	0xbea1 - 0xbefe
69IDEOGRAM	0xbfa1 - 0xbffe
70IDEOGRAM	0xc0a1 - 0xc0fe
71IDEOGRAM	0xc1a1 - 0xc1fe
72IDEOGRAM	0xc2a1 - 0xc2fe
73IDEOGRAM	0xc3a1 - 0xc3fe
74IDEOGRAM	0xc4a1 - 0xc4fe
75IDEOGRAM	0xc5a1 - 0xc5fe
76IDEOGRAM	0xc6a1 - 0xc6fe
77IDEOGRAM	0xc7a1 - 0xc7fe
78IDEOGRAM	0xc8a1 - 0xc8fe
79IDEOGRAM	0xc9a1 - 0xc9fe
80IDEOGRAM	0xcaa1 - 0xcafe
81IDEOGRAM	0xcba1 - 0xcbfe
82IDEOGRAM	0xcca1 - 0xccfe
83IDEOGRAM	0xcda1 - 0xcdfe
84IDEOGRAM	0xcea1 - 0xcefe
85IDEOGRAM	0xcfa1 - 0xcffe
86IDEOGRAM	0xd0a1 - 0xd0fe
87IDEOGRAM	0xd1a1 - 0xd1fe
88IDEOGRAM	0xd2a1 - 0xd2fe
89IDEOGRAM	0xd3a1 - 0xd3fe
90IDEOGRAM	0xd4a1 - 0xd4fe
91IDEOGRAM	0xd5a1 - 0xd5fe
92IDEOGRAM	0xd6a1 - 0xd6fe
93IDEOGRAM	0xd7a1 - 0xd7fe
94IDEOGRAM	0xd8a1 - 0xd8fe
95IDEOGRAM	0xd9a1 - 0xd9fe
96IDEOGRAM	0xdaa1 - 0xdafe
97IDEOGRAM	0xdba1 - 0xdbfe
98IDEOGRAM	0xdca1 - 0xdcfe
99IDEOGRAM	0xdda1 - 0xddfe
100IDEOGRAM	0xdea1 - 0xdefe
101IDEOGRAM	0xdfa1 - 0xdffe
102IDEOGRAM	0xe0a1 - 0xe0fe
103IDEOGRAM	0xe1a1 - 0xe1fe
104IDEOGRAM	0xe2a1 - 0xe2fe
105IDEOGRAM	0xe3a1 - 0xe3fe
106IDEOGRAM	0xe4a1 - 0xe4fe
107IDEOGRAM	0xe5a1 - 0xe5fe
108IDEOGRAM	0xe6a1 - 0xe6fe
109IDEOGRAM	0xe7a1 - 0xe7fe
110IDEOGRAM	0xe8a1 - 0xe8fe
111IDEOGRAM	0xe9a1 - 0xe9fe
112IDEOGRAM	0xeaa1 - 0xeafe
113IDEOGRAM	0xeba1 - 0xebfe
114IDEOGRAM	0xeca1 - 0xecfe
115IDEOGRAM	0xeda1 - 0xedfe
116IDEOGRAM	0xeea1 - 0xeefe
117IDEOGRAM	0xefa1 - 0xeffe
118IDEOGRAM	0xf0a1 - 0xf0fe
119IDEOGRAM	0xf1a1 - 0xf1fe
120IDEOGRAM	0xf2a1 - 0xf2fe
121IDEOGRAM	0xf3a1 - 0xf3fe
122IDEOGRAM	0xf4a1 - 0xf4fe
123IDEOGRAM	0xf5a1 - 0xf5fe
124IDEOGRAM	0xf6a1 - 0xf6fe
125IDEOGRAM	0xf7a1 - 0xf7fe
126LOWER		0xa2a1 - 0xa2aa
127LOWER		0xa3e1 - 0xa3fa
128LOWER		0xa6c1 - 0xa6d8
129LOWER		0xa7d1 - 0xa7f1
130LOWER		0xa8a1 - 0xa8bb 0xa8bd - 0xa8c0
131MAPLOWER	< 0xa2f1 - 0xa2fa : 0xa2a1 > < 0xa2a1 - 0xa2aa : 0xa2a1 >
132MAPLOWER	< 0xa3c1 - 0xa3da : 0xa3e1 > < 0xa3e1 - 0xa3fa : 0xa3e1 >
133MAPLOWER	< 0xa6a1 - 0xa6b8 : 0xa6c1 > < 0xa6c1 - 0xa6d8 : 0xa6c1 >
134MAPLOWER	< 0xa7a1 - 0xa7c1 : 0xa7d1 > < 0xa7d1 - 0xa7f1 : 0xa7d1 >
135MAPUPPER	< 0xa2a1 - 0xa2aa : 0xa2f1 > < 0xa2f1 - 0xa2fc : 0xa2f1 >
136MAPUPPER	< 0xa3e1 - 0xa3fa : 0xa3c1 > < 0xa3c1 - 0xa3da : 0xa3c1 >
137MAPUPPER	< 0xa6c1 - 0xa6d8 : 0xa6a1 > < 0xa6a1 - 0xa6b8 : 0xa6a1 >
138MAPUPPER	< 0xa7d1 - 0xa7f1 : 0xa7a1 > < 0xa7a1 - 0xa7c1 : 0xa7a1 >
139PHONOGRAM	0xa4a1 - 0xa4f3			/* Hiragana */
140PHONOGRAM	0xa5a1 - 0xa5f6			/* Katakana */
141PHONOGRAM	0xa8c5 - 0xa8e9			/* Pin yin */
142PRINT		0xa1a1
143PUNCT		0xa1a2 - 0xa1a8 0xa1aa - 0xa1fe
144PUNCT		0xa2e3
145PUNCT		0xa3a1 - 0xa3af 0xa3ba - 0xa3c0 0xa3db - 0xa3e0 0xa3fb - 0xa3fe
146PUNCT		0xa6e0 - 0xa6eb 0xa6ee - 0xa6f2 0xa6f4 0xa6f5
147PUNCT		0xa9a4 - 0xa9ef
148SPACE		0xa1a1
149SPECIAL		0xa2a1 - 0xa2aa 0xa2b1 - 0xa2e2 0xa2e5 - 0xa2ee 0xa2f1 - 0xa2fc
150SPECIAL		0xa8a1 - 0xa8c0
151SPECIAL		0xa9a4 - 0xa9ef			/* Box drawings */
152SWIDTH2		0xa1a1 - 0xa1a3 0xa1a8 0xa1a9 0xa1ab  0xa1b2 - 0xa1bf 0xa1e7  0xa1e9 0xa1ea 0xa1fe
153SWIDTH2		0xa2e5 - 0xa2ee
154SWIDTH2		0xa3a1 - 0xa3fe
155SWIDTH2		0xa4a1 - 0xa4f3
156SWIDTH2		0xa5a1 - 0xa5f6
157SWIDTH2		0xa6e0 - 0xa6eb 0xa6ee - 0xa6f2 0xa6f4 0xa6f5
158SWIDTH2		0xa8c5 - 0xa8e9
159SWIDTH2		0xb0a1 - 0xb0fe
160SWIDTH2		0xb1a1 - 0xb1fe
161SWIDTH2		0xb2a1 - 0xb2fe
162SWIDTH2		0xb3a1 - 0xb3fe
163SWIDTH2		0xb4a1 - 0xb4fe
164SWIDTH2		0xb5a1 - 0xb5fe
165SWIDTH2		0xb6a1 - 0xb6fe
166SWIDTH2		0xb7a1 - 0xb7fe
167SWIDTH2		0xb8a1 - 0xb8fe
168SWIDTH2		0xb9a1 - 0xb9fe
169SWIDTH2		0xbaa1 - 0xbafe
170SWIDTH2		0xbba1 - 0xbbfe
171SWIDTH2		0xbca1 - 0xbcfe
172SWIDTH2		0xbda1 - 0xbdfe
173SWIDTH2		0xbea1 - 0xbefe
174SWIDTH2		0xbfa1 - 0xbffe
175SWIDTH2		0xc0a1 - 0xc0fe
176SWIDTH2		0xc1a1 - 0xc1fe
177SWIDTH2		0xc2a1 - 0xc2fe
178SWIDTH2		0xc3a1 - 0xc3fe
179SWIDTH2		0xc4a1 - 0xc4fe
180SWIDTH2		0xc5a1 - 0xc5fe
181SWIDTH2		0xc6a1 - 0xc6fe
182SWIDTH2		0xc7a1 - 0xc7fe
183SWIDTH2		0xc8a1 - 0xc8fe
184SWIDTH2		0xc9a1 - 0xc9fe
185SWIDTH2		0xcaa1 - 0xcafe
186SWIDTH2		0xcba1 - 0xcbfe
187SWIDTH2		0xcca1 - 0xccfe
188SWIDTH2		0xcda1 - 0xcdfe
189SWIDTH2		0xcea1 - 0xcefe
190SWIDTH2		0xcfa1 - 0xcffe
191SWIDTH2		0xd0a1 - 0xd0fe
192SWIDTH2		0xd1a1 - 0xd1fe
193SWIDTH2		0xd2a1 - 0xd2fe
194SWIDTH2		0xd3a1 - 0xd3fe
195SWIDTH2		0xd4a1 - 0xd4fe
196SWIDTH2		0xd5a1 - 0xd5fe
197SWIDTH2		0xd6a1 - 0xd6fe
198SWIDTH2		0xd7a1 - 0xd7f9
199SWIDTH2		0xd8a1 - 0xd8fe
200SWIDTH2		0xd9a1 - 0xd9fe
201SWIDTH2		0xdaa1 - 0xdafe
202SWIDTH2		0xdba1 - 0xdbfe
203SWIDTH2		0xdca1 - 0xdcfe
204SWIDTH2		0xdda1 - 0xddfe
205SWIDTH2		0xdea1 - 0xdefe
206SWIDTH2		0xdfa1 - 0xdffe
207SWIDTH2		0xe0a1 - 0xe0fe
208SWIDTH2		0xe1a1 - 0xe1fe
209SWIDTH2		0xe2a1 - 0xe2fe
210SWIDTH2		0xe3a1 - 0xe3fe
211SWIDTH2		0xe4a1 - 0xe4fe
212SWIDTH2		0xe5a1 - 0xe5fe
213SWIDTH2		0xe6a1 - 0xe6fe
214SWIDTH2		0xe7a1 - 0xe7fe
215SWIDTH2		0xe8a1 - 0xe8fe
216SWIDTH2		0xe9a1 - 0xe9fe
217SWIDTH2		0xeaa1 - 0xeafe
218SWIDTH2		0xeba1 - 0xebfe
219SWIDTH2		0xeca1 - 0xecfe
220SWIDTH2		0xeda1 - 0xedfe
221SWIDTH2		0xeea1 - 0xeefe
222SWIDTH2		0xefa1 - 0xeffe
223SWIDTH2		0xf0a1 - 0xf0fe
224SWIDTH2		0xf1a1 - 0xf1fe
225SWIDTH2		0xf2a1 - 0xf2fe
226SWIDTH2		0xf3a1 - 0xf3fe
227SWIDTH2		0xf4a1 - 0xf4fe
228SWIDTH2		0xf5a1 - 0xf5fe
229SWIDTH2		0xf6a1 - 0xf6fe
230SWIDTH2		0xf7a1 - 0xf7fe
231TODIGIT		< 0xa2a1 - 0xa2aa : 1 >
232TODIGIT		< 0xa2b1 - 0xa2c4 : 1 >
233TODIGIT		< 0xa2c5 - 0xa2d8 : 1 >
234TODIGIT		< 0xa2d9 - 0xa2e2 : 1 >
235TODIGIT		< 0xa2e5 - 0xa2ee : 1 >
236TODIGIT		< 0xa2f1 - 0xa2fc : 1 >
237TODIGIT		< 0xa3b0 - 0xa3b9 : 0 >
238TODIGIT		< 0xa3c1 - 0xa3c6 : 10 > < 0xa3e1 - 0xa3e6 : 10 >
239UPPER		0xa2f1 - 0xa2fc
240UPPER		0xa3c1 - 0xa3da
241UPPER		0xa6a1 - 0xa6b8			/* Greek */
242UPPER		0xa7a1 - 0xa7c1			/* Cyrillic */
243XDIGIT          0xa3b0 - 0xa3b9 0xa3c1 - 0xa3c6 0xa3e1 - 0xa3e6
244