6 * Use, modification and distribution are subject to the
7 * Boost Software License, Version 1.0. (See accompanying file
8 * LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
13 * LOCATION: see http://www.boost.org for most recent version.
14 * FILE regex_traits_defaults.cpp
15 * VERSION see <boost/version.hpp>
16 * DESCRIPTION: Declares API's for access to regex_traits default properties.
19 #define BOOST_REGEX_SOURCE
20 #include <boost/regex/regex_traits.hpp>
23 #ifndef BOOST_NO_WREGEX
27 #if defined(BOOST_NO_STDC_NAMESPACE)
31 #ifndef BOOST_NO_WREGEX
39 namespace boost
{ namespace re_detail
{
41 BOOST_REGEX_DECL
const char* BOOST_REGEX_CALL
get_default_syntax(regex_constants::syntax_type n
)
43 // if the user hasn't supplied a message catalog, then this supplies
44 // default "messages" for us to load in the range 1-100.
45 const char* messages
[] = {
108 return ((n
>= (sizeof(messages
) / sizeof(messages
[1]))) ? "" : messages
[n
]);
111 BOOST_REGEX_DECL
const char* BOOST_REGEX_CALL
get_default_error_string(regex_constants::error_type n
)
113 static const char* const s_default_error_messages
[] = {
114 "Success", /* REG_NOERROR 0 error_ok */
115 "No match", /* REG_NOMATCH 1 error_no_match */
116 "Invalid regular expression.", /* REG_BADPAT 2 error_bad_pattern */
117 "Invalid collation character.", /* REG_ECOLLATE 3 error_collate */
118 "Invalid character class name, collating name, or character range.", /* REG_ECTYPE 4 error_ctype */
119 "Invalid or unterminated escape sequence.", /* REG_EESCAPE 5 error_escape */
120 "Invalid back reference: specified capturing group does not exist.", /* REG_ESUBREG 6 error_backref */
121 "Unmatched [ or [^ in character class declaration.", /* REG_EBRACK 7 error_brack */
122 "Unmatched marking parenthesis ( or \\(.", /* REG_EPAREN 8 error_paren */
123 "Unmatched quantified repeat operator { or \\{.", /* REG_EBRACE 9 error_brace */
124 "Invalid content of repeat range.", /* REG_BADBR 10 error_badbrace */
125 "Invalid range end in character class", /* REG_ERANGE 11 error_range */
126 "Out of memory.", /* REG_ESPACE 12 error_space NOT USED */
127 "Invalid preceding regular expression prior to repetition operator.", /* REG_BADRPT 13 error_badrepeat */
128 "Premature end of regular expression", /* REG_EEND 14 error_end NOT USED */
129 "Regular expression is too large.", /* REG_ESIZE 15 error_size NOT USED */
130 "Unmatched ) or \\)", /* REG_ERPAREN 16 error_right_paren NOT USED */
131 "Empty regular expression.", /* REG_EMPTY 17 error_empty */
132 "The complexity of matching the regular expression exceeded predefined bounds. "
133 "Try refactoring the regular expression to make each choice made by the state machine unambiguous. "
134 "This exception is thrown to prevent \"eternal\" matches that take an "
135 "indefinite period time to locate.", /* REG_ECOMPLEXITY 18 error_complexity */
136 "Ran out of stack space trying to match the regular expression.", /* REG_ESTACK 19 error_stack */
137 "Invalid or unterminated Perl (?...) sequence.", /* REG_E_PERL 20 error_perl */
138 "Unknown error.", /* REG_E_UNKNOWN 21 error_unknown */
141 return (n
> ::boost::regex_constants::error_unknown
) ? s_default_error_messages
[ ::boost::regex_constants::error_unknown
] : s_default_error_messages
[n
];
144 BOOST_REGEX_DECL
bool BOOST_REGEX_CALL
is_combining_implementation(boost::uint_least16_t c
)
146 const boost::uint_least16_t combining_ranges
[] = { 0x0300, 0x0361,
185 const boost::uint_least16_t* p
= combining_ranges
+ 1;
186 while(*p
< c
) p
+= 2;
188 if((c
>= *p
) && (c
<= *(p
+1)))
194 // these are the POSIX collating names:
196 BOOST_REGEX_DECL
const char* def_coll_names
[] = {
197 "NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "alert", "backspace", "tab", "newline",
198 "vertical-tab", "form-feed", "carriage-return", "SO", "SI", "DLE", "DC1", "DC2", "DC3", "DC4", "NAK",
199 "SYN", "ETB", "CAN", "EM", "SUB", "ESC", "IS4", "IS3", "IS2", "IS1", "space", "exclamation-mark",
200 "quotation-mark", "number-sign", "dollar-sign", "percent-sign", "ampersand", "apostrophe",
201 "left-parenthesis", "right-parenthesis", "asterisk", "plus-sign", "comma", "hyphen",
202 "period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
203 "colon", "semicolon", "less-than-sign", "equals-sign", "greater-than-sign",
204 "question-mark", "commercial-at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
205 "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "left-square-bracket", "backslash",
206 "right-square-bracket", "circumflex", "underscore", "grave-accent", "a", "b", "c", "d", "e", "f",
207 "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "left-curly-bracket",
208 "vertical-line", "right-curly-bracket", "tilde", "DEL", "",
211 // these multi-character collating elements
212 // should keep most Western-European locales
213 // happy - we should really localise these a
214 // little more - but this will have to do for
217 BOOST_REGEX_DECL
const char* def_multi_coll
[] = {
244 BOOST_REGEX_DECL
std::string BOOST_REGEX_CALL
lookup_default_collate_name(const std::string
& name
)
247 while(*def_coll_names
[i
])
249 if(def_coll_names
[i
] == name
)
251 return std::string(1, char(i
));
256 while(*def_multi_coll
[i
])
258 if(def_multi_coll
[i
] == name
)
260 return def_multi_coll
[i
];
264 return std::string();
267 BOOST_REGEX_DECL
char BOOST_REGEX_CALL
do_global_lower(char c
)
269 return static_cast<char>((std::tolower
)((unsigned char)c
));
272 BOOST_REGEX_DECL
char BOOST_REGEX_CALL
do_global_upper(char c
)
274 return static_cast<char>((std::toupper
)((unsigned char)c
));
276 #ifndef BOOST_NO_WREGEX
277 BOOST_REGEX_DECL
wchar_t BOOST_REGEX_CALL
do_global_lower(wchar_t c
)
279 return (std::towlower
)(c
);
282 BOOST_REGEX_DECL
wchar_t BOOST_REGEX_CALL
do_global_upper(wchar_t c
)
284 return (std::towupper
)(c
);
286 #ifdef BOOST_REGEX_HAS_OTHER_WCHAR_T
287 BOOST_REGEX_DECL
unsigned short BOOST_REGEX_CALL
do_global_lower(unsigned short c
)
289 return (std::towlower
)(c
);
292 BOOST_REGEX_DECL
unsigned short BOOST_REGEX_CALL
do_global_upper(unsigned short c
)
294 return (std::towupper
)(c
);
300 BOOST_REGEX_DECL
regex_constants::escape_syntax_type BOOST_REGEX_CALL
get_default_escape_syntax_type(char c
)
303 // char_syntax determines how the compiler treats a given character
304 // in a regular expression.
306 static regex_constants::escape_syntax_type char_syntax
[] = {
307 regex_constants::escape_type_identity
, /**/
308 regex_constants::escape_type_identity
, /**/
309 regex_constants::escape_type_identity
, /**/
310 regex_constants::escape_type_identity
, /**/
311 regex_constants::escape_type_identity
, /**/
312 regex_constants::escape_type_identity
, /**/
313 regex_constants::escape_type_identity
, /**/
314 regex_constants::escape_type_identity
, /**/
315 regex_constants::escape_type_identity
, /**/
316 regex_constants::escape_type_identity
, /**/
317 regex_constants::escape_type_identity
, /**/
318 regex_constants::escape_type_identity
, /**/
319 regex_constants::escape_type_identity
, /**/
320 regex_constants::escape_type_identity
, /**/
321 regex_constants::escape_type_identity
, /**/
322 regex_constants::escape_type_identity
, /**/
323 regex_constants::escape_type_identity
, /**/
324 regex_constants::escape_type_identity
, /**/
325 regex_constants::escape_type_identity
, /**/
326 regex_constants::escape_type_identity
, /**/
327 regex_constants::escape_type_identity
, /**/
328 regex_constants::escape_type_identity
, /**/
329 regex_constants::escape_type_identity
, /**/
330 regex_constants::escape_type_identity
, /**/
331 regex_constants::escape_type_identity
, /**/
332 regex_constants::escape_type_identity
, /**/
333 regex_constants::escape_type_identity
, /**/
334 regex_constants::escape_type_identity
, /**/
335 regex_constants::escape_type_identity
, /**/
336 regex_constants::escape_type_identity
, /**/
337 regex_constants::escape_type_identity
, /**/
338 regex_constants::escape_type_identity
, /**/
339 regex_constants::escape_type_identity
, /* */ // 32
340 regex_constants::escape_type_identity
, /*!*/
341 regex_constants::escape_type_identity
, /*"*/
342 regex_constants::escape_type_identity
, /*#*/
343 regex_constants::escape_type_identity
, /*$*/
344 regex_constants::escape_type_identity
, /*%*/
345 regex_constants::escape_type_identity
, /*&*/
346 regex_constants::escape_type_end_buffer
, /*'*/
347 regex_constants::syntax_open_mark
, /*(*/
348 regex_constants::syntax_close_mark
, /*)*/
349 regex_constants::escape_type_identity
, /***/
350 regex_constants::syntax_plus
, /*+*/
351 regex_constants::escape_type_identity
, /*,*/
352 regex_constants::escape_type_identity
, /*-*/
353 regex_constants::escape_type_identity
, /*.*/
354 regex_constants::escape_type_identity
, /*/*/
355 regex_constants::escape_type_decimal, /*0*/
356 regex_constants::escape_type_backref
, /*1*/
357 regex_constants::escape_type_backref
, /*2*/
358 regex_constants::escape_type_backref
, /*3*/
359 regex_constants::escape_type_backref
, /*4*/
360 regex_constants::escape_type_backref
, /*5*/
361 regex_constants::escape_type_backref
, /*6*/
362 regex_constants::escape_type_backref
, /*7*/
363 regex_constants::escape_type_backref
, /*8*/
364 regex_constants::escape_type_backref
, /*9*/
365 regex_constants::escape_type_identity
, /*:*/
366 regex_constants::escape_type_identity
, /*;*/
367 regex_constants::escape_type_left_word
, /*<*/
368 regex_constants::escape_type_identity
, /*=*/
369 regex_constants::escape_type_right_word
, /*>*/
370 regex_constants::syntax_question
, /*?*/
371 regex_constants::escape_type_identity
, /*@*/
372 regex_constants::escape_type_start_buffer
, /*A*/
373 regex_constants::escape_type_not_word_assert
, /*B*/
374 regex_constants::escape_type_C
, /*C*/
375 regex_constants::escape_type_not_class
, /*D*/
376 regex_constants::escape_type_E
, /*E*/
377 regex_constants::escape_type_not_class
, /*F*/
378 regex_constants::escape_type_G
, /*G*/
379 regex_constants::escape_type_not_class
, /*H*/
380 regex_constants::escape_type_not_class
, /*I*/
381 regex_constants::escape_type_not_class
, /*J*/
382 regex_constants::escape_type_reset_start_mark
, /*K*/
383 regex_constants::escape_type_not_class
, /*L*/
384 regex_constants::escape_type_not_class
, /*M*/
385 regex_constants::escape_type_named_char
, /*N*/
386 regex_constants::escape_type_not_class
, /*O*/
387 regex_constants::escape_type_not_property
, /*P*/
388 regex_constants::escape_type_Q
, /*Q*/
389 regex_constants::escape_type_line_ending
, /*R*/
390 regex_constants::escape_type_not_class
, /*S*/
391 regex_constants::escape_type_not_class
, /*T*/
392 regex_constants::escape_type_not_class
, /*U*/
393 regex_constants::escape_type_not_class
, /*V*/
394 regex_constants::escape_type_not_class
, /*W*/
395 regex_constants::escape_type_X
, /*X*/
396 regex_constants::escape_type_not_class
, /*Y*/
397 regex_constants::escape_type_Z
, /*Z*/
398 regex_constants::escape_type_identity
, /*[*/
399 regex_constants::escape_type_identity
, /*\*/
400 regex_constants::escape_type_identity
, /*]*/
401 regex_constants::escape_type_identity
, /*^*/
402 regex_constants::escape_type_identity
, /*_*/
403 regex_constants::escape_type_start_buffer
, /*`*/
404 regex_constants::escape_type_control_a
, /*a*/
405 regex_constants::escape_type_word_assert
, /*b*/
406 regex_constants::escape_type_ascii_control
, /*c*/
407 regex_constants::escape_type_class
, /*d*/
408 regex_constants::escape_type_e
, /*e*/
409 regex_constants::escape_type_control_f
, /*f*/
410 regex_constants::escape_type_extended_backref
, /*g*/
411 regex_constants::escape_type_class
, /*h*/
412 regex_constants::escape_type_class
, /*i*/
413 regex_constants::escape_type_class
, /*j*/
414 regex_constants::escape_type_extended_backref
, /*k*/
415 regex_constants::escape_type_class
, /*l*/
416 regex_constants::escape_type_class
, /*m*/
417 regex_constants::escape_type_control_n
, /*n*/
418 regex_constants::escape_type_class
, /*o*/
419 regex_constants::escape_type_property
, /*p*/
420 regex_constants::escape_type_class
, /*q*/
421 regex_constants::escape_type_control_r
, /*r*/
422 regex_constants::escape_type_class
, /*s*/
423 regex_constants::escape_type_control_t
, /*t*/
424 regex_constants::escape_type_class
, /*u*/
425 regex_constants::escape_type_control_v
, /*v*/
426 regex_constants::escape_type_class
, /*w*/
427 regex_constants::escape_type_hex
, /*x*/
428 regex_constants::escape_type_class
, /*y*/
429 regex_constants::escape_type_end_buffer
, /*z*/
430 regex_constants::syntax_open_brace
, /*{*/
431 regex_constants::syntax_or
, /*|*/
432 regex_constants::syntax_close_brace
, /*}*/
433 regex_constants::escape_type_identity
, /*~*/
434 regex_constants::escape_type_identity
, /**/
435 regex_constants::escape_type_identity
, /**/
436 regex_constants::escape_type_identity
, /**/
437 regex_constants::escape_type_identity
, /**/
438 regex_constants::escape_type_identity
, /**/
439 regex_constants::escape_type_identity
, /**/
440 regex_constants::escape_type_identity
, /**/
441 regex_constants::escape_type_identity
, /**/
442 regex_constants::escape_type_identity
, /**/
443 regex_constants::escape_type_identity
, /**/
444 regex_constants::escape_type_identity
, /**/
445 regex_constants::escape_type_identity
, /**/
446 regex_constants::escape_type_identity
, /**/
447 regex_constants::escape_type_identity
, /**/
448 regex_constants::escape_type_identity
, /**/
449 regex_constants::escape_type_identity
, /**/
450 regex_constants::escape_type_identity
, /**/
451 regex_constants::escape_type_identity
, /**/
452 regex_constants::escape_type_identity
, /**/
453 regex_constants::escape_type_identity
, /**/
454 regex_constants::escape_type_identity
, /**/
455 regex_constants::escape_type_identity
, /**/
456 regex_constants::escape_type_identity
, /**/
457 regex_constants::escape_type_identity
, /**/
458 regex_constants::escape_type_identity
, /**/
459 regex_constants::escape_type_identity
, /**/
460 regex_constants::escape_type_identity
, /**/
461 regex_constants::escape_type_identity
, /**/
462 regex_constants::escape_type_identity
, /**/
463 regex_constants::escape_type_identity
, /**/
464 regex_constants::escape_type_identity
, /**/
465 regex_constants::escape_type_identity
, /**/
466 regex_constants::escape_type_identity
, /**/
467 regex_constants::escape_type_identity
, /**/
468 regex_constants::escape_type_identity
, /**/
469 regex_constants::escape_type_identity
, /**/
470 regex_constants::escape_type_identity
, /**/
471 regex_constants::escape_type_identity
, /**/
472 regex_constants::escape_type_identity
, /**/
473 regex_constants::escape_type_identity
, /**/
474 regex_constants::escape_type_identity
, /**/
475 regex_constants::escape_type_identity
, /**/
476 regex_constants::escape_type_identity
, /**/
477 regex_constants::escape_type_identity
, /**/
478 regex_constants::escape_type_identity
, /**/
479 regex_constants::escape_type_identity
, /**/
480 regex_constants::escape_type_identity
, /**/
481 regex_constants::escape_type_identity
, /**/
482 regex_constants::escape_type_identity
, /**/
483 regex_constants::escape_type_identity
, /**/
484 regex_constants::escape_type_identity
, /**/
485 regex_constants::escape_type_identity
, /**/
486 regex_constants::escape_type_identity
, /**/
487 regex_constants::escape_type_identity
, /**/
488 regex_constants::escape_type_identity
, /**/
489 regex_constants::escape_type_identity
, /**/
492 return char_syntax
[(unsigned char)c
];
495 BOOST_REGEX_DECL
regex_constants::syntax_type BOOST_REGEX_CALL
get_default_syntax_type(char c
)
498 // char_syntax determines how the compiler treats a given character
499 // in a regular expression.
501 static regex_constants::syntax_type char_syntax
[] = {
502 regex_constants::syntax_char
, /**/
503 regex_constants::syntax_char
, /**/
504 regex_constants::syntax_char
, /**/
505 regex_constants::syntax_char
, /**/
506 regex_constants::syntax_char
, /**/
507 regex_constants::syntax_char
, /**/
508 regex_constants::syntax_char
, /**/
509 regex_constants::syntax_char
, /**/
510 regex_constants::syntax_char
, /**/
511 regex_constants::syntax_char
, /**/
512 regex_constants::syntax_newline
, /**/
513 regex_constants::syntax_char
, /**/
514 regex_constants::syntax_char
, /**/
515 regex_constants::syntax_char
, /**/
516 regex_constants::syntax_char
, /**/
517 regex_constants::syntax_char
, /**/
518 regex_constants::syntax_char
, /**/
519 regex_constants::syntax_char
, /**/
520 regex_constants::syntax_char
, /**/
521 regex_constants::syntax_char
, /**/
522 regex_constants::syntax_char
, /**/
523 regex_constants::syntax_char
, /**/
524 regex_constants::syntax_char
, /**/
525 regex_constants::syntax_char
, /**/
526 regex_constants::syntax_char
, /**/
527 regex_constants::syntax_char
, /**/
528 regex_constants::syntax_char
, /**/
529 regex_constants::syntax_char
, /**/
530 regex_constants::syntax_char
, /**/
531 regex_constants::syntax_char
, /**/
532 regex_constants::syntax_char
, /**/
533 regex_constants::syntax_char
, /**/
534 regex_constants::syntax_char
, /* */ // 32
535 regex_constants::syntax_not
, /*!*/
536 regex_constants::syntax_char
, /*"*/
537 regex_constants::syntax_hash
, /*#*/
538 regex_constants::syntax_dollar
, /*$*/
539 regex_constants::syntax_char
, /*%*/
540 regex_constants::syntax_char
, /*&*/
541 regex_constants::escape_type_end_buffer
, /*'*/
542 regex_constants::syntax_open_mark
, /*(*/
543 regex_constants::syntax_close_mark
, /*)*/
544 regex_constants::syntax_star
, /***/
545 regex_constants::syntax_plus
, /*+*/
546 regex_constants::syntax_comma
, /*,*/
547 regex_constants::syntax_dash
, /*-*/
548 regex_constants::syntax_dot
, /*.*/
549 regex_constants::syntax_char
, /*/*/
550 regex_constants::syntax_digit, /*0*/
551 regex_constants::syntax_digit
, /*1*/
552 regex_constants::syntax_digit
, /*2*/
553 regex_constants::syntax_digit
, /*3*/
554 regex_constants::syntax_digit
, /*4*/
555 regex_constants::syntax_digit
, /*5*/
556 regex_constants::syntax_digit
, /*6*/
557 regex_constants::syntax_digit
, /*7*/
558 regex_constants::syntax_digit
, /*8*/
559 regex_constants::syntax_digit
, /*9*/
560 regex_constants::syntax_colon
, /*:*/
561 regex_constants::syntax_char
, /*;*/
562 regex_constants::escape_type_left_word
, /*<*/
563 regex_constants::syntax_equal
, /*=*/
564 regex_constants::escape_type_right_word
, /*>*/
565 regex_constants::syntax_question
, /*?*/
566 regex_constants::syntax_char
, /*@*/
567 regex_constants::syntax_char
, /*A*/
568 regex_constants::syntax_char
, /*B*/
569 regex_constants::syntax_char
, /*C*/
570 regex_constants::syntax_char
, /*D*/
571 regex_constants::syntax_char
, /*E*/
572 regex_constants::syntax_char
, /*F*/
573 regex_constants::syntax_char
, /*G*/
574 regex_constants::syntax_char
, /*H*/
575 regex_constants::syntax_char
, /*I*/
576 regex_constants::syntax_char
, /*J*/
577 regex_constants::syntax_char
, /*K*/
578 regex_constants::syntax_char
, /*L*/
579 regex_constants::syntax_char
, /*M*/
580 regex_constants::syntax_char
, /*N*/
581 regex_constants::syntax_char
, /*O*/
582 regex_constants::syntax_char
, /*P*/
583 regex_constants::syntax_char
, /*Q*/
584 regex_constants::syntax_char
, /*R*/
585 regex_constants::syntax_char
, /*S*/
586 regex_constants::syntax_char
, /*T*/
587 regex_constants::syntax_char
, /*U*/
588 regex_constants::syntax_char
, /*V*/
589 regex_constants::syntax_char
, /*W*/
590 regex_constants::syntax_char
, /*X*/
591 regex_constants::syntax_char
, /*Y*/
592 regex_constants::syntax_char
, /*Z*/
593 regex_constants::syntax_open_set
, /*[*/
594 regex_constants::syntax_escape
, /*\*/
595 regex_constants::syntax_close_set
, /*]*/
596 regex_constants::syntax_caret
, /*^*/
597 regex_constants::syntax_char
, /*_*/
598 regex_constants::syntax_char
, /*`*/
599 regex_constants::syntax_char
, /*a*/
600 regex_constants::syntax_char
, /*b*/
601 regex_constants::syntax_char
, /*c*/
602 regex_constants::syntax_char
, /*d*/
603 regex_constants::syntax_char
, /*e*/
604 regex_constants::syntax_char
, /*f*/
605 regex_constants::syntax_char
, /*g*/
606 regex_constants::syntax_char
, /*h*/
607 regex_constants::syntax_char
, /*i*/
608 regex_constants::syntax_char
, /*j*/
609 regex_constants::syntax_char
, /*k*/
610 regex_constants::syntax_char
, /*l*/
611 regex_constants::syntax_char
, /*m*/
612 regex_constants::syntax_char
, /*n*/
613 regex_constants::syntax_char
, /*o*/
614 regex_constants::syntax_char
, /*p*/
615 regex_constants::syntax_char
, /*q*/
616 regex_constants::syntax_char
, /*r*/
617 regex_constants::syntax_char
, /*s*/
618 regex_constants::syntax_char
, /*t*/
619 regex_constants::syntax_char
, /*u*/
620 regex_constants::syntax_char
, /*v*/
621 regex_constants::syntax_char
, /*w*/
622 regex_constants::syntax_char
, /*x*/
623 regex_constants::syntax_char
, /*y*/
624 regex_constants::syntax_char
, /*z*/
625 regex_constants::syntax_open_brace
, /*{*/
626 regex_constants::syntax_or
, /*|*/
627 regex_constants::syntax_close_brace
, /*}*/
628 regex_constants::syntax_char
, /*~*/
629 regex_constants::syntax_char
, /**/
630 regex_constants::syntax_char
, /**/
631 regex_constants::syntax_char
, /**/
632 regex_constants::syntax_char
, /**/
633 regex_constants::syntax_char
, /**/
634 regex_constants::syntax_char
, /**/
635 regex_constants::syntax_char
, /**/
636 regex_constants::syntax_char
, /**/
637 regex_constants::syntax_char
, /**/
638 regex_constants::syntax_char
, /**/
639 regex_constants::syntax_char
, /**/
640 regex_constants::syntax_char
, /**/
641 regex_constants::syntax_char
, /**/
642 regex_constants::syntax_char
, /**/
643 regex_constants::syntax_char
, /**/
644 regex_constants::syntax_char
, /**/
645 regex_constants::syntax_char
, /**/
646 regex_constants::syntax_char
, /**/
647 regex_constants::syntax_char
, /**/
648 regex_constants::syntax_char
, /**/
649 regex_constants::syntax_char
, /**/
650 regex_constants::syntax_char
, /**/
651 regex_constants::syntax_char
, /**/
652 regex_constants::syntax_char
, /**/
653 regex_constants::syntax_char
, /**/
654 regex_constants::syntax_char
, /**/
655 regex_constants::syntax_char
, /**/
656 regex_constants::syntax_char
, /**/
657 regex_constants::syntax_char
, /**/
658 regex_constants::syntax_char
, /**/
659 regex_constants::syntax_char
, /**/
660 regex_constants::syntax_char
, /**/
661 regex_constants::syntax_char
, /**/
662 regex_constants::syntax_char
, /**/
663 regex_constants::syntax_char
, /**/
664 regex_constants::syntax_char
, /**/
665 regex_constants::syntax_char
, /**/
666 regex_constants::syntax_char
, /**/
667 regex_constants::syntax_char
, /**/
668 regex_constants::syntax_char
, /**/
669 regex_constants::syntax_char
, /**/
670 regex_constants::syntax_char
, /**/
671 regex_constants::syntax_char
, /**/
672 regex_constants::syntax_char
, /**/
673 regex_constants::syntax_char
, /**/
674 regex_constants::syntax_char
, /**/
675 regex_constants::syntax_char
, /**/
676 regex_constants::syntax_char
, /**/
677 regex_constants::syntax_char
, /**/
678 regex_constants::syntax_char
, /**/
679 regex_constants::syntax_char
, /**/
680 regex_constants::syntax_char
, /**/
681 regex_constants::syntax_char
, /**/
682 regex_constants::syntax_char
, /**/
683 regex_constants::syntax_char
, /**/
684 regex_constants::syntax_char
, /**/
687 return char_syntax
[(unsigned char)c
];