OSDN Git Service

7cb16e1e5a438fa082fc405ca1dba7f98ca0ee9b
[pf3gnuchains/gcc-fork.git] / libcpp / ucnid.tab
1 /* Table of UCNs which are valid in identifiers.
2    Copyright (C) 2003 Free Software Foundation, Inc.
3
4 This program is free software; you can redistribute it and/or modify it
5 under the terms of the GNU General Public License as published by the
6 Free Software Foundation; either version 2, or (at your option) any
7 later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
17
18 [dne]
19
20 /* This file reproduces the table in ISO/IEC 9899:1999 (C99) Annex
21    D, which is itself a reproduction from ISO/IEC TR 10176:1998, and
22    the similar table from ISO/IEC 14882:1988 (C++98) Annex E, which is
23    a reproduction of ISO/IEC PDTR 10176.  Unfortunately these tables
24    are not identical.  */
25
26 #ifndef LIBCPP_UCNID_H
27 #define LIBCPP_UCNID_H
28
29 #define C99 1
30 #define CXX 2
31 #define DIG 4
32
33 struct ucnrange
34 {
35   unsigned short lo, hi;
36   unsigned short flags;
37 };
38
39 static const struct ucnrange ucnranges[] = {
40 [table]
41 };
42
43 #endif /* LIBCPP_UCNID_H */
44 %%
45
46 [C99]
47
48 ; Latin
49 00aa 00ba 00c0-00d6 00d8-00f6 00f8-01f5 01fa-0217 0250-02a8 1e00-1e9b
50 1ea0-1ef9 207f
51
52 ; Greek
53 0386 0388-038a 038c 038e-03a1 03a3-03ce 03d0-03d6 03da 03dc 03de 03e0
54 03e2-03f3 1f00-1f15 1f18-1f1d 1f20-1f45 1f48-1f4d 1f50-1f57 1f59 1f5b
55 1f5d 1f5f-1f7d 1f80-1fb4 1fb6-1fbc 1fc2-1fc4 1fc6-1fcc 1fd0-1fd3
56 1fd6-1fdb 1fe0-1fec 1ff2-1ff4 1ff6-1ffc
57
58 ; Cyrillic
59 0401-040c 040e-044f 0451-045c 045e-0481 0490-04c4 04c7-04c8 04cb-04cc
60 04d0-04eb 04ee-04f5 04f8-04f9
61
62 ; Armenian
63 0531-0556 0561-0587
64
65 ; Hebrew
66 05b0-05b9 05bb-05bd 05bf 05c1-05c2 05d0-05ea 05f0-05f2
67
68 ; Arabic
69 0621-063a 0640-0652 0670-06b7 06ba-06be 06c0-06ce 06d0-06dc 06e5-06e8
70 06ea-06ed
71
72 ; Devanagari
73 0901-0903 0905-0939 093e-094d 0950-0952 0958-0963
74
75 ; Bengali
76 0981-0983 0985-098c 098f-0990 0993-09a8 09aa-09b0 09b2 09b6-09b9
77 09be-09c4 09c7-09c8 09cb-09cd 09dc-09dd 09df-09e3 09f0-09f1
78
79 ; Gurmukhi
80 0a02 0a05-0a0a 0a0f-0a10 0a13-0a28 0a2a-0a30 0a32-0a33 0a35-0a36
81 0a38-0a39 0a3e-0a42 0a47-0a48 0a4b-0a4d 0a59-0a5c 0a5e 0a74
82
83 ; Gujarati
84 0a81-0a83 0a85-0a8b 0a8d 0a8f-0a91 0a93-0aa8 0aaa-0ab0 0ab2-0ab3
85 0ab5-0ab9 0abd-0ac5 0ac7-0ac9 0acb-0acd 0ad0 0ae0
86
87 ; Oriya
88 0b01-0b03 0b05-0b0c 0b0f-0b10 0b13-0b28 0b2a-0b30 0b32-0b33 0b36-0b39
89 0b3e-0b43 0b47-0b48 0b4b-0b4d 0b5c-0b5d 0b5f-0b61
90
91 ; Tamil
92 0b82-0b83 0b85-0b8a 0b8e-0b90 0b92-0b95 0b99-0b9a 0b9c 0b9e-0b9f
93 0ba3-0ba4 0ba8-0baa 0bae-0bb5 0bb7-0bb9 0bbe-0bc2 0bc6-0bc8 0bca-0bcd
94
95 ; Telugu
96 0c01-0c03 0c05-0c0c 0c0e-0c10 0c12-0c28 0c2a-0c33 0c35-0c39 0c3e-0c44
97 0c46-0c48 0c4a-0c4d 0c60-0c61
98
99 ; Kannada
100 0c82-0c83 0c85-0c8c 0c8e-0c90 0c92-0ca8 0caa-0cb3 0cb5-0cb9 0cbe-0cc4
101 0cc6-0cc8 0cca-0ccd 0cde 0ce0-0ce1
102
103 ; Malayalam
104 0d02-0d03 0d05-0d0c 0d0e-0d10 0d12-0d28 0d2a-0d39 0d3e-0d43 0d46-0d48
105 0d4a-0d4d 0d60-0d61
106
107 # CORRECTION: exclude 0e50-0e59 from the Thai range as it also appears
108 # in the Digits range below.
109 ; Thai
110 0e01-0e3a 0e40-0e49 0e5a-0e5b
111
112 ; Lao
113 0e81-0e82 0e84 0e87-0e88 0e8a 0e8d 0e94-0e97 0e99-0e9f 0ea1-0ea3 0ea5
114 0ea7 0eaa-0eab 0ead-0eae 0eb0-0eb9 0ebb-0ebd 0ec0-0ec4 0ec6 0ec8-0ecd
115 0edc-0edd
116
117 ; Tibetan
118 0f00 0f18-0f19 0f35 0f37 0f39 0f3e-0f47 0f49-0f69 0f71-0f84 0f86-0f8b
119 0f90-0f95 0f97 0f99-0fad 0fb1-0fb7 0fb9
120
121 ; Georgian
122 10a0-10c5 10d0-10f6
123
124 ; Hiragana
125 3041-3093 309b-309c
126
127 ; Katakana
128 30a1-30f6 30fb-30fc
129
130 ; Bopomofo
131 3105-312c
132
133 ; CJK Unified Ideographs
134 4e00-9fa5
135
136 ; Hangul
137 ac00-d7a3
138
139 ; Special characters
140 00b5 00b7 02b0-02b8 02bb 02bd-02c1 02d0-02d1 02e0-02e4 037a 0559 093d
141 0b3d 1fbe 203f-2040 2102 2107 210a-2113 2115 2118-211d 2124 2126 2128
142 212a-2131 2133-2138 2160-2182 3005-3007 3021-3029
143
144 [C99|DIG]
145 ; Digits
146 0660-0669 06f0-06f9 0966-096f 09e6-09ef 0a66-0a6f 0ae6-0aef 0b66-0b6f
147 0be7-0bef 0c66-0c6f 0ce6-0cef 0d66-0d6f 0e50-0e59 0ed0-0ed9 0f20-0f33
148
149 [CXX]
150
151 ; Latin
152 00c0-00d6 00d8-00f6 00f8-01f5 01fa-0217 0250-02a8 1e00-1e9a 1ea0-1ef9
153
154 ; Greek
155 0384 0388-038a 038c 038e-03a1 03a3-03ce 03d0-03d6 03da 03dc 03de 03e0 
156 03e2-03f3 1f00-1f15 1f18-1f1d 1f20-1f45 1f48-1f4d 1f50-1f57 1f59 1f5b
157 1f5d 1f5f-1f7d 1f80-1fb4 1fb6-1fbc 1fc2-1fc4 1fc6-1fcc 1fd0-1fd3 
158 1fd6-1fdb 1fe0-1fec 1ff2-1ff4 1ff6-1ffc
159
160 ; Cyrillic
161 0401-040d 040f-044f 0451-045c 045e-0481 0490-04c4 04c7-04c8 04cb-04cc
162 04d0-04eb 04ee-04f5 04f8-04f9
163
164 ; Armenian
165 0531-0556 0561-0587
166
167 ; Hebrew
168 05d0-05ea 05f0-05f4
169
170 ; Arabic
171 0621-063a 0640-0652 0670-06b7 06ba-06be 06c0-06ce 06e5-06e7
172
173 ; Devanagari
174 0905-0939 0958-0962
175
176 ; Bengali
177 0985-098c 098f-0990 0993-09a8 09aa-09b0 09b2 09b6-09b9 09dc-09dd 
178 09df-09e1 09f0-09f1
179
180 ; Gurmukhi
181 0a05-0a0a 0a0f-0a10 0a13-0a28 0a2a-0a30 0a32-0a33 0a35-0a36 0a38-0a39
182 0a59-0a5c 0a5e
183
184 ; Gujarati
185 0a85-0a8b 0a8d 0a8f-0a91 0a93-0aa8 0aaa-0ab0 0ab2-0ab3 0ab5-0ab9 0ae0
186
187 ; Oriya
188 0b05-0b0c 0b0f-0b10 0b13-0b28 0b2a-0b30 0b32-0b33 0b36-0b39 0b5c-0b5d
189 0b5f-0b61
190
191 ; Tamil
192 0b85-0b8a 0b8e-0b90 0b92-0b95 0b99-0b9a 0b9c 0b9e-0b9f 0ba3-0ba4 
193 0ba8-0baa 0bae-0bb5 0bb7-0bb9
194
195 ; Telugu
196 0c05-0c0c 0c0e-0c10 0c12-0c28 0c2a-0c33 0c35-0c39 0c60-0c61
197
198 ; Kannada
199 0c85-0c8c 0c8e-0c90 0c92-0ca8 0caa-0cb3 0cb5-0cb9 0ce0-0ce1
200
201 ; Malayalam
202 0d05-0d0c 0d0e-0d10 0d12-0d28 0d2a-0d39 0d60-0d61
203
204 # CORRECTION: Exclude 0e50-0e59 from the Thai range and make a fake
205 # Digits range for it, to match C99.  cppcharset.c knows that C++
206 # doesn't distinguish digits from other UCNs valid in identifiers.
207 ; Thai
208 0e01-0e30 0e32-0e33 0e40-0e46 0e4f-0e49 0e5a-0e5b
209
210 ; Digits
211 0e50-0e59
212
213 # CORRECTION: Change 0e0d to 0e8d (typo in standard; see C++ DR 131)
214 ; Lao
215 0e81-0e82 0e84 0e87-0e88 0e8a 0e8d 0e94-0e97 0e99-0e9f 0ea1-0ea3 0ea5
216 0ea7 0eaa-0eab 0ead-0eb0 0eb2 0eb3 0ebd 0ec0-0ec4 0ec6
217
218 ; Georgian
219 10a0-10c5 10d0-10f6
220
221 ; Hiragana
222 3041-3094 309b-309e
223
224 ; Katakana
225 30a1-30fe
226
227 # CORRECTION: language spelled "Bopmofo" in C++98.
228 ; Bopomofo
229 3105-312c
230
231 ; Hangul
232 1100-1159 1161-11a2 11a8-11f9
233
234 ; CJK Unified Ideographs
235 f900-fa2d fb1f-fb36 fb38-fb3c fb3e fb40-fb41 fb42-fb44 fb46-fbb1
236 fbd3-fd3f fd50-fd8f fd92-fdc7 fdf0-fdfb fe70-fe72 fe74 fe76-fefc
237 ff21-ff3a ff41-ff5a ff66-ffbe ffc2-ffc7 ffca-ffcf ffd2-ffd7
238 ffda-ffdc 4e00-9fa5
239