passenger 4.0.27 → 4.0.28
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of passenger might be problematic. Click here for more details.
- data.tar.gz.asc +7 -7
- data/.gitignore +1 -0
- data/NEWS +22 -0
- data/build/preprocessor.rb +10 -0
- data/build/rpm.rb +74 -65
- data/debian.template/rules.template +8 -0
- data/dev/copy_boost_headers.rb +11 -2
- data/doc/Users guide Apache.idmap.txt +161 -145
- data/doc/Users guide Apache.txt +12 -1
- data/doc/Users guide Nginx.idmap.txt +142 -126
- data/doc/Users guide Nginx.txt +14 -1
- data/doc/Users guide Standalone.txt +1 -0
- data/doc/users_guide_snippets/environment_variables.txt +1 -1
- data/doc/users_guide_snippets/installation.txt +2 -0
- data/doc/users_guide_snippets/tips.txt +118 -0
- data/ext/apache2/Configuration.cpp +0 -6
- data/ext/apache2/Configuration.hpp +0 -5
- data/ext/apache2/ConfigurationCommands.cpp +7 -0
- data/ext/apache2/ConfigurationFields.hpp +2 -0
- data/ext/apache2/ConfigurationSetters.cpp +24 -0
- data/ext/apache2/CreateDirConfig.cpp +1 -0
- data/ext/apache2/Hooks.cpp +0 -1
- data/ext/apache2/MergeDirConfig.cpp +7 -0
- data/ext/apache2/SetHeaders.cpp +5 -1
- data/ext/boost/cregex.hpp +39 -0
- data/ext/boost/libs/regex/src/c_regex_traits.cpp +193 -0
- data/ext/boost/libs/regex/src/cpp_regex_traits.cpp +117 -0
- data/ext/boost/libs/regex/src/cregex.cpp +660 -0
- data/ext/boost/libs/regex/src/instances.cpp +32 -0
- data/ext/boost/libs/regex/src/internals.hpp +35 -0
- data/ext/boost/libs/regex/src/posix_api.cpp +296 -0
- data/ext/boost/libs/regex/src/regex.cpp +227 -0
- data/ext/boost/libs/regex/src/regex_debug.cpp +59 -0
- data/ext/boost/libs/regex/src/regex_raw_buffer.cpp +72 -0
- data/ext/boost/libs/regex/src/regex_traits_defaults.cpp +692 -0
- data/ext/boost/libs/regex/src/static_mutex.cpp +179 -0
- data/ext/boost/libs/regex/src/wc_regex_traits.cpp +301 -0
- data/ext/boost/libs/regex/src/wide_posix_api.cpp +315 -0
- data/ext/boost/libs/regex/src/winstances.cpp +35 -0
- data/ext/boost/regex.h +100 -0
- data/ext/boost/regex.hpp +37 -0
- data/ext/boost/regex/concepts.hpp +1128 -0
- data/ext/boost/regex/config.hpp +435 -0
- data/ext/boost/regex/config/borland.hpp +72 -0
- data/ext/boost/regex/config/cwchar.hpp +207 -0
- data/ext/boost/regex/mfc.hpp +190 -0
- data/ext/boost/regex/pattern_except.hpp +100 -0
- data/ext/boost/regex/pending/object_cache.hpp +165 -0
- data/ext/boost/regex/pending/static_mutex.hpp +179 -0
- data/ext/boost/regex/pending/unicode_iterator.hpp +776 -0
- data/ext/boost/regex/regex_traits.hpp +35 -0
- data/ext/boost/regex/user.hpp +93 -0
- data/ext/boost/regex/v4/basic_regex.hpp +782 -0
- data/ext/boost/regex/v4/basic_regex_creator.hpp +1571 -0
- data/ext/boost/regex/v4/basic_regex_parser.hpp +2874 -0
- data/ext/boost/regex/v4/c_regex_traits.hpp +211 -0
- data/ext/boost/regex/v4/char_regex_traits.hpp +81 -0
- data/ext/boost/regex/v4/cpp_regex_traits.hpp +1099 -0
- data/ext/boost/regex/v4/cregex.hpp +330 -0
- data/ext/boost/regex/v4/error_type.hpp +59 -0
- data/ext/boost/regex/v4/fileiter.hpp +455 -0
- data/ext/boost/regex/v4/instances.hpp +222 -0
- data/ext/boost/regex/v4/iterator_category.hpp +91 -0
- data/ext/boost/regex/v4/iterator_traits.hpp +135 -0
- data/ext/boost/regex/v4/match_flags.hpp +138 -0
- data/ext/boost/regex/v4/match_results.hpp +702 -0
- data/ext/boost/regex/v4/mem_block_cache.hpp +99 -0
- data/ext/boost/regex/v4/perl_matcher.hpp +587 -0
- data/ext/boost/regex/v4/perl_matcher_common.hpp +996 -0
- data/ext/boost/regex/v4/perl_matcher_non_recursive.hpp +1642 -0
- data/ext/boost/regex/v4/perl_matcher_recursive.hpp +991 -0
- data/ext/boost/regex/v4/primary_transform.hpp +146 -0
- data/ext/boost/regex/v4/protected_call.hpp +81 -0
- data/ext/boost/regex/v4/regbase.hpp +180 -0
- data/ext/boost/regex/v4/regex.hpp +202 -0
- data/ext/boost/regex/v4/regex_format.hpp +1156 -0
- data/ext/boost/regex/v4/regex_fwd.hpp +73 -0
- data/ext/boost/regex/v4/regex_grep.hpp +155 -0
- data/ext/boost/regex/v4/regex_iterator.hpp +201 -0
- data/ext/boost/regex/v4/regex_match.hpp +382 -0
- data/ext/boost/regex/v4/regex_merge.hpp +93 -0
- data/ext/boost/regex/v4/regex_raw_buffer.hpp +210 -0
- data/ext/boost/regex/v4/regex_replace.hpp +99 -0
- data/ext/boost/regex/v4/regex_search.hpp +217 -0
- data/ext/boost/regex/v4/regex_split.hpp +172 -0
- data/ext/boost/regex/v4/regex_token_iterator.hpp +342 -0
- data/ext/boost/regex/v4/regex_traits.hpp +189 -0
- data/ext/boost/regex/v4/regex_traits_defaults.hpp +371 -0
- data/ext/boost/regex/v4/regex_workaround.hpp +232 -0
- data/ext/boost/regex/v4/states.hpp +301 -0
- data/ext/boost/regex/v4/sub_match.hpp +512 -0
- data/ext/boost/regex/v4/syntax_type.hpp +105 -0
- data/ext/boost/regex/v4/u32regex_iterator.hpp +193 -0
- data/ext/boost/regex/v4/u32regex_token_iterator.hpp +377 -0
- data/ext/boost/regex/v4/w32_regex_traits.hpp +741 -0
- data/ext/boost/regex_fwd.hpp +33 -0
- data/ext/common/AgentsStarter.h +0 -11
- data/ext/common/ApplicationPool2/Common.h +1 -7
- data/ext/common/ApplicationPool2/DirectSpawner.h +3 -3
- data/ext/common/ApplicationPool2/Group.h +166 -69
- data/ext/common/ApplicationPool2/Implementation.cpp +55 -10
- data/ext/common/ApplicationPool2/Options.h +45 -10
- data/ext/common/ApplicationPool2/PipeWatcher.h +1 -2
- data/ext/common/ApplicationPool2/Pool.h +29 -7
- data/ext/common/ApplicationPool2/Process.h +22 -3
- data/ext/common/ApplicationPool2/Session.h +1 -0
- data/ext/common/ApplicationPool2/SmartSpawner.h +5 -10
- data/ext/common/ApplicationPool2/Spawner.h +10 -15
- data/ext/common/ApplicationPool2/SuperGroup.h +10 -9
- data/ext/common/Constants.h +1 -3
- data/ext/common/Hooks.h +193 -0
- data/ext/common/Logging.cpp +67 -2
- data/ext/common/Logging.h +23 -1
- data/ext/common/Utils.cpp +0 -21
- data/ext/common/Utils.h +0 -42
- data/ext/common/Utils/CachedFileStat.hpp +1 -1
- data/ext/common/Utils/StrIntUtils.h +61 -14
- data/ext/common/Utils/StringMap.h +4 -0
- data/ext/common/agents/HelperAgent/AgentOptions.h +4 -4
- data/ext/common/agents/HelperAgent/Main.cpp +2 -3
- data/ext/common/agents/HelperAgent/RequestHandler.h +65 -2
- data/ext/common/agents/LoggingAgent/FilterSupport.h +3 -1
- data/ext/common/agents/Watchdog/Main.cpp +8 -72
- data/ext/nginx/CacheLocationConfig.c +29 -1
- data/ext/nginx/Configuration.c +0 -12
- data/ext/nginx/Configuration.h +0 -1
- data/ext/nginx/ConfigurationCommands.c +10 -0
- data/ext/nginx/ConfigurationFields.h +2 -0
- data/ext/nginx/CreateLocationConfig.c +4 -0
- data/ext/nginx/MergeLocationConfig.c +6 -0
- data/ext/oxt/system_calls.cpp +7 -1
- data/ext/oxt/system_calls.hpp +7 -7
- data/helper-scripts/node-loader.js +6 -2
- data/helper-scripts/rack-loader.rb +5 -2
- data/helper-scripts/rack-preloader.rb +5 -2
- data/lib/phusion_passenger.rb +1 -1
- data/lib/phusion_passenger/apache2/config_options.rb +8 -0
- data/lib/phusion_passenger/constants.rb +0 -1
- data/lib/phusion_passenger/nginx/config_options.rb +9 -2
- data/lib/phusion_passenger/platform_info/apache.rb +2 -1
- data/lib/phusion_passenger/platform_info/compiler.rb +15 -1
- data/lib/phusion_passenger/platform_info/cxx_portability.rb +2 -0
- data/node_lib/phusion_passenger/httplib_emulation.js +85 -17
- data/node_lib/phusion_passenger/request_handler.js +10 -2
- data/rpm/Vagrantfile +32 -0
- data/rpm/get_distro_id.py +4 -0
- data/test/cxx/ApplicationPool2/DirectSpawnerTest.cpp +2 -2
- data/test/cxx/ApplicationPool2/PoolTest.cpp +60 -9
- data/test/cxx/ApplicationPool2/SmartSpawnerTest.cpp +2 -6
- data/test/cxx/CachedFileStatTest.cpp +5 -5
- data/test/cxx/RequestHandlerTest.cpp +3 -6
- data/test/cxx/UtilsTest.cpp +30 -0
- data/test/node/httplib_emulation_spec.js +491 -0
- data/test/node/spec_helper.js +25 -0
- metadata +78 -2
- metadata.gz.asc +7 -7
@@ -0,0 +1,59 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright (c) 1998-2004
|
4
|
+
* John Maddock
|
5
|
+
*
|
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)
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
/*
|
13
|
+
* LOCATION: see http://www.boost.org for most recent version.
|
14
|
+
* FILE: regex_debug.cpp
|
15
|
+
* VERSION: see <boost/version.hpp>
|
16
|
+
* DESCRIPTION: Misc. debugging helpers.
|
17
|
+
*/
|
18
|
+
|
19
|
+
|
20
|
+
#define BOOST_REGEX_SOURCE
|
21
|
+
|
22
|
+
#include <boost/regex/config.hpp>
|
23
|
+
|
24
|
+
|
25
|
+
//
|
26
|
+
// regex configuration information: this prints out the settings used
|
27
|
+
// when the library was built - include in debugging builds only:
|
28
|
+
//
|
29
|
+
#ifdef BOOST_REGEX_CONFIG_INFO
|
30
|
+
|
31
|
+
#define print_macro regex_lib_print_macro
|
32
|
+
#define print_expression regex_lib_print_expression
|
33
|
+
#define print_byte_order regex_lib_print_byte_order
|
34
|
+
#define print_sign regex_lib_print_sign
|
35
|
+
#define print_compiler_macros regex_lib_print_compiler_macros
|
36
|
+
#define print_stdlib_macros regex_lib_print_stdlib_macros
|
37
|
+
#define print_platform_macros regex_lib_print_platform_macros
|
38
|
+
#define print_boost_macros regex_lib_print_boost_macros
|
39
|
+
#define print_separator regex_lib_print_separator
|
40
|
+
#define OLD_MAIN regex_lib_main
|
41
|
+
#define NEW_MAIN regex_lib_main2
|
42
|
+
#define NO_RECURSE
|
43
|
+
|
44
|
+
#include <libs/regex/test/config_info/regex_config_info.cpp>
|
45
|
+
|
46
|
+
BOOST_REGEX_DECL void BOOST_REGEX_CALL print_regex_library_info()
|
47
|
+
{
|
48
|
+
std::cout << "\n\n";
|
49
|
+
print_separator();
|
50
|
+
std::cout << "Regex library build configuration:\n\n";
|
51
|
+
regex_lib_main2();
|
52
|
+
}
|
53
|
+
|
54
|
+
#endif
|
55
|
+
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
|
@@ -0,0 +1,72 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright (c) 2004
|
4
|
+
* John Maddock
|
5
|
+
*
|
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)
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
/*
|
13
|
+
* LOCATION: see http://www.boost.org for most recent version.
|
14
|
+
* FILE regex_raw_buffer.cpp
|
15
|
+
* VERSION see <boost/version.hpp>
|
16
|
+
* DESCRIPTION: Member functions for class raw_storage.
|
17
|
+
*/
|
18
|
+
|
19
|
+
|
20
|
+
#define BOOST_REGEX_SOURCE
|
21
|
+
#include <boost/config.hpp>
|
22
|
+
#include <memory>
|
23
|
+
#include <cstring>
|
24
|
+
#include <boost/assert.hpp>
|
25
|
+
#include <boost/regex/v4/regex_raw_buffer.hpp>
|
26
|
+
|
27
|
+
#if defined(BOOST_NO_STDC_NAMESPACE)
|
28
|
+
namespace std{
|
29
|
+
using ::memcpy;
|
30
|
+
using ::memmove;
|
31
|
+
}
|
32
|
+
#endif
|
33
|
+
|
34
|
+
|
35
|
+
namespace boost{ namespace re_detail{
|
36
|
+
|
37
|
+
void BOOST_REGEX_CALL raw_storage::resize(size_type n)
|
38
|
+
{
|
39
|
+
register size_type newsize = start ? last - start : 1024;
|
40
|
+
while(newsize < n)
|
41
|
+
newsize *= 2;
|
42
|
+
register size_type datasize = end - start;
|
43
|
+
// extend newsize to WORD/DWORD boundary:
|
44
|
+
newsize = (newsize + padding_mask) & ~(padding_mask);
|
45
|
+
|
46
|
+
// allocate and copy data:
|
47
|
+
register pointer ptr = static_cast<pointer>(::operator new(newsize));
|
48
|
+
BOOST_REGEX_NOEH_ASSERT(ptr)
|
49
|
+
if(start)
|
50
|
+
std::memcpy(ptr, start, datasize);
|
51
|
+
|
52
|
+
// get rid of old buffer:
|
53
|
+
::operator delete(start);
|
54
|
+
|
55
|
+
// and set up pointers:
|
56
|
+
start = ptr;
|
57
|
+
end = ptr + datasize;
|
58
|
+
last = ptr + newsize;
|
59
|
+
}
|
60
|
+
|
61
|
+
void* BOOST_REGEX_CALL raw_storage::insert(size_type pos, size_type n)
|
62
|
+
{
|
63
|
+
BOOST_ASSERT(pos <= size_type(end - start));
|
64
|
+
if(size_type(last - end) < n)
|
65
|
+
resize(n + (end - start));
|
66
|
+
register void* result = start + pos;
|
67
|
+
std::memmove(start + pos + n, start + pos, (end - start) - pos);
|
68
|
+
end += n;
|
69
|
+
return result;
|
70
|
+
}
|
71
|
+
|
72
|
+
}} // namespaces
|
@@ -0,0 +1,692 @@
|
|
1
|
+
/*
|
2
|
+
*
|
3
|
+
* Copyright (c) 2004
|
4
|
+
* John Maddock
|
5
|
+
*
|
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)
|
9
|
+
*
|
10
|
+
*/
|
11
|
+
|
12
|
+
/*
|
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.
|
17
|
+
*/
|
18
|
+
|
19
|
+
#define BOOST_REGEX_SOURCE
|
20
|
+
#include <boost/regex/regex_traits.hpp>
|
21
|
+
|
22
|
+
#include <cctype>
|
23
|
+
#ifndef BOOST_NO_WREGEX
|
24
|
+
#include <cwctype>
|
25
|
+
#endif
|
26
|
+
|
27
|
+
#if defined(BOOST_NO_STDC_NAMESPACE)
|
28
|
+
namespace std{
|
29
|
+
using ::tolower;
|
30
|
+
using ::toupper;
|
31
|
+
#ifndef BOOST_NO_WREGEX
|
32
|
+
using ::towlower;
|
33
|
+
using ::towupper;
|
34
|
+
#endif
|
35
|
+
}
|
36
|
+
#endif
|
37
|
+
|
38
|
+
|
39
|
+
namespace boost{ namespace re_detail{
|
40
|
+
|
41
|
+
BOOST_REGEX_DECL const char* BOOST_REGEX_CALL get_default_syntax(regex_constants::syntax_type n)
|
42
|
+
{
|
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[] = {
|
46
|
+
"",
|
47
|
+
"(",
|
48
|
+
")",
|
49
|
+
"$",
|
50
|
+
"^",
|
51
|
+
".",
|
52
|
+
"*",
|
53
|
+
"+",
|
54
|
+
"?",
|
55
|
+
"[",
|
56
|
+
"]",
|
57
|
+
"|",
|
58
|
+
"\\",
|
59
|
+
"#",
|
60
|
+
"-",
|
61
|
+
"{",
|
62
|
+
"}",
|
63
|
+
"0123456789",
|
64
|
+
"b",
|
65
|
+
"B",
|
66
|
+
"<",
|
67
|
+
">",
|
68
|
+
"",
|
69
|
+
"",
|
70
|
+
"A`",
|
71
|
+
"z'",
|
72
|
+
"\n",
|
73
|
+
",",
|
74
|
+
"a",
|
75
|
+
"f",
|
76
|
+
"n",
|
77
|
+
"r",
|
78
|
+
"t",
|
79
|
+
"v",
|
80
|
+
"x",
|
81
|
+
"c",
|
82
|
+
":",
|
83
|
+
"=",
|
84
|
+
"e",
|
85
|
+
"",
|
86
|
+
"",
|
87
|
+
"",
|
88
|
+
"",
|
89
|
+
"",
|
90
|
+
"",
|
91
|
+
"",
|
92
|
+
"",
|
93
|
+
"E",
|
94
|
+
"Q",
|
95
|
+
"X",
|
96
|
+
"C",
|
97
|
+
"Z",
|
98
|
+
"G",
|
99
|
+
"!",
|
100
|
+
"p",
|
101
|
+
"P",
|
102
|
+
"N",
|
103
|
+
"gk",
|
104
|
+
"K",
|
105
|
+
"R",
|
106
|
+
};
|
107
|
+
|
108
|
+
return ((n >= (sizeof(messages) / sizeof(messages[1]))) ? "" : messages[n]);
|
109
|
+
}
|
110
|
+
|
111
|
+
BOOST_REGEX_DECL const char* BOOST_REGEX_CALL get_default_error_string(regex_constants::error_type n)
|
112
|
+
{
|
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 */
|
139
|
+
};
|
140
|
+
|
141
|
+
return (n > ::boost::regex_constants::error_unknown) ? s_default_error_messages[ ::boost::regex_constants::error_unknown] : s_default_error_messages[n];
|
142
|
+
}
|
143
|
+
|
144
|
+
BOOST_REGEX_DECL bool BOOST_REGEX_CALL is_combining_implementation(boost::uint_least16_t c)
|
145
|
+
{
|
146
|
+
const boost::uint_least16_t combining_ranges[] = { 0x0300, 0x0361,
|
147
|
+
0x0483, 0x0486,
|
148
|
+
0x0903, 0x0903,
|
149
|
+
0x093E, 0x0940,
|
150
|
+
0x0949, 0x094C,
|
151
|
+
0x0982, 0x0983,
|
152
|
+
0x09BE, 0x09C0,
|
153
|
+
0x09C7, 0x09CC,
|
154
|
+
0x09D7, 0x09D7,
|
155
|
+
0x0A3E, 0x0A40,
|
156
|
+
0x0A83, 0x0A83,
|
157
|
+
0x0ABE, 0x0AC0,
|
158
|
+
0x0AC9, 0x0ACC,
|
159
|
+
0x0B02, 0x0B03,
|
160
|
+
0x0B3E, 0x0B3E,
|
161
|
+
0x0B40, 0x0B40,
|
162
|
+
0x0B47, 0x0B4C,
|
163
|
+
0x0B57, 0x0B57,
|
164
|
+
0x0B83, 0x0B83,
|
165
|
+
0x0BBE, 0x0BBF,
|
166
|
+
0x0BC1, 0x0BCC,
|
167
|
+
0x0BD7, 0x0BD7,
|
168
|
+
0x0C01, 0x0C03,
|
169
|
+
0x0C41, 0x0C44,
|
170
|
+
0x0C82, 0x0C83,
|
171
|
+
0x0CBE, 0x0CBE,
|
172
|
+
0x0CC0, 0x0CC4,
|
173
|
+
0x0CC7, 0x0CCB,
|
174
|
+
0x0CD5, 0x0CD6,
|
175
|
+
0x0D02, 0x0D03,
|
176
|
+
0x0D3E, 0x0D40,
|
177
|
+
0x0D46, 0x0D4C,
|
178
|
+
0x0D57, 0x0D57,
|
179
|
+
0x0F7F, 0x0F7F,
|
180
|
+
0x20D0, 0x20E1,
|
181
|
+
0x3099, 0x309A,
|
182
|
+
0xFE20, 0xFE23,
|
183
|
+
0xffff, 0xffff, };
|
184
|
+
|
185
|
+
const boost::uint_least16_t* p = combining_ranges + 1;
|
186
|
+
while(*p < c) p += 2;
|
187
|
+
--p;
|
188
|
+
if((c >= *p) && (c <= *(p+1)))
|
189
|
+
return true;
|
190
|
+
return false;
|
191
|
+
}
|
192
|
+
|
193
|
+
//
|
194
|
+
// these are the POSIX collating names:
|
195
|
+
//
|
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", "",
|
209
|
+
};
|
210
|
+
|
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
|
215
|
+
// now:
|
216
|
+
|
217
|
+
BOOST_REGEX_DECL const char* def_multi_coll[] = {
|
218
|
+
"ae",
|
219
|
+
"Ae",
|
220
|
+
"AE",
|
221
|
+
"ch",
|
222
|
+
"Ch",
|
223
|
+
"CH",
|
224
|
+
"ll",
|
225
|
+
"Ll",
|
226
|
+
"LL",
|
227
|
+
"ss",
|
228
|
+
"Ss",
|
229
|
+
"SS",
|
230
|
+
"nj",
|
231
|
+
"Nj",
|
232
|
+
"NJ",
|
233
|
+
"dz",
|
234
|
+
"Dz",
|
235
|
+
"DZ",
|
236
|
+
"lj",
|
237
|
+
"Lj",
|
238
|
+
"LJ",
|
239
|
+
"",
|
240
|
+
};
|
241
|
+
|
242
|
+
|
243
|
+
|
244
|
+
BOOST_REGEX_DECL std::string BOOST_REGEX_CALL lookup_default_collate_name(const std::string& name)
|
245
|
+
{
|
246
|
+
unsigned int i = 0;
|
247
|
+
while(*def_coll_names[i])
|
248
|
+
{
|
249
|
+
if(def_coll_names[i] == name)
|
250
|
+
{
|
251
|
+
return std::string(1, char(i));
|
252
|
+
}
|
253
|
+
++i;
|
254
|
+
}
|
255
|
+
i = 0;
|
256
|
+
while(*def_multi_coll[i])
|
257
|
+
{
|
258
|
+
if(def_multi_coll[i] == name)
|
259
|
+
{
|
260
|
+
return def_multi_coll[i];
|
261
|
+
}
|
262
|
+
++i;
|
263
|
+
}
|
264
|
+
return std::string();
|
265
|
+
}
|
266
|
+
|
267
|
+
BOOST_REGEX_DECL char BOOST_REGEX_CALL do_global_lower(char c)
|
268
|
+
{
|
269
|
+
return static_cast<char>((std::tolower)((unsigned char)c));
|
270
|
+
}
|
271
|
+
|
272
|
+
BOOST_REGEX_DECL char BOOST_REGEX_CALL do_global_upper(char c)
|
273
|
+
{
|
274
|
+
return static_cast<char>((std::toupper)((unsigned char)c));
|
275
|
+
}
|
276
|
+
#ifndef BOOST_NO_WREGEX
|
277
|
+
BOOST_REGEX_DECL wchar_t BOOST_REGEX_CALL do_global_lower(wchar_t c)
|
278
|
+
{
|
279
|
+
return (std::towlower)(c);
|
280
|
+
}
|
281
|
+
|
282
|
+
BOOST_REGEX_DECL wchar_t BOOST_REGEX_CALL do_global_upper(wchar_t c)
|
283
|
+
{
|
284
|
+
return (std::towupper)(c);
|
285
|
+
}
|
286
|
+
#ifdef BOOST_REGEX_HAS_OTHER_WCHAR_T
|
287
|
+
BOOST_REGEX_DECL unsigned short BOOST_REGEX_CALL do_global_lower(unsigned short c)
|
288
|
+
{
|
289
|
+
return (std::towlower)(c);
|
290
|
+
}
|
291
|
+
|
292
|
+
BOOST_REGEX_DECL unsigned short BOOST_REGEX_CALL do_global_upper(unsigned short c)
|
293
|
+
{
|
294
|
+
return (std::towupper)(c);
|
295
|
+
}
|
296
|
+
#endif
|
297
|
+
|
298
|
+
#endif
|
299
|
+
|
300
|
+
BOOST_REGEX_DECL regex_constants::escape_syntax_type BOOST_REGEX_CALL get_default_escape_syntax_type(char c)
|
301
|
+
{
|
302
|
+
//
|
303
|
+
// char_syntax determines how the compiler treats a given character
|
304
|
+
// in a regular expression.
|
305
|
+
//
|
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, /**/
|
490
|
+
};
|
491
|
+
|
492
|
+
return char_syntax[(unsigned char)c];
|
493
|
+
}
|
494
|
+
|
495
|
+
BOOST_REGEX_DECL regex_constants::syntax_type BOOST_REGEX_CALL get_default_syntax_type(char c)
|
496
|
+
{
|
497
|
+
//
|
498
|
+
// char_syntax determines how the compiler treats a given character
|
499
|
+
// in a regular expression.
|
500
|
+
//
|
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, /**/
|
685
|
+
};
|
686
|
+
|
687
|
+
return char_syntax[(unsigned char)c];
|
688
|
+
}
|
689
|
+
|
690
|
+
|
691
|
+
} // re_detail
|
692
|
+
} // boost
|