mirror of
https://github.com/boostorg/regex.git
synced 2026-02-04 14:25:15 +01:00
They increase memory consumption and make exploits easier and are completely unnecessary. Avoid them by either avoiding the pointer indirection completely by using char arrays for strings instead of char pointers, convert "static" pointer variables to simple local variables, or mark the array of pointers as const instead of just the things pointed to.
693 lines
29 KiB
C++
693 lines
29 KiB
C++
/*
|
|
*
|
|
* Copyright (c) 2004
|
|
* John Maddock
|
|
*
|
|
* Use, modification and distribution are subject to the
|
|
* Boost Software License, Version 1.0. (See accompanying file
|
|
* LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* LOCATION: see http://www.boost.org for most recent version.
|
|
* FILE regex_traits_defaults.cpp
|
|
* VERSION see <boost/version.hpp>
|
|
* DESCRIPTION: Declares API's for access to regex_traits default properties.
|
|
*/
|
|
|
|
#define BOOST_REGEX_SOURCE
|
|
#include <boost/regex/regex_traits.hpp>
|
|
|
|
#include <cctype>
|
|
#ifndef BOOST_NO_WREGEX
|
|
#include <cwctype>
|
|
#endif
|
|
|
|
#if defined(BOOST_NO_STDC_NAMESPACE)
|
|
namespace std{
|
|
using ::tolower;
|
|
using ::toupper;
|
|
#ifndef BOOST_NO_WREGEX
|
|
using ::towlower;
|
|
using ::towupper;
|
|
#endif
|
|
}
|
|
#endif
|
|
|
|
|
|
namespace boost{ namespace BOOST_REGEX_DETAIL_NS{
|
|
|
|
BOOST_REGEX_DECL const char* BOOST_REGEX_CALL get_default_syntax(regex_constants::syntax_type n)
|
|
{
|
|
// if the user hasn't supplied a message catalog, then this supplies
|
|
// default "messages" for us to load in the range 1-100.
|
|
const char* messages[] = {
|
|
"",
|
|
"(",
|
|
")",
|
|
"$",
|
|
"^",
|
|
".",
|
|
"*",
|
|
"+",
|
|
"?",
|
|
"[",
|
|
"]",
|
|
"|",
|
|
"\\",
|
|
"#",
|
|
"-",
|
|
"{",
|
|
"}",
|
|
"0123456789",
|
|
"b",
|
|
"B",
|
|
"<",
|
|
">",
|
|
"",
|
|
"",
|
|
"A`",
|
|
"z'",
|
|
"\n",
|
|
",",
|
|
"a",
|
|
"f",
|
|
"n",
|
|
"r",
|
|
"t",
|
|
"v",
|
|
"x",
|
|
"c",
|
|
":",
|
|
"=",
|
|
"e",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"",
|
|
"E",
|
|
"Q",
|
|
"X",
|
|
"C",
|
|
"Z",
|
|
"G",
|
|
"!",
|
|
"p",
|
|
"P",
|
|
"N",
|
|
"gk",
|
|
"K",
|
|
"R",
|
|
};
|
|
|
|
return ((n >= (sizeof(messages) / sizeof(messages[1]))) ? "" : messages[n]);
|
|
}
|
|
|
|
BOOST_REGEX_DECL const char* BOOST_REGEX_CALL get_default_error_string(regex_constants::error_type n)
|
|
{
|
|
static const char* const s_default_error_messages[] = {
|
|
"Success", /* REG_NOERROR 0 error_ok */
|
|
"No match", /* REG_NOMATCH 1 error_no_match */
|
|
"Invalid regular expression.", /* REG_BADPAT 2 error_bad_pattern */
|
|
"Invalid collation character.", /* REG_ECOLLATE 3 error_collate */
|
|
"Invalid character class name, collating name, or character range.", /* REG_ECTYPE 4 error_ctype */
|
|
"Invalid or unterminated escape sequence.", /* REG_EESCAPE 5 error_escape */
|
|
"Invalid back reference: specified capturing group does not exist.", /* REG_ESUBREG 6 error_backref */
|
|
"Unmatched [ or [^ in character class declaration.", /* REG_EBRACK 7 error_brack */
|
|
"Unmatched marking parenthesis ( or \\(.", /* REG_EPAREN 8 error_paren */
|
|
"Unmatched quantified repeat operator { or \\{.", /* REG_EBRACE 9 error_brace */
|
|
"Invalid content of repeat range.", /* REG_BADBR 10 error_badbrace */
|
|
"Invalid range end in character class", /* REG_ERANGE 11 error_range */
|
|
"Out of memory.", /* REG_ESPACE 12 error_space NOT USED */
|
|
"Invalid preceding regular expression prior to repetition operator.", /* REG_BADRPT 13 error_badrepeat */
|
|
"Premature end of regular expression", /* REG_EEND 14 error_end NOT USED */
|
|
"Regular expression is too large.", /* REG_ESIZE 15 error_size NOT USED */
|
|
"Unmatched ) or \\)", /* REG_ERPAREN 16 error_right_paren NOT USED */
|
|
"Empty regular expression.", /* REG_EMPTY 17 error_empty */
|
|
"The complexity of matching the regular expression exceeded predefined bounds. "
|
|
"Try refactoring the regular expression to make each choice made by the state machine unambiguous. "
|
|
"This exception is thrown to prevent \"eternal\" matches that take an "
|
|
"indefinite period time to locate.", /* REG_ECOMPLEXITY 18 error_complexity */
|
|
"Ran out of stack space trying to match the regular expression.", /* REG_ESTACK 19 error_stack */
|
|
"Invalid or unterminated Perl (?...) sequence.", /* REG_E_PERL 20 error_perl */
|
|
"Unknown error.", /* REG_E_UNKNOWN 21 error_unknown */
|
|
};
|
|
|
|
return (n > ::boost::regex_constants::error_unknown) ? s_default_error_messages[ ::boost::regex_constants::error_unknown] : s_default_error_messages[n];
|
|
}
|
|
|
|
BOOST_REGEX_DECL bool BOOST_REGEX_CALL is_combining_implementation(boost::uint_least16_t c)
|
|
{
|
|
const boost::uint_least16_t combining_ranges[] = { 0x0300, 0x0361,
|
|
0x0483, 0x0486,
|
|
0x0903, 0x0903,
|
|
0x093E, 0x0940,
|
|
0x0949, 0x094C,
|
|
0x0982, 0x0983,
|
|
0x09BE, 0x09C0,
|
|
0x09C7, 0x09CC,
|
|
0x09D7, 0x09D7,
|
|
0x0A3E, 0x0A40,
|
|
0x0A83, 0x0A83,
|
|
0x0ABE, 0x0AC0,
|
|
0x0AC9, 0x0ACC,
|
|
0x0B02, 0x0B03,
|
|
0x0B3E, 0x0B3E,
|
|
0x0B40, 0x0B40,
|
|
0x0B47, 0x0B4C,
|
|
0x0B57, 0x0B57,
|
|
0x0B83, 0x0B83,
|
|
0x0BBE, 0x0BBF,
|
|
0x0BC1, 0x0BCC,
|
|
0x0BD7, 0x0BD7,
|
|
0x0C01, 0x0C03,
|
|
0x0C41, 0x0C44,
|
|
0x0C82, 0x0C83,
|
|
0x0CBE, 0x0CBE,
|
|
0x0CC0, 0x0CC4,
|
|
0x0CC7, 0x0CCB,
|
|
0x0CD5, 0x0CD6,
|
|
0x0D02, 0x0D03,
|
|
0x0D3E, 0x0D40,
|
|
0x0D46, 0x0D4C,
|
|
0x0D57, 0x0D57,
|
|
0x0F7F, 0x0F7F,
|
|
0x20D0, 0x20E1,
|
|
0x3099, 0x309A,
|
|
0xFE20, 0xFE23,
|
|
0xffff, 0xffff, };
|
|
|
|
const boost::uint_least16_t* p = combining_ranges + 1;
|
|
while(*p < c) p += 2;
|
|
--p;
|
|
if((c >= *p) && (c <= *(p+1)))
|
|
return true;
|
|
return false;
|
|
}
|
|
|
|
//
|
|
// these are the POSIX collating names:
|
|
//
|
|
static const char* def_coll_names[] = {
|
|
"NUL", "SOH", "STX", "ETX", "EOT", "ENQ", "ACK", "alert", "backspace", "tab", "newline",
|
|
"vertical-tab", "form-feed", "carriage-return", "SO", "SI", "DLE", "DC1", "DC2", "DC3", "DC4", "NAK",
|
|
"SYN", "ETB", "CAN", "EM", "SUB", "ESC", "IS4", "IS3", "IS2", "IS1", "space", "exclamation-mark",
|
|
"quotation-mark", "number-sign", "dollar-sign", "percent-sign", "ampersand", "apostrophe",
|
|
"left-parenthesis", "right-parenthesis", "asterisk", "plus-sign", "comma", "hyphen",
|
|
"period", "slash", "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine",
|
|
"colon", "semicolon", "less-than-sign", "equals-sign", "greater-than-sign",
|
|
"question-mark", "commercial-at", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P",
|
|
"Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "left-square-bracket", "backslash",
|
|
"right-square-bracket", "circumflex", "underscore", "grave-accent", "a", "b", "c", "d", "e", "f",
|
|
"g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "left-curly-bracket",
|
|
"vertical-line", "right-curly-bracket", "tilde", "DEL", "",
|
|
};
|
|
|
|
// these multi-character collating elements
|
|
// should keep most Western-European locales
|
|
// happy - we should really localise these a
|
|
// little more - but this will have to do for
|
|
// now:
|
|
|
|
static const char* def_multi_coll[] = {
|
|
"ae",
|
|
"Ae",
|
|
"AE",
|
|
"ch",
|
|
"Ch",
|
|
"CH",
|
|
"ll",
|
|
"Ll",
|
|
"LL",
|
|
"ss",
|
|
"Ss",
|
|
"SS",
|
|
"nj",
|
|
"Nj",
|
|
"NJ",
|
|
"dz",
|
|
"Dz",
|
|
"DZ",
|
|
"lj",
|
|
"Lj",
|
|
"LJ",
|
|
"",
|
|
};
|
|
|
|
|
|
|
|
BOOST_REGEX_DECL std::string BOOST_REGEX_CALL lookup_default_collate_name(const std::string& name)
|
|
{
|
|
unsigned int i = 0;
|
|
while(*def_coll_names[i])
|
|
{
|
|
if(def_coll_names[i] == name)
|
|
{
|
|
return std::string(1, char(i));
|
|
}
|
|
++i;
|
|
}
|
|
i = 0;
|
|
while(*def_multi_coll[i])
|
|
{
|
|
if(def_multi_coll[i] == name)
|
|
{
|
|
return def_multi_coll[i];
|
|
}
|
|
++i;
|
|
}
|
|
return std::string();
|
|
}
|
|
|
|
BOOST_REGEX_DECL char BOOST_REGEX_CALL do_global_lower(char c)
|
|
{
|
|
return static_cast<char>((std::tolower)((unsigned char)c));
|
|
}
|
|
|
|
BOOST_REGEX_DECL char BOOST_REGEX_CALL do_global_upper(char c)
|
|
{
|
|
return static_cast<char>((std::toupper)((unsigned char)c));
|
|
}
|
|
#ifndef BOOST_NO_WREGEX
|
|
BOOST_REGEX_DECL wchar_t BOOST_REGEX_CALL do_global_lower(wchar_t c)
|
|
{
|
|
return (std::towlower)(c);
|
|
}
|
|
|
|
BOOST_REGEX_DECL wchar_t BOOST_REGEX_CALL do_global_upper(wchar_t c)
|
|
{
|
|
return (std::towupper)(c);
|
|
}
|
|
#ifdef BOOST_REGEX_HAS_OTHER_WCHAR_T
|
|
BOOST_REGEX_DECL unsigned short BOOST_REGEX_CALL do_global_lower(unsigned short c)
|
|
{
|
|
return (std::towlower)(c);
|
|
}
|
|
|
|
BOOST_REGEX_DECL unsigned short BOOST_REGEX_CALL do_global_upper(unsigned short c)
|
|
{
|
|
return (std::towupper)(c);
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
BOOST_REGEX_DECL regex_constants::escape_syntax_type BOOST_REGEX_CALL get_default_escape_syntax_type(char c)
|
|
{
|
|
//
|
|
// char_syntax determines how the compiler treats a given character
|
|
// in a regular expression.
|
|
//
|
|
static regex_constants::escape_syntax_type char_syntax[] = {
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /* */ // 32
|
|
regex_constants::escape_type_identity, /*!*/
|
|
regex_constants::escape_type_identity, /*"*/
|
|
regex_constants::escape_type_identity, /*#*/
|
|
regex_constants::escape_type_identity, /*$*/
|
|
regex_constants::escape_type_identity, /*%*/
|
|
regex_constants::escape_type_identity, /*&*/
|
|
regex_constants::escape_type_end_buffer, /*'*/
|
|
regex_constants::syntax_open_mark, /*(*/
|
|
regex_constants::syntax_close_mark, /*)*/
|
|
regex_constants::escape_type_identity, /***/
|
|
regex_constants::syntax_plus, /*+*/
|
|
regex_constants::escape_type_identity, /*,*/
|
|
regex_constants::escape_type_identity, /*-*/
|
|
regex_constants::escape_type_identity, /*.*/
|
|
regex_constants::escape_type_identity, /*/*/
|
|
regex_constants::escape_type_decimal, /*0*/
|
|
regex_constants::escape_type_backref, /*1*/
|
|
regex_constants::escape_type_backref, /*2*/
|
|
regex_constants::escape_type_backref, /*3*/
|
|
regex_constants::escape_type_backref, /*4*/
|
|
regex_constants::escape_type_backref, /*5*/
|
|
regex_constants::escape_type_backref, /*6*/
|
|
regex_constants::escape_type_backref, /*7*/
|
|
regex_constants::escape_type_backref, /*8*/
|
|
regex_constants::escape_type_backref, /*9*/
|
|
regex_constants::escape_type_identity, /*:*/
|
|
regex_constants::escape_type_identity, /*;*/
|
|
regex_constants::escape_type_left_word, /*<*/
|
|
regex_constants::escape_type_identity, /*=*/
|
|
regex_constants::escape_type_right_word, /*>*/
|
|
regex_constants::syntax_question, /*?*/
|
|
regex_constants::escape_type_identity, /*@*/
|
|
regex_constants::escape_type_start_buffer, /*A*/
|
|
regex_constants::escape_type_not_word_assert, /*B*/
|
|
regex_constants::escape_type_C, /*C*/
|
|
regex_constants::escape_type_not_class, /*D*/
|
|
regex_constants::escape_type_E, /*E*/
|
|
regex_constants::escape_type_not_class, /*F*/
|
|
regex_constants::escape_type_G, /*G*/
|
|
regex_constants::escape_type_not_class, /*H*/
|
|
regex_constants::escape_type_not_class, /*I*/
|
|
regex_constants::escape_type_not_class, /*J*/
|
|
regex_constants::escape_type_reset_start_mark, /*K*/
|
|
regex_constants::escape_type_not_class, /*L*/
|
|
regex_constants::escape_type_not_class, /*M*/
|
|
regex_constants::escape_type_named_char, /*N*/
|
|
regex_constants::escape_type_not_class, /*O*/
|
|
regex_constants::escape_type_not_property, /*P*/
|
|
regex_constants::escape_type_Q, /*Q*/
|
|
regex_constants::escape_type_line_ending, /*R*/
|
|
regex_constants::escape_type_not_class, /*S*/
|
|
regex_constants::escape_type_not_class, /*T*/
|
|
regex_constants::escape_type_not_class, /*U*/
|
|
regex_constants::escape_type_not_class, /*V*/
|
|
regex_constants::escape_type_not_class, /*W*/
|
|
regex_constants::escape_type_X, /*X*/
|
|
regex_constants::escape_type_not_class, /*Y*/
|
|
regex_constants::escape_type_Z, /*Z*/
|
|
regex_constants::escape_type_identity, /*[*/
|
|
regex_constants::escape_type_identity, /*\*/
|
|
regex_constants::escape_type_identity, /*]*/
|
|
regex_constants::escape_type_identity, /*^*/
|
|
regex_constants::escape_type_identity, /*_*/
|
|
regex_constants::escape_type_start_buffer, /*`*/
|
|
regex_constants::escape_type_control_a, /*a*/
|
|
regex_constants::escape_type_word_assert, /*b*/
|
|
regex_constants::escape_type_ascii_control, /*c*/
|
|
regex_constants::escape_type_class, /*d*/
|
|
regex_constants::escape_type_e, /*e*/
|
|
regex_constants::escape_type_control_f, /*f*/
|
|
regex_constants::escape_type_extended_backref, /*g*/
|
|
regex_constants::escape_type_class, /*h*/
|
|
regex_constants::escape_type_class, /*i*/
|
|
regex_constants::escape_type_class, /*j*/
|
|
regex_constants::escape_type_extended_backref, /*k*/
|
|
regex_constants::escape_type_class, /*l*/
|
|
regex_constants::escape_type_class, /*m*/
|
|
regex_constants::escape_type_control_n, /*n*/
|
|
regex_constants::escape_type_class, /*o*/
|
|
regex_constants::escape_type_property, /*p*/
|
|
regex_constants::escape_type_class, /*q*/
|
|
regex_constants::escape_type_control_r, /*r*/
|
|
regex_constants::escape_type_class, /*s*/
|
|
regex_constants::escape_type_control_t, /*t*/
|
|
regex_constants::escape_type_class, /*u*/
|
|
regex_constants::escape_type_control_v, /*v*/
|
|
regex_constants::escape_type_class, /*w*/
|
|
regex_constants::escape_type_hex, /*x*/
|
|
regex_constants::escape_type_class, /*y*/
|
|
regex_constants::escape_type_end_buffer, /*z*/
|
|
regex_constants::syntax_open_brace, /*{*/
|
|
regex_constants::syntax_or, /*|*/
|
|
regex_constants::syntax_close_brace, /*}*/
|
|
regex_constants::escape_type_identity, /*~*/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
regex_constants::escape_type_identity, /**/
|
|
};
|
|
|
|
return char_syntax[(unsigned char)c];
|
|
}
|
|
|
|
BOOST_REGEX_DECL regex_constants::syntax_type BOOST_REGEX_CALL get_default_syntax_type(char c)
|
|
{
|
|
//
|
|
// char_syntax determines how the compiler treats a given character
|
|
// in a regular expression.
|
|
//
|
|
static regex_constants::syntax_type char_syntax[] = {
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_newline, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /* */ // 32
|
|
regex_constants::syntax_not, /*!*/
|
|
regex_constants::syntax_char, /*"*/
|
|
regex_constants::syntax_hash, /*#*/
|
|
regex_constants::syntax_dollar, /*$*/
|
|
regex_constants::syntax_char, /*%*/
|
|
regex_constants::syntax_char, /*&*/
|
|
regex_constants::escape_type_end_buffer, /*'*/
|
|
regex_constants::syntax_open_mark, /*(*/
|
|
regex_constants::syntax_close_mark, /*)*/
|
|
regex_constants::syntax_star, /***/
|
|
regex_constants::syntax_plus, /*+*/
|
|
regex_constants::syntax_comma, /*,*/
|
|
regex_constants::syntax_dash, /*-*/
|
|
regex_constants::syntax_dot, /*.*/
|
|
regex_constants::syntax_char, /*/*/
|
|
regex_constants::syntax_digit, /*0*/
|
|
regex_constants::syntax_digit, /*1*/
|
|
regex_constants::syntax_digit, /*2*/
|
|
regex_constants::syntax_digit, /*3*/
|
|
regex_constants::syntax_digit, /*4*/
|
|
regex_constants::syntax_digit, /*5*/
|
|
regex_constants::syntax_digit, /*6*/
|
|
regex_constants::syntax_digit, /*7*/
|
|
regex_constants::syntax_digit, /*8*/
|
|
regex_constants::syntax_digit, /*9*/
|
|
regex_constants::syntax_colon, /*:*/
|
|
regex_constants::syntax_char, /*;*/
|
|
regex_constants::escape_type_left_word, /*<*/
|
|
regex_constants::syntax_equal, /*=*/
|
|
regex_constants::escape_type_right_word, /*>*/
|
|
regex_constants::syntax_question, /*?*/
|
|
regex_constants::syntax_char, /*@*/
|
|
regex_constants::syntax_char, /*A*/
|
|
regex_constants::syntax_char, /*B*/
|
|
regex_constants::syntax_char, /*C*/
|
|
regex_constants::syntax_char, /*D*/
|
|
regex_constants::syntax_char, /*E*/
|
|
regex_constants::syntax_char, /*F*/
|
|
regex_constants::syntax_char, /*G*/
|
|
regex_constants::syntax_char, /*H*/
|
|
regex_constants::syntax_char, /*I*/
|
|
regex_constants::syntax_char, /*J*/
|
|
regex_constants::syntax_char, /*K*/
|
|
regex_constants::syntax_char, /*L*/
|
|
regex_constants::syntax_char, /*M*/
|
|
regex_constants::syntax_char, /*N*/
|
|
regex_constants::syntax_char, /*O*/
|
|
regex_constants::syntax_char, /*P*/
|
|
regex_constants::syntax_char, /*Q*/
|
|
regex_constants::syntax_char, /*R*/
|
|
regex_constants::syntax_char, /*S*/
|
|
regex_constants::syntax_char, /*T*/
|
|
regex_constants::syntax_char, /*U*/
|
|
regex_constants::syntax_char, /*V*/
|
|
regex_constants::syntax_char, /*W*/
|
|
regex_constants::syntax_char, /*X*/
|
|
regex_constants::syntax_char, /*Y*/
|
|
regex_constants::syntax_char, /*Z*/
|
|
regex_constants::syntax_open_set, /*[*/
|
|
regex_constants::syntax_escape, /*\*/
|
|
regex_constants::syntax_close_set, /*]*/
|
|
regex_constants::syntax_caret, /*^*/
|
|
regex_constants::syntax_char, /*_*/
|
|
regex_constants::syntax_char, /*`*/
|
|
regex_constants::syntax_char, /*a*/
|
|
regex_constants::syntax_char, /*b*/
|
|
regex_constants::syntax_char, /*c*/
|
|
regex_constants::syntax_char, /*d*/
|
|
regex_constants::syntax_char, /*e*/
|
|
regex_constants::syntax_char, /*f*/
|
|
regex_constants::syntax_char, /*g*/
|
|
regex_constants::syntax_char, /*h*/
|
|
regex_constants::syntax_char, /*i*/
|
|
regex_constants::syntax_char, /*j*/
|
|
regex_constants::syntax_char, /*k*/
|
|
regex_constants::syntax_char, /*l*/
|
|
regex_constants::syntax_char, /*m*/
|
|
regex_constants::syntax_char, /*n*/
|
|
regex_constants::syntax_char, /*o*/
|
|
regex_constants::syntax_char, /*p*/
|
|
regex_constants::syntax_char, /*q*/
|
|
regex_constants::syntax_char, /*r*/
|
|
regex_constants::syntax_char, /*s*/
|
|
regex_constants::syntax_char, /*t*/
|
|
regex_constants::syntax_char, /*u*/
|
|
regex_constants::syntax_char, /*v*/
|
|
regex_constants::syntax_char, /*w*/
|
|
regex_constants::syntax_char, /*x*/
|
|
regex_constants::syntax_char, /*y*/
|
|
regex_constants::syntax_char, /*z*/
|
|
regex_constants::syntax_open_brace, /*{*/
|
|
regex_constants::syntax_or, /*|*/
|
|
regex_constants::syntax_close_brace, /*}*/
|
|
regex_constants::syntax_char, /*~*/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
regex_constants::syntax_char, /**/
|
|
};
|
|
|
|
return char_syntax[(unsigned char)c];
|
|
}
|
|
|
|
|
|
} // BOOST_REGEX_DETAIL_NS
|
|
} // boost
|