Add descriptions to enumerations
[mono.git] / mcs / class / System.XML / System.Xml / XmlChar.cs
1 // -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-\r
2 //\r
3 // System.Xml.XmlChar.cs\r
4 //\r
5 // Author:\r
6 //   Jason Diamond (jason@injektilo.org)\r
7 //\r
8 // (C) 2001 Jason Diamond  http://injektilo.org/\r
9 //\r
10 \r
11 namespace System.Xml\r
12 {\r
13         internal class XmlChar\r
14         {\r
15                 internal static bool IsWhitespace(int ch)\r
16                 {\r
17                         return ch == 0x20 || ch == 0x9 || ch == 0xD || ch == 0xA;\r
18                 }\r
19 \r
20                 internal static bool IsFirstNameChar(int ch)\r
21                 {\r
22                         bool result = false;\r
23 \r
24                         if (ch >= 0 && ch <= 0xFFFF)\r
25                         {\r
26                                 result = (nameBitmap[(firstNamePages[ch >> 8] << 3) + ((ch & 0xFF) >> 5)] & (1 << (ch & 0x1F))) != 0;\r
27                         }\r
28 \r
29                         return result;\r
30                 }\r
31 \r
32                 internal static bool IsNameChar(int ch)\r
33                 {\r
34                         bool result = false;\r
35 \r
36                         if (ch >= 0 && ch <= 0xFFFF)\r
37                         {\r
38                                 result = (nameBitmap[(namePages[ch >> 8] << 3) + ((ch & 0xFF) >> 5)] & (1 << (ch & 0x1F))) != 0;\r
39                         }\r
40 \r
41                         return result;\r
42                 }\r
43 \r
44                 private static byte[] firstNamePages =\r
45                 {\r
46                         0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x00,\r
47                         0x00, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,\r
48                         0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
49                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13,\r
50                         0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
51                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
52                         0x15, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
53                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
54                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
55                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,\r
56                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
57                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
58                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
59                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
60                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
61                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
62                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
63                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
64                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
65                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17,\r
66                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
67                         0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,\r
68                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
69                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
70                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
71                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
72                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18,\r
73                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
74                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
75                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
76                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
77                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\r
78                 };\r
79 \r
80                 private static byte[] namePages =\r
81                 {\r
82                         0x19, 0x03, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x00,\r
83                         0x00, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25,\r
84                         0x10, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
85                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x13,\r
86                         0x26, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
87                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
88                         0x27, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
89                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
90                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
91                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,\r
92                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
93                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
94                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
95                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
96                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
97                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
98                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
99                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
100                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
101                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17,\r
102                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
103                         0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,\r
104                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
105                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
106                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
107                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,\r
108                         0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x18,\r
109                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
110                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
111                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
112                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
113                         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\r
114                 };\r
115 \r
116                 private static uint[] nameBitmap =\r
117                 {\r
118                         0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
119                         0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
120                         0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
121                         0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
122                         0x00000000, 0x04000000, 0x87FFFFFE, 0x07FFFFFE,\r
123                         0x00000000, 0x00000000, 0xFF7FFFFF, 0xFF7FFFFF,\r
124                         0xFFFFFFFF, 0x7FF3FFFF, 0xFFFFFDFE, 0x7FFFFFFF,\r
125                         0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFE00F, 0xFC31FFFF,\r
126                         0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,\r
127                         0xFFFFFFFF, 0xF80001FF, 0x00000003, 0x00000000,\r
128                         0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
129                         0xFFFFD740, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD,\r
130                         0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF,\r
131                         0xFFFF0003, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF,\r
132                         0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,\r
133                         0x0000007F, 0x00000000, 0xFFFF0000, 0x000707FF,\r
134                         0x00000000, 0x07FFFFFE, 0x000007FE, 0xFFFE0000,\r
135                         0xFFFFFFFF, 0x7CFFFFFF, 0x002F7FFF, 0x00000060,\r
136                         0xFFFFFFE0, 0x23FFFFFF, 0xFF000000, 0x00000003,\r
137                         0xFFF99FE0, 0x03C5FDFF, 0xB0000000, 0x00030003,\r
138                         0xFFF987E0, 0x036DFDFF, 0x5E000000, 0x001C0000,\r
139                         0xFFFBAFE0, 0x23EDFDFF, 0x00000000, 0x00000001,\r
140                         0xFFF99FE0, 0x23CDFDFF, 0xB0000000, 0x00000003,\r
141                         0xD63DC7E0, 0x03BFC718, 0x00000000, 0x00000000,\r
142                         0xFFFDDFE0, 0x03EFFDFF, 0x00000000, 0x00000003,\r
143                         0xFFFDDFE0, 0x03EFFDFF, 0x40000000, 0x00000003,\r
144                         0xFFFDDFE0, 0x03FFFDFF, 0x00000000, 0x00000003,\r
145                         0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
146                         0xFFFFFFFE, 0x000D7FFF, 0x0000003F, 0x00000000,\r
147                         0xFEF02596, 0x200D6CAE, 0x0000001F, 0x00000000,\r
148                         0x00000000, 0x00000000, 0xFFFFFEFF, 0x000003FF,\r
149                         0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
150                         0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
151                         0x00000000, 0xFFFFFFFF, 0xFFFF003F, 0x007FFFFF,\r
152                         0x0007DAED, 0x50000000, 0x82315001, 0x002C62AB,\r
153                         0x40000000, 0xF580C900, 0x00000007, 0x02010800,\r
154                         0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
155                         0x0FFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x03FFFFFF,\r
156                         0x3F3FFFFF, 0xFFFFFFFF, 0xAAFF3F3F, 0x3FFFFFFF,\r
157                         0xFFFFFFFF, 0x5FDFFFFF, 0x0FCF1FDC, 0x1FDC1FFF,\r
158                         0x00000000, 0x00004C40, 0x00000000, 0x00000000,\r
159                         0x00000007, 0x00000000, 0x00000000, 0x00000000,\r
160                         0x00000080, 0x000003FE, 0xFFFFFFFE, 0xFFFFFFFF,\r
161                         0x001FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x07FFFFFF,\r
162                         0xFFFFFFE0, 0x00001FFF, 0x00000000, 0x00000000,\r
163                         0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
164                         0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
165                         0xFFFFFFFF, 0x0000003F, 0x00000000, 0x00000000,\r
166                         0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,\r
167                         0xFFFFFFFF, 0x0000000F, 0x00000000, 0x00000000,\r
168                         0x00000000, 0x07FF6000, 0x87FFFFFE, 0x07FFFFFE,\r
169                         0x00000000, 0x00800000, 0xFF7FFFFF, 0xFF7FFFFF,\r
170                         0x00FFFFFF, 0x00000000, 0xFFFF0000, 0xFFFFFFFF,\r
171                         0xFFFFFFFF, 0xF80001FF, 0x00030003, 0x00000000,\r
172                         0xFFFFFFFF, 0xFFFFFFFF, 0x0000003F, 0x00000003,\r
173                         0xFFFFD7C0, 0xFFFFFFFB, 0x547F7FFF, 0x000FFFFD,\r
174                         0xFFFFDFFE, 0xFFFFFFFF, 0xDFFEFFFF, 0xFFFFFFFF,\r
175                         0xFFFF007B, 0xFFFFFFFF, 0xFFFF199F, 0x033FCFFF,\r
176                         0x00000000, 0xFFFE0000, 0x027FFFFF, 0xFFFFFFFE,\r
177                         0xFFFE007F, 0xBBFFFFFB, 0xFFFF0016, 0x000707FF,\r
178                         0x00000000, 0x07FFFFFE, 0x0007FFFF, 0xFFFF03FF,\r
179                         0xFFFFFFFF, 0x7CFFFFFF, 0xFFEF7FFF, 0x03FF3DFF,\r
180                         0xFFFFFFEE, 0xF3FFFFFF, 0xFF1E3FFF, 0x0000FFCF,\r
181                         0xFFF99FEE, 0xD3C5FDFF, 0xB080399F, 0x0003FFCF,\r
182                         0xFFF987E4, 0xD36DFDFF, 0x5E003987, 0x001FFFC0,\r
183                         0xFFFBAFEE, 0xF3EDFDFF, 0x00003BBF, 0x0000FFC1,\r
184                         0xFFF99FEE, 0xF3CDFDFF, 0xB0C0398F, 0x0000FFC3,\r
185                         0xD63DC7EC, 0xC3BFC718, 0x00803DC7, 0x0000FF80,\r
186                         0xFFFDDFEE, 0xC3EFFDFF, 0x00603DDF, 0x0000FFC3,\r
187                         0xFFFDDFEC, 0xC3EFFDFF, 0x40603DDF, 0x0000FFC3,\r
188                         0xFFFDDFEC, 0xC3FFFDFF, 0x00803DCF, 0x0000FFC3,\r
189                         0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
190                         0xFFFFFFFE, 0x07FF7FFF, 0x03FF7FFF, 0x00000000,\r
191                         0xFEF02596, 0x3BFF6CAE, 0x03FF3F5F, 0x00000000,\r
192                         0x03000000, 0xC2A003FF, 0xFFFFFEFF, 0xFFFE03FF,\r
193                         0xFEBF0FDF, 0x02FE3FFF, 0x00000000, 0x00000000,\r
194                         0x00000000, 0x00000000, 0x00000000, 0x00000000,\r
195                         0x00000000, 0x00000000, 0x1FFF0000, 0x00000002,\r
196                         0x000000A0, 0x003EFFFE, 0xFFFFFFFE, 0xFFFFFFFF,\r
197                         0x661FFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0x77FFFFFF\r
198                 };\r
199         }\r
200 }\r