159 {
"C",
"\0\u000f\u0010\u001e\u0012\u0011\0" },
165 {
"L",
"\0\u0002\u0004\u0005\u0003\u0001\0" },
166 {
"__InternalRegexIgnoreCase__",
"\0\u0002\u0003\u0001\0" },
170 {
"M",
"\0\a\b\u0006\0" },
174 {
"N",
"\0\t\n\v\0" },
182 {
"P",
"\0\u0013\u0014\u0016\u0019\u0015\u0018\u0017\0" },
187 {
"S",
"\0\u001b\u001c\u001a\u001d\0" },
191 {
"Z",
"\0\r\u000e\f\0" }
194 private static readonly
string[][]
s_propTable =
new string[112][]
196 new string[2] {
"IsAlphabeticPresentationForms",
"ffﭐ" },
197 new string[2] {
"IsArabic",
"\u0600܀" },
198 new string[2] {
"IsArabicPresentationForms-A",
"ﭐ\ufe00" },
199 new string[2] {
"IsArabicPresentationForms-B",
"ﹰ\uff00" },
200 new string[2] {
"IsArmenian",
"\u0530\u0590" },
201 new string[2] {
"IsArrows",
"←∀" },
202 new string[2] {
"IsBasicLatin",
"\0\u0080" },
203 new string[2] {
"IsBengali",
"ঀ\u0a00" },
204 new string[2] {
"IsBlockElements",
"▀■" },
205 new string[2] {
"IsBopomofo",
"\u3100\u3130" },
206 new string[2] {
"IsBopomofoExtended",
"ㆠ㇀" },
207 new string[2] {
"IsBoxDrawing",
"─▀" },
208 new string[2] {
"IsBraillePatterns",
"⠀⤀" },
209 new string[2] {
"IsBuhid",
"ᝀᝠ" },
210 new string[2] {
"IsCJKCompatibility",
"㌀㐀" },
211 new string[2] {
"IsCJKCompatibilityForms",
"︰﹐" },
212 new string[2] {
"IsCJKCompatibilityIdeographs",
"豈ff" },
213 new string[2] {
"IsCJKRadicalsSupplement",
"⺀⼀" },
214 new string[2] {
"IsCJKSymbolsandPunctuation",
"\u3000\u3040" },
215 new string[2] {
"IsCJKUnifiedIdeographs",
"一ꀀ" },
216 new string[2] {
"IsCJKUnifiedIdeographsExtensionA",
"㐀䷀" },
217 new string[2] {
"IsCherokee",
"Ꭰ᐀" },
218 new string[2] {
"IsCombiningDiacriticalMarks",
"\u0300Ͱ" },
219 new string[2] {
"IsCombiningDiacriticalMarksforSymbols",
"\u20d0℀" },
220 new string[2] {
"IsCombiningHalfMarks",
"\ufe20︰" },
221 new string[2] {
"IsCombiningMarksforSymbols",
"\u20d0℀" },
222 new string[2] {
"IsControlPictures",
"␀⑀" },
223 new string[2] {
"IsCurrencySymbols",
"₠\u20d0" },
224 new string[2] {
"IsCyrillic",
"ЀԀ" },
225 new string[2] {
"IsCyrillicSupplement",
"Ԁ\u0530" },
226 new string[2] {
"IsDevanagari",
"\u0900ঀ" },
227 new string[2] {
"IsDingbats",
"✀⟀" },
228 new string[2] {
"IsEnclosedAlphanumerics",
"①─" },
229 new string[2] {
"IsEnclosedCJKLettersandMonths",
"㈀㌀" },
230 new string[2] {
"IsEthiopic",
"ሀᎀ" },
231 new string[2] {
"IsGeneralPunctuation",
"\u2000⁰" },
232 new string[2] {
"IsGeometricShapes",
"■☀" },
233 new string[2] {
"IsGeorgian",
"Ⴀᄀ" },
234 new string[2] {
"IsGreek",
"ͰЀ" },
235 new string[2] {
"IsGreekExtended",
"ἀ\u2000" },
236 new string[2] {
"IsGreekandCoptic",
"ͰЀ" },
237 new string[2] {
"IsGujarati",
"\u0a80\u0b00" },
238 new string[2] {
"IsGurmukhi",
"\u0a00\u0a80" },
239 new string[2] {
"IsHalfwidthandFullwidthForms",
"\uff00\ufff0" },
240 new string[2] {
"IsHangulCompatibilityJamo",
"\u3130㆐" },
241 new string[2] {
"IsHangulJamo",
"ᄀሀ" },
242 new string[2] {
"IsHangulSyllables",
"가ힰ" },
243 new string[2] {
"IsHanunoo",
"ᜠᝀ" },
244 new string[2] {
"IsHebrew",
"\u0590\u0600" },
245 new string[2] {
"IsHighPrivateUseSurrogates",
"\udb80\udc00" },
246 new string[2] {
"IsHighSurrogates",
"\ud800\udb80" },
247 new string[2] {
"IsHiragana",
"\u3040゠" },
248 new string[2] {
"IsIPAExtensions",
"ɐʰ" },
249 new string[2] {
"IsIdeographicDescriptionCharacters",
"⿰\u3000" },
250 new string[2] {
"IsKanbun",
"㆐ㆠ" },
251 new string[2] {
"IsKangxiRadicals",
"⼀\u2fe0" },
252 new string[2] {
"IsKannada",
"ಀ\u0d00" },
253 new string[2] {
"IsKatakana",
"゠\u3100" },
254 new string[2] {
"IsKatakanaPhoneticExtensions",
"ㇰ㈀" },
255 new string[2] {
"IsKhmer",
"ក᠀" },
256 new string[2] {
"IsKhmerSymbols",
"᧠ᨀ" },
257 new string[2] {
"IsLao",
"\u0e80ༀ" },
258 new string[2] {
"IsLatin-1Supplement",
"\u0080Ā" },
259 new string[2] {
"IsLatinExtended-A",
"Āƀ" },
260 new string[2] {
"IsLatinExtended-B",
"ƀɐ" },
261 new string[2] {
"IsLatinExtendedAdditional",
"Ḁἀ" },
262 new string[2] {
"IsLetterlikeSymbols",
"℀⅐" },
263 new string[2] {
"IsLimbu",
"ᤀᥐ" },
264 new string[2] {
"IsLowSurrogates",
"\udc00\ue000" },
265 new string[2] {
"IsMalayalam",
"\u0d00\u0d80" },
266 new string[2] {
"IsMathematicalOperators",
"∀⌀" },
267 new string[2] {
"IsMiscellaneousMathematicalSymbols-A",
"⟀⟰" },
268 new string[2] {
"IsMiscellaneousMathematicalSymbols-B",
"⦀⨀" },
269 new string[2] {
"IsMiscellaneousSymbols",
"☀✀" },
270 new string[2] {
"IsMiscellaneousSymbolsandArrows",
"⬀Ⰰ" },
271 new string[2] {
"IsMiscellaneousTechnical",
"⌀␀" },
272 new string[2] {
"IsMongolian",
"᠀ᢰ" },
273 new string[2] {
"IsMyanmar",
"ကႠ" },
274 new string[2] {
"IsNumberForms",
"⅐←" },
275 new string[2] {
"IsOgham",
"\u1680ᚠ" },
276 new string[2] {
"IsOpticalCharacterRecognition",
"⑀①" },
277 new string[2] {
"IsOriya",
"\u0b00\u0b80" },
278 new string[2] {
"IsPhoneticExtensions",
"ᴀᶀ" },
279 new string[2] {
"IsPrivateUse",
"\ue000豈" },
280 new string[2] {
"IsPrivateUseArea",
"\ue000豈" },
281 new string[2] {
"IsRunic",
"ᚠᜀ" },
282 new string[2] {
"IsSinhala",
"\u0d80\u0e00" },
283 new string[2] {
"IsSmallFormVariants",
"﹐ﹰ" },
284 new string[2] {
"IsSpacingModifierLetters",
"ʰ\u0300" },
285 new string[2] {
"IsSpecials",
"\ufff0" },
286 new string[2] {
"IsSuperscriptsandSubscripts",
"⁰₠" },
287 new string[2] {
"IsSupplementalArrows-A",
"⟰⠀" },
288 new string[2] {
"IsSupplementalArrows-B",
"⤀⦀" },
289 new string[2] {
"IsSupplementalMathematicalOperators",
"⨀⬀" },
290 new string[2] {
"IsSyriac",
"܀ݐ" },
291 new string[2] {
"IsTagalog",
"ᜀᜠ" },
292 new string[2] {
"IsTagbanwa",
"ᝠក" },
293 new string[2] {
"IsTaiLe",
"ᥐᦀ" },
294 new string[2] {
"IsTamil",
"\u0b80\u0c00" },
295 new string[2] {
"IsTelugu",
"\u0c00ಀ" },
296 new string[2] {
"IsThaana",
"ހ߀" },
297 new string[2] {
"IsThai",
"\u0e00\u0e80" },
298 new string[2] {
"IsTibetan",
"ༀက" },
299 new string[2] {
"IsUnifiedCanadianAboriginalSyllabics",
"᐀\u1680" },
300 new string[2] {
"IsVariationSelectors",
"\ufe00︐" },
301 new string[2] {
"IsYiRadicals",
"꒐ꓐ" },
302 new string[2] {
"IsYiSyllables",
"ꀀ꒐" },
303 new string[2] {
"IsYijingHexagramSymbols",
"䷀一" },
304 new string[2] {
"_xmlC",
"-/0;A[_`a{·\u00b8À×Ø÷øIJĴĿŁʼnŊſƀDŽǍDZǴǶǺȘɐʩʻ\u02c2ː\u02d2\u0300\u0346\u0360\u0362Ά\u038bΌ\u038dΎ\u03a2ΣϏϐϗϚϛϜϝϞϟϠϡϢϴЁЍЎѐёѝў҂\u0483\u0487ҐӅӇӉӋӍӐӬӮӶӸӺԱ\u0557ՙ՚աև\u0591\u05a2\u05a3\u05ba\u05bb־\u05bf׀\u05c1׃\u05c4\u05c5א\u05ebװ׳ءػـ\u0653٠٪\u0670ڸںڿۀۏې۔ە۩\u06eaۮ۰ۺ\u0901ऄअ\u093a\u093c\u094e\u0951\u0955क़।०॰\u0981\u0984অ\u098dএ\u0991ও\u09a9প\u09b1ল\u09b3শ\u09ba\u09bcঽ\u09be\u09c5\u09c7\u09c9\u09cbৎ\u09d7\u09d8ড়\u09deয়\u09e4০৲\u0a02\u0a03ਅ\u0a0bਏ\u0a11ਓ\u0a29ਪ\u0a31ਲ\u0a34ਵ\u0a37ਸ\u0a3a\u0a3c\u0a3d\u0a3e\u0a43\u0a47\u0a49\u0a4b\u0a4eਖ਼\u0a5dਫ਼\u0a5f੦\u0a75\u0a81\u0a84અઌઍ\u0a8eએ\u0a92ઓ\u0aa9પ\u0ab1લ\u0ab4વ\u0aba\u0abc\u0ac6\u0ac7\u0aca\u0acb\u0aceૠૡ૦૰\u0b01\u0b04ଅ\u0b0dଏ\u0b11ଓ\u0b29ପ\u0b31ଲ\u0b34ଶ\u0b3a\u0b3c\u0b44\u0b47\u0b49\u0b4b\u0b4e\u0b56\u0b58ଡ଼\u0b5eୟ\u0b62୦୰\u0b82\u0b84அ\u0b8bஎ\u0b91ஒ\u0b96ங\u0b9bஜ\u0b9dஞ\u0ba0ண\u0ba5ந\u0babமஶஷ\u0bba\u0bbe\u0bc3\u0bc6\u0bc9\u0bca\u0bce\u0bd7\u0bd8௧௰\u0c01\u0c04అ\u0c0dఎ\u0c11ఒ\u0c29పఴవ\u0c3a\u0c3e\u0c45\u0c46\u0c49\u0c4a\u0c4e\u0c55\u0c57ౠ\u0c62౦\u0c70\u0c82಄ಅ\u0c8dಎ\u0c91ಒ\u0ca9ಪ\u0cb4ವ\u0cba\u0cbe\u0cc5\u0cc6\u0cc9\u0cca\u0cce\u0cd5\u0cd7ೞ\u0cdfೠ\u0ce2೦\u0cf0\u0d02ഄഅ\u0d0dഎ\u0d11ഒഩപഺ\u0d3e\u0d44\u0d46\u0d49\u0d4aൎ\u0d57൘ൠ\u0d62൦൰กฯะ\u0e3bเ๏๐๚ກ\u0e83ຄ\u0e85ງຉຊ\u0e8bຍຎດຘນຠມ\u0ea4ລ\u0ea6ວຨສຬອຯະ\u0eba\u0ebb\u0ebeເ\u0ec5ໆ\u0ec7\u0ec8\u0ece໐\u0eda\u0f18༚༠༪\u0f35༶\u0f37༸\u0f39༺\u0f3e\u0f48ཉཪ\u0f71྅\u0f86ྌ\u0f90\u0f96\u0f97\u0f98\u0f99\u0fae\u0fb1\u0fb8\u0fb9\u0fbaႠ\u10c6აჷᄀᄁᄂᄄᄅᄈᄉᄊᄋᄍᄎᄓᄼᄽᄾᄿᅀᅁᅌᅍᅎᅏᅐᅑᅔᅖᅙᅚᅟᅢᅣᅤᅥᅦᅧᅨᅩᅪᅭᅯᅲᅴᅵᅶᆞᆟᆨᆩᆫᆬᆮᆰᆷᆹᆺᆻᆼᇃᇫᇬᇰᇱᇹᇺḀẜẠỺἀ\u1f16Ἐ\u1f1eἠ\u1f46Ὀ\u1f4eὐ\u1f58Ὑ\u1f5aὛ\u1f5cὝ\u1f5eὟ\u1f7eᾀ\u1fb5ᾶ\u1fbdι\u1fbfῂ\u1fc5ῆ\u1fcdῐ\u1fd4ῖ\u1fdcῠ\u1fedῲ\u1ff5ῶ\u1ffd\u20d0\u20dd\u20e1\u20e2Ω℧Kℬ℮ℯↀↃ々〆〇〈〡〰〱〶ぁゕ\u3099\u309bゝゟァ・ーヿㄅㄭ一龦가\ud7a4" },
305 new string[2] {
"_xmlD",
"0:٠٪۰ۺ०॰০ৰ੦\u0a70૦૰୦୰௧௰౦\u0c70೦\u0cf0൦൰๐๚໐\u0eda༠༪၀၊፩፲០\u17ea᠐\u181a0:" },
306 new string[2] {
"_xmlI",
":;A[_`a{À×Ø÷øIJĴĿŁʼnŊſƀDŽǍDZǴǶǺȘɐʩʻ\u02c2Ά·Έ\u038bΌ\u038dΎ\u03a2ΣϏϐϗϚϛϜϝϞϟϠϡϢϴЁЍЎѐёѝў҂ҐӅӇӉӋӍӐӬӮӶӸӺԱ\u0557ՙ՚աևא\u05ebװ׳ءػف\u064bٱڸںڿۀۏې۔ە\u06d6ۥ\u06e7अ\u093aऽ\u093eक़\u0962অ\u098dএ\u0991ও\u09a9প\u09b1ল\u09b3শ\u09baড়\u09deয়\u09e2ৰ৲ਅ\u0a0bਏ\u0a11ਓ\u0a29ਪ\u0a31ਲ\u0a34ਵ\u0a37ਸ\u0a3aਖ਼\u0a5dਫ਼\u0a5fੲ\u0a75અઌઍ\u0a8eએ\u0a92ઓ\u0aa9પ\u0ab1લ\u0ab4વ\u0abaઽ\u0abeૠૡଅ\u0b0dଏ\u0b11ଓ\u0b29ପ\u0b31ଲ\u0b34ଶ\u0b3aଽ\u0b3eଡ଼\u0b5eୟ\u0b62அ\u0b8bஎ\u0b91ஒ\u0b96ங\u0b9bஜ\u0b9dஞ\u0ba0ண\u0ba5ந\u0babமஶஷ\u0bbaఅ\u0c0dఎ\u0c11ఒ\u0c29పఴవ\u0c3aౠ\u0c62ಅ\u0c8dಎ\u0c91ಒ\u0ca9ಪ\u0cb4ವ\u0cbaೞ\u0cdfೠ\u0ce2അ\u0d0dഎ\u0d11ഒഩപഺൠ\u0d62กฯะ\u0e31า\u0e34เๆກ\u0e83ຄ\u0e85ງຉຊ\u0e8bຍຎດຘນຠມ\u0ea4ລ\u0ea6ວຨສຬອຯະ\u0eb1າ\u0eb4ຽ\u0ebeເ\u0ec5ཀ\u0f48ཉཪႠ\u10c6აჷᄀᄁᄂᄄᄅᄈᄉᄊᄋᄍᄎᄓᄼᄽᄾᄿᅀᅁᅌᅍᅎᅏᅐᅑᅔᅖᅙᅚᅟᅢᅣᅤᅥᅦᅧᅨᅩᅪᅭᅯᅲᅴᅵᅶᆞᆟᆨᆩᆫᆬᆮᆰᆷᆹᆺᆻᆼᇃᇫᇬᇰᇱᇹᇺḀẜẠỺἀ\u1f16Ἐ\u1f1eἠ\u1f46Ὀ\u1f4eὐ\u1f58Ὑ\u1f5aὛ\u1f5cὝ\u1f5eὟ\u1f7eᾀ\u1fb5ᾶ\u1fbdι\u1fbfῂ\u1fc5ῆ\u1fcdῐ\u1fd4ῖ\u1fdcῠ\u1fedῲ\u1ff5ῶ\u1ffdΩ℧Kℬ℮ℯↀↃ〇〈〡\u302aぁゕァ・ㄅㄭ一龦가\ud7a4" },
307 new string[2] {
"_xmlW",
"$%+,0:<?A[^_`{|}~\u007f¢«¬\u00ad®·\u00b8»¼¿ÀȡȢȴɐʮʰ\u02ef\u0300\u0350\u0360ͰʹͶͺͻ\u0384·Έ\u038bΌ\u038dΎ\u03a2ΣϏϐϷЀ\u0487\u0488ӏӐӶӸӺԀԐԱ\u0557ՙ՚աֈ\u0591\u05a2\u05a3\u05ba\u05bb־\u05bf׀\u05c1׃\u05c4\u05c5א\u05ebװ׳ءػـ\u0656٠٪ٮ۔ە\u06dd۞ۮ۰ۿܐܭ\u0730\u074bހ\u07b2\u0901ऄअ\u093a\u093c\u094eॐ\u0955क़।०॰\u0981\u0984অ\u098dএ\u0991ও\u09a9প\u09b1ল\u09b3শ\u09ba\u09bcঽ\u09be\u09c5\u09c7\u09c9\u09cbৎ\u09d7\u09d8ড়\u09deয়\u09e4০৻\u0a02\u0a03ਅ\u0a0bਏ\u0a11ਓ\u0a29ਪ\u0a31ਲ\u0a34ਵ\u0a37ਸ\u0a3a\u0a3c\u0a3d\u0a3e\u0a43\u0a47\u0a49\u0a4b\u0a4eਖ਼\u0a5dਫ਼\u0a5f੦\u0a75\u0a81\u0a84અઌઍ\u0a8eએ\u0a92ઓ\u0aa9પ\u0ab1લ\u0ab4વ\u0aba\u0abc\u0ac6\u0ac7\u0aca\u0acb\u0aceૐ\u0ad1ૠૡ૦૰\u0b01\u0b04ଅ\u0b0dଏ\u0b11ଓ\u0b29ପ\u0b31ଲ\u0b34ଶ\u0b3a\u0b3c\u0b44\u0b47\u0b49\u0b4b\u0b4e\u0b56\u0b58ଡ଼\u0b5eୟ\u0b62୦ୱ\u0b82\u0b84அ\u0b8bஎ\u0b91ஒ\u0b96ங\u0b9bஜ\u0b9dஞ\u0ba0ண\u0ba5ந\u0babமஶஷ\u0bba\u0bbe\u0bc3\u0bc6\u0bc9\u0bca\u0bce\u0bd7\u0bd8௧௳\u0c01\u0c04అ\u0c0dఎ\u0c11ఒ\u0c29పఴవ\u0c3a\u0c3e\u0c45\u0c46\u0c49\u0c4a\u0c4e\u0c55\u0c57ౠ\u0c62౦\u0c70\u0c82಄ಅ\u0c8dಎ\u0c91ಒ\u0ca9ಪ\u0cb4ವ\u0cba\u0cbe\u0cc5\u0cc6\u0cc9\u0cca\u0cce\u0cd5\u0cd7ೞ\u0cdfೠ\u0ce2೦\u0cf0\u0d02ഄഅ\u0d0dഎ\u0d11ഒഩപഺ\u0d3e\u0d44\u0d46\u0d49\u0d4aൎ\u0d57൘ൠ\u0d62൦൰\u0d82\u0d84අ\u0d97ක\u0db2ඳ\u0dbcල\u0dbeව\u0dc7\u0dca\u0dcb\u0dcf\u0dd5\u0dd6\u0dd7\u0dd8\u0de0\u0df2෴ก\u0e3b฿๏๐๚ກ\u0e83ຄ\u0e85ງຉຊ\u0e8bຍຎດຘນຠມ\u0ea4ລ\u0ea6ວຨສຬອ\u0eba\u0ebb\u0ebeເ\u0ec5ໆ\u0ec7\u0ec8\u0ece໐\u0edaໜໞༀ༄༓༺\u0f3e\u0f48ཉཫ\u0f71྅\u0f86ྌ\u0f90\u0f98\u0f99\u0fbd྾\u0fcd࿏࿐ကဢဣဨဩ\u102b\u102c\u1033\u1036\u103a၀၊ၐၚႠ\u10c6აჹᄀᅚᅟᆣᆨᇺሀሇለቇቈ\u1249ቊ\u124eቐ\u1257ቘ\u1259ቚ\u125eበኇኈ\u1289ኊ\u128eነኯኰ\u12b1ኲ\u12b6ኸ\u12bfዀ\u12c1ዂ\u12c6ወዏዐ\u12d7ዘዯደጏጐ\u1311ጒ\u1316ጘጟጠፇፈ\u135b፩\u137dᎠᏵᐁ᙭ᙯᙷᚁ᚛ᚠ᛫ᛮᛱᜀ\u170dᜎ\u1715ᜠ᜵ᝀ\u1754ᝠ\u176dᝮ\u1771\u1772\u1774ក។ៗ៘៛\u17dd០\u17ea\u180b\u180e᠐\u181aᠠᡸᢀᢪḀẜẠỺἀ\u1f16Ἐ\u1f1eἠ\u1f46Ὀ\u1f4eὐ\u1f58Ὑ\u1f5aὛ\u1f5cὝ\u1f5eὟ\u1f7eᾀ\u1fb5ᾶ\u1fc5ῆ\u1fd4ῖ\u1fdc\u1fdd\u1ff0ῲ\u1ff5ῶ\u1fff⁄⁅⁒⁓⁰\u2072⁴⁽ⁿ₍₠₲\u20d0\u20eb℀℻ℽ⅌⅓ↄ←〈⌫⎴⎷⏏␀\u2427⑀\u244b①⓿─☔☖☘☙♾⚀⚊✁✅✆✊✌✨✩❌❍❎❏❓❖❗❘❟❡❨❶➕➘➰➱➿⟐⟦⟰⦃⦙⧘⧜⧼⧾⬀⺀\u2e9a⺛\u2ef4⼀\u2fd6⿰\u2ffc〄〈〒〔〠〰〱〽〾\u3040ぁ\u3097\u3099゠ァ・ー\u3100ㄅㄭㄱ\u318f㆐ㆸㇰ㈝㈠㉄㉑㉼㉿㋌㋐㋿㌀㍷㍻㏞㏠㏿㐀䶶一龦ꀀ\ua48d꒐\ua4c7가\ud7a4豈郞侮恵ff\ufb07ﬓ\ufb18יִ\ufb37טּ\ufb3dמּ\ufb3fנּ\ufb42ףּ\ufb45צּ\ufbb2ﯓ﴾ﵐ\ufd90ﶒ\ufdc8ﷰ﷽\ufe00︐\ufe20\ufe24﹢﹣﹤\ufe67﹩﹪ﹰ\ufe75ﹶ\ufefd$%+,0:<?A[\uff3e\uff3f\uff40{|}~⦅ヲ\uffbfᅡ\uffc8ᅧ\uffd0ᅭ\uffd8ᅳ\uffdd¢\uffe7│\uffef\ufffe" }
362 if (
cc._categories !=
null)
394 for (
i = 0;
i < set.Length - 1;
i += 2)
426 for (
int i = 0;
i <
value.Length;
i++)
477 int num2 =
i + num >> 1;
519 c2 = (char)(
c2 | 1
u);
522 c = (char)(c + (ushort)(c & 1));
523 c2 = (char)(
c2 + (ushort)(
c2 & 1));
544 AddCategory(
negate ?
"\0\ufffe\ufffb\ufffd\uffff\ufffa\ufff7■\0" :
"\0\u0002\u0004\u0005\u0003\u0001\u0006\t\u0013\0");
574 bool flag = set.Length >= 2 &&
set[0] ==
'\0' &&
set[1] ==
'\0';
575 int num = 3 + set.Length + category.Length;
583 if (
state.startsWithNulls)
586 span[1] = (char)(state.set.Length - 2);
587 span[2] = (char)state.category.Length;
588 state.set.AsSpan(2).CopyTo(span.Slice(3));
589 start = 3 + state.set.Length - 2;
594 span[1] = (char)state.set.Length;
595 span[2] = (char)state.category.Length;
596 state.set.CopyTo(span.Slice(3));
597 start = 3 + state.set.Length;
630 if (
set[3] !=
'\uffff')
632 return set[3] + 1 ==
set[4];
643 if (
set[3] !=
'\uffff')
645 return set[3] + 1 ==
set[4];
654 if (
set[2] ==
'\u0001' &&
set[1] ==
'\0' && !
IsSubtraction(
set))
656 short num = (
short)
set[3];
666 else if (num < 0 && num != -100)
680 if (
set[2] ==
'\0' &&
set.Length == 3 +
set[1])
706 for (
int i = 3;
i < 3 + num;
i += 2)
708 int num3 =
set[
i + 1];
727 if (
set1 ==
"\0\u0001\0\0" ||
set2 ==
"\0\u0001\0\0")
735 return !
set1.AsSpan(1).SequenceEqual(
set2.AsSpan(1));
756 if (
set1 ==
"\0\0\u0001d" ||
set1 ==
"\0\u0004\0\t\u000e !")
761 return set2 ==
"\0\n\00:A[_`a{İı";
763 case "\0\0\n\0\u0002\u0004\u0005\u0003\u0001\u0006\t\u0013\0":
772 for (
int i = 3;
i < 3 +
set2[1];
i += 2)
774 int num =
set2[
i + 1];
789 if (
set.Length > 3 &&
set[1] >
'\0' &&
set[1] % 2 == 0 &&
set[2] ==
'\0')
806 result.AllNonAsciiContained =
set[^1] <
'\u0080';
807 result.AllAsciiContained =
set[3] >=
'\u0080';
808 result.ContainsNoAscii =
false;
809 result.ContainsOnlyAscii =
false;
813 result.AllNonAsciiContained =
false;
814 result.AllAsciiContained =
false;
815 result.ContainsOnlyAscii =
set[^1] <=
'\u0080';
816 result.ContainsNoAscii =
set[3] >=
'\u0080';
827 return set[0] ==
'\u0001';
837 if (((uint)(
ch - 65) & -33) >= 26 && (uint)(
ch - 48) >= 10
u &&
ch !=
'_')
847 int num = (int)
ch >> 3;
859 return ch ==
'\u200c';
866 0, 0, 0, 0, 0, 0, 255, 3, 254, 255,
867 255, 135, 254, 255, 255, 7
881 int num = 1 << ((
ch & 0xF) << 1);
884 if ((
num3 & num) != 0)
907 int num =
set[
start + 1];
915 if (flag &&
set.Length >
num3)
938 if ((num & 1) == (
start & 1))
967 if (
char.IsWhiteSpace(
ch))
977 else if (
num2 == -100)
979 if (!
char.IsWhiteSpace(
ch))
1070 return vsb.ToString();
1081 span[2] = (char)num;
1091 vsb.Append((
char)(singleRange.Last + 1));
1217 return text.AsSpan(1);
void CopyTo(KeyValuePair< TKey, TValue >[] array, int index)
void AddRange(IEnumerable< KeyValuePair< TKey, TValue > > collection)
void Add(TKey key, TValue value)
static UnicodeCategory GetUnicodeCategory(char ch)
static string Format(string resourceFormat, object p1)
static string UnrecognizedUnicodeProperty
static string MakeException
static readonly Dictionary< string, string > s_definedCategories
static string ConvertOldStringsToClass(string set, string category)
void AddRange(char first, char last)
static bool CharInClassInternal(char ch, string set, int start, int setLength, int categoryLength)
static bool IsSingletonInverse(string set)
void ToStringClass(ref System.Text.ValueStringBuilder vsb)
void AddLowercase(CultureInfo culture)
static int GetSetChars(string set, Span< char > chars)
static bool IsNegated(string set)
void AddSet(ReadOnlySpan< char > set)
static RegexCharClass ParseRecursive(string charClass, int start)
static bool CharInClass(char ch, string set)
void AddLowercaseRange(char chMin, char chMax)
static bool IsECMAWordChar(char ch)
void AddSubtraction(RegexCharClass sub)
static bool IsNegated(string set, int setOffset)
static bool TryGetSingleRange(string set, out char lowInclusive, out char highInclusive)
static bool CharInClassRecursive(char ch, string set, int start)
static readonly LowerCaseMapping[] s_lcTable
void AddDigit(bool ecma, bool negate, string pattern, int currentPos)
static bool IsSubtraction(string charClass)
static bool CharInCategory(char ch, string set, int start, int setLength, int categoryLength)
static readonly string[][] s_propTable
static bool CharInClass(char ch, string set, ref int[] asciiResultCache)
static bool TryGetSingleUnicodeCategory(string set, out UnicodeCategory category, out bool negated)
static bool CanEasilyEnumerateSetContents(string set)
static char SingletonChar(string set)
static bool IsEmpty(string charClass)
StringBuilder EnsureCategories()
void AddCategoryFromName(string categoryName, bool invert, bool caseInsensitive, string pattern, int currentPos)
List< SingleRange > EnsureRangeList()
List< SingleRange > _rangelist
static bool IsSingleton(string set)
static bool MayOverlap(string set1, string set2)
void AddWord(bool ecma, bool negate)
void AddSpace(bool ecma, bool negate)
static bool CharInCategoryGroup(UnicodeCategory chcategory, string category, ref int i)
RegexCharClass(bool negate, List< SingleRange > ranges, StringBuilder categories, RegexCharClass subtraction)
bool TryAddCharClass(RegexCharClass cc)
static CharClassAnalysisResults Analyze(string set)
static bool IsWordChar(char ch)
static RegexCharClass Parse(string charClass)
static ReadOnlySpan< char > SetFromProperty(string capname, bool invert, string pattern, int currentPos)
void AddCategory(string category)
RegexCharClass _subtractor
StringBuilder _categories
void AddCharClass(RegexCharClass cc)
static bool IsMergeable(string charClass)
ChunkEnumerator GetChunks()
StringBuilder Append(char value, int repeatCount)
static int CompareExchange(ref int location1, int value, int comparand)
static int Or(ref int location1, int value)
bool AllNonAsciiContained
LowerCaseMapping(char chMin, char chMax, int lcOp, int data)
SingleRange(char first, char last)
ChunkEnumerator GetEnumerator()