Compare commits

...

172 Commits

Author SHA1 Message Date
755ea5b2ad This commit was manufactured by cvs2svn to create branch
'thread_rewrite'.

[SVN r30953]
2005-09-13 14:20:32 +00:00
90f4367b8d Ported ICU integration code to VC6/7.
Added some needed std lib #includes.
Reworked gcc separate file template instantiation code.


[SVN r30791]
2005-09-03 11:13:28 +00:00
db5748ae7e Added config and header include changes needed to support MSVC + STLport 5.0.
[SVN r30701]
2005-08-27 10:25:15 +00:00
46b7d89fff Gcc warning suppression.
[SVN r30673]
2005-08-25 17:26:08 +00:00
7ee1a58a84 Large patch from Ulrich Eckhardt to fix support for EVC++ 4.
[SVN r30670]
2005-08-25 16:27:28 +00:00
bfa2168237 gcc+stlport fix.
[SVN r30668]
2005-08-25 12:57:20 +00:00
2f3b212a22 Disabled support for external templates with Intel 8.0 and earlier (it leads to unresolved externals).
[SVN r30643]
2005-08-24 09:59:14 +00:00
d3a9bbfabd Made regex_error backwards compatible with Boost-1.32.
[SVN r30623]
2005-08-22 10:56:15 +00:00
233f083720 Updated History.
Added additional tests for regexes that are supposed to be empty.
Added additional test cases for non-greedy repeats.


[SVN r30605]
2005-08-19 16:12:45 +00:00
c39176085b Fixed VC7.1-STLport config setup so it works with /Zc:wchar_t
Re-ordered code in static_mutex.hpp to satisfy SGI IRIX.
Added some additional #includes to satisfy SGI Irix.
Fixed strange bug where some non-greedy repeats could repeat more times than permitted.
Fixed return value from basic_regex<>::empty().
Fixed return value from basic_regex<>::expression() and basic_regex<>::size() when the expression is invalid.


[SVN r30604]
2005-08-19 16:10:11 +00:00
bf96863756 Updated makefiles: some dependencies have been removed, VC71 and VC8 path setup has been fixed.
[SVN r30546]
2005-08-12 16:05:15 +00:00
bb27376db2 Merged from 1.33.0 release
[SVN r30540]
2005-08-12 13:02:37 +00:00
cbc098536e Merged fixes to broken links from release branch.
[SVN r30458]
2005-08-04 16:06:27 +00:00
9ce6ff7205 Updated history.
[SVN r30113]
2005-07-15 16:32:50 +00:00
bb0ae0940e min/max usage.
[SVN r30036]
2005-07-13 09:38:57 +00:00
6581468288 Fixed broken links.
Fixed min/max references.


[SVN r30005]
2005-07-12 12:39:56 +00:00
dd5e27addb Remove dead files.
Strip tabs from files.


[SVN r30003]
2005-07-12 10:08:11 +00:00
1991c202ed Remove dead files.
Strip tabs from files.
Fix MSVC-specific workaround that doesn't work on Win64.


[SVN r30002]
2005-07-12 09:49:21 +00:00
4781768515 Workaround for Tru64/CXX to avoid multiple definitions of static variables.
[SVN r29907]
2005-07-06 13:08:39 +00:00
6025be01c1 Disable three specific unicode tests for Tru64 which are failing badly.
[SVN r29905]
2005-07-06 13:00:01 +00:00
f353225685 Fix gcc warnings, and use the correct facet!
[SVN r29831]
2005-06-28 15:31:33 +00:00
b2e8ee918f Change constant values to avoid clash with gcc-4 on Darwin.
[SVN r29727]
2005-06-22 09:50:29 +00:00
6064aa15cb Made some member public to keep early EDG compilers happy.
[SVN r29704]
2005-06-20 11:48:37 +00:00
bc6504eda9 Fix for compilers not implementing the resolution to DR45.
[SVN r29699]
2005-06-20 09:22:49 +00:00
8a01dedb52 New vc8 makefile needs to use correct lib name mangling.
Update installation docs for makefiles.
Update regression test makefiles.


[SVN r29678]
2005-06-18 16:55:01 +00:00
35bf922e17 Improve ICU configuration.
Update makefiles.
Add VC8 makefile.


[SVN r29658]
2005-06-17 16:37:41 +00:00
ec74461c36 Undo previous Borland fix, it turns out not to be standards conforming!
[SVN r29657]
2005-06-17 16:35:38 +00:00
799901aafc Fixes to suppress VC7.1 warnings: just rename a few variables to work around the issue.
[SVN r29652]
2005-06-17 11:18:05 +00:00
c18e751bfc Fix for compilers that define BOOST_NO_STD_MESSAGES.
[SVN r29651]
2005-06-17 11:16:56 +00:00
a87dad5cc8 Improved ICU handling.
Brought auto-link test Jamfile up to date.


[SVN r29526]
2005-06-11 14:21:21 +00:00
bbd5296b4e Allow for NUL's.
[SVN r29513]
2005-06-10 10:08:40 +00:00
9e9fc27dc6 Apply patches to regex_iteraor/regex_token_iterator to the unicode iterators as well.
[SVN r29512]
2005-06-10 10:07:49 +00:00
a97324c1c4 Some slight cleanup of vc7 vs. vc-7_0, and msvc vs. vc-6_5.
[SVN r29487]
2005-06-09 00:52:17 +00:00
90b647cdd7 Fix gcc-2.95 compatibility, and supress new warnings from gc-4.0 in protected_call.
[SVN r29407]
2005-06-03 16:10:54 +00:00
80eb2c2bee Updated history, and added format_literal documentation.
[SVN r29378]
2005-06-02 15:55:55 +00:00
ab8f05f2a1 Updated list of macros to print.
[SVN r29317]
2005-05-31 09:46:18 +00:00
7a525369cc Removed unsupported file.
Updated macro list in user.hpp.


[SVN r29316]
2005-05-31 09:45:35 +00:00
69723060e5 Updated build information to make it clear that ICU support is optional.
[SVN r29253]
2005-05-28 11:50:09 +00:00
a56990d55a Internalise Boost.Test dependency.
[SVN r29100]
2005-05-20 15:35:44 +00:00
8aad9e15af Removed VC8 workaround: it's been fixed in Beta 2.
[SVN r29068]
2005-05-19 17:03:09 +00:00
c2de12f113 Disable features that HP aCC can't cope with (gets basic regression tests passing with aCC).
[SVN r29032]
2005-05-18 11:44:12 +00:00
3022a819e6 Don't try and parse thousands separators in number strings (VC8 bug).
[SVN r29031]
2005-05-18 11:43:02 +00:00
9b75e91909 Better spell BOOST_MSVC correctly!
[SVN r28985]
2005-05-17 10:31:53 +00:00
df966c1410 Fix for Borland C++.
[SVN r28984]
2005-05-17 10:24:49 +00:00
9ca851d01f Fix function calling conventions (Borland C++ fix).
[SVN r28949]
2005-05-16 09:57:26 +00:00
28285007cc Fixes for compaq C++
[SVN r28931]
2005-05-15 16:14:47 +00:00
0ae6fb5796 Changed checks to avoid "pointless comparison" warnings.
Change preprocessor code to not use WCHAR_MAX on OSL (Tru64) systems (it's definition is not preprocessor friendly on gcc).


[SVN r28892]
2005-05-14 11:49:50 +00:00
a48a6de286 Fix ICU lib name
[SVN r28862]
2005-05-13 12:31:44 +00:00
e9596db92b Fix como build options to disable thread support.
[SVN r28861]
2005-05-13 12:31:07 +00:00
b912fb5b64 Improve partial match docs.
Fix license on new file.


[SVN r28823]
2005-05-11 14:31:10 +00:00
9a3fee10dd Suppress warnings when exceptions are turned off on gcc.
[SVN r28822]
2005-05-11 14:29:53 +00:00
0d5dcf41d9 Add std::locale-support to grep test as it uses codecvt.
[SVN r28723]
2005-05-07 21:33:22 +00:00
c9f906eb14 Don't need the toupper/tolower code any more - problem solved.
[SVN r28542]
2005-04-30 10:13:55 +00:00
7775706a95 Spell "boost_program_options" correctly.
[SVN r28528]
2005-04-29 15:16:14 +00:00
774981bb52 Must check numeric_limits<charT>::is_specialized before using other members!
[SVN r28527]
2005-04-29 15:04:06 +00:00
90560a3278 Added workaround for old EDG based compilers (SGI cxx compiler).
[SVN r28518]
2005-04-28 16:31:39 +00:00
2e0466d662 Updated/corrected references to Perl.
[SVN r28516]
2005-04-28 16:16:10 +00:00
a694bc1ebb Added some extra tests to try and figure out what the problem with Tru64 is.
[SVN r28505]
2005-04-27 15:50:16 +00:00
b04bc5b5b0 Calls to std::tolower/toupper should cast their argument to an unsigned char.
[SVN r28504]
2005-04-27 15:49:30 +00:00
ed93c55832 Added additional tests for newly discovered regex_iterator bug.
[SVN r28385]
2005-04-21 15:54:54 +00:00
d3a8abb5ef Fix to stop \A from matching successive matches.
[SVN r28384]
2005-04-21 15:54:07 +00:00
5473345609 Added workaround for Tru64/CXX-6.5.
[SVN r28323]
2005-04-19 15:05:23 +00:00
112422adc9 Reworked separate file template instantiation code, to use non-template forwarding functions instead - it works on more compilers that way.
[SVN r28295]
2005-04-17 14:44:37 +00:00
1d1fadeb5a Disabled reverse_iterator tests for broken Rogue Wave library versions (workaround for old sunpro compilers).
[SVN r28294]
2005-04-17 14:43:28 +00:00
c81ebebd32 Added needed include (really only applies to gcc-2.95).
[SVN r28293]
2005-04-17 14:41:56 +00:00
3e5efe81d2 Made this header C compatible.
[SVN r28292]
2005-04-17 14:38:24 +00:00
91b21e78ff Added better documentation on POSIX-conformance.
[SVN r28278]
2005-04-16 16:06:45 +00:00
5d1f265345 Moved new #include to central location with the rest of the includes.
[SVN r28273]
2005-04-15 15:39:26 +00:00
506cd316b2 add #include <algorithm> because we use std::swap()
[SVN r28249]
2005-04-14 15:50:22 +00:00
c2c5b3f726 Don't link posix_api_check to program_execution_monitor. It's unused and
causes link errors for shared linking, due to unresolved reference to cpp_main.


[SVN r28209]
2005-04-13 09:38:09 +00:00
21c368964f Removed dead file (it's been moved to boost/regex/pending).
[SVN r27949]
2005-04-04 10:13:30 +00:00
de28eb9b18 1) Disabled recursive implementation for VC8: stack overflows can't be reliably detected unless the whole program is compiled with asynchronous exceptions.
2) Changed std::copy calls on VC8 to avoid "dangerous code" warnings.
3) Moved backreference and octal escape code into line with POSIX-extended requirements.
4) Changed match_results leftmost-longest rules to stop unnecessary std::distance computations (an optimisation for non-random access iterators).
5) Changed C lib calls to use "safe" versions of string API's where available.
6) Added many new POSIX-extended leftmost-longest tests, to verify the above.


[SVN r27880]
2005-03-30 11:38:51 +00:00
ca144bb2b3 Make it sure this compiles when there's no exception handling support.
[SVN r27578]
2005-03-08 17:28:45 +00:00
a2f958b60c Anything that shares VC6's runtime has the same issues with setlocale that VC6 does.
[SVN r27516]
2005-02-28 10:55:15 +00:00
7c5e1f05c4 Added fix for compilers without <locale>.
[SVN r27515]
2005-02-28 10:54:12 +00:00
ef25339d94 Don't test locales with MSVC: setlocale sometimes bombs out.
[SVN r27503]
2005-02-25 11:04:11 +00:00
31370cd498 Updated concepts to match the TR.
[SVN r27472]
2005-02-21 12:27:23 +00:00
ea94315d6b Fix mutex linking problems.
[SVN r27421]
2005-02-19 11:42:04 +00:00
f736d985fb Update docs on empty alternatives.
[SVN r27419]
2005-02-18 17:15:24 +00:00
ecd5dd5ff3 Allow sort keys to contain nothing but a single NUL character (characters may be ignorable).
[SVN r27408]
2005-02-17 12:44:16 +00:00
077f211f2f Compiler specific fixes and workarounds.
[SVN r27273]
2005-02-09 13:16:39 +00:00
2ee7ef601c include needed <iostream>
[SVN r27272]
2005-02-09 13:15:27 +00:00
eff6f06792 Made min/max usage conform to our guidelines.
Changed Boost.test usage to conform to new interface.


[SVN r27271]
2005-02-09 12:33:18 +00:00
1df0b9cacd Added more info about sort keys from traits classes.
[SVN r27246]
2005-02-08 16:54:36 +00:00
c3f16e3834 SunPro test program fix.
[SVN r27147]
2005-02-05 13:12:23 +00:00
012fe3a99d replaced BOOST_TEST
[SVN r27053]
2005-02-03 13:24:55 +00:00
dbb39f3589 Changed assert code to try and clear up a mysterious sunpro problem.
[SVN r26958]
2005-01-31 11:06:54 +00:00
40735d5630 Added another check to try and diagnode sunpro issue.
[SVN r26898]
2005-01-28 13:37:41 +00:00
d28ac18da2 Need some more tests to track down remaining issues.
[SVN r26845]
2005-01-25 17:22:50 +00:00
29df3606a1 Some fixes for MWCW, broken compilers etc.
[SVN r26834]
2005-01-24 11:05:45 +00:00
3bedef8c4e Updated more license terms.
Added new informational program to try and track down issues with std::collate, and std::ctype.


[SVN r26803]
2005-01-22 16:32:01 +00:00
c04cb21103 Added BOOST_REGEX_BUGGY_CTYPE_FACET to list of macros to print.
[SVN r26800]
2005-01-22 13:14:11 +00:00
56fadadba8 More Sunpro std::distance fixes.
Changed Dr John Maddock to John Maddock


[SVN r26793]
2005-01-21 17:28:42 +00:00
d7e194585d More std::distance fixes for Sunpro.
Changed Dr John Maddock to John Maddock.


[SVN r26791]
2005-01-21 17:22:39 +00:00
e874d7710b Rewritten format method, to avoid ambiguous function call.
[SVN r26760]
2005-01-20 11:10:44 +00:00
ca338db5ae Removed erroneous charT references.
[SVN r26759]
2005-01-20 11:10:28 +00:00
018fbfec05 Changed legacy referernces to reg_expression to basic_regex
[SVN r26740]
2005-01-19 13:29:43 +00:00
b7cb69bae3 Removed one dead file.
Changed legacy referernces to reg_expression to basic_regex


[SVN r26739]
2005-01-19 13:28:57 +00:00
8545aeb1f3 Fixed primary equivalence classes, so that delimiter based sort keys with a delim in position 0 still work.
[SVN r26738]
2005-01-19 11:13:53 +00:00
2a248d1f87 Changed assert's to BOOST_ASSERT's.
Made array sizes explicit to fix MWCW problems.


[SVN r26723]
2005-01-18 12:52:40 +00:00
9781fe3150 Removed dead files.
Changed some asserts to BOOST_ASSERT.
Disabled collation in one test (locale dependent behaviour fails on some platforms).


[SVN r26722]
2005-01-18 12:51:26 +00:00
c8c4c1c289 Fix for libstdc++ debug mode assertions: singular iterators can not be copied, so insertion into a container requires extra special care.
[SVN r26718]
2005-01-17 16:56:14 +00:00
5ef242d146 Disable some tests for MWCW
[SVN r26717]
2005-01-17 12:11:47 +00:00
c2db73aec7 Cleaned up non-standard behaviour in traits classes.
Suppressed explicit instantiations for older Intel versions.
Added std::distance workaround for Sunpro.


[SVN r26716]
2005-01-17 12:10:48 +00:00
30acb7d2f8 Rewritten grep example program.
"touched" some of the sources to force regression tests to rebuild.
Split test code up some more to help msvc-stlport.


[SVN r26705]
2005-01-15 12:29:59 +00:00
1e48609cfd Patches for MWCW and gcc-4.0.
[SVN r26704]
2005-01-15 11:23:46 +00:00
34355d3e79 Added fix for msvc+STLport.
[SVN r26696]
2005-01-14 11:19:46 +00:00
434f3589a5 Added MWCW fix.
[SVN r26695]
2005-01-14 11:10:22 +00:00
71a0e020e2 merged changes in regex5 branch
[SVN r26692]
2005-01-13 17:06:21 +00:00
de0ab9092a Fix for .{n,} failing in partial matches.
Fix for [\x0-\xff] failing in wide character expressions.


[SVN r26566]
2004-12-21 17:07:46 +00:00
ab6f20486b Fix problem with match_any and POSIX-style matches (match results structure wasn't getting filled in).
Fixed problem with gcc in -pedantic mode.


[SVN r26348]
2004-11-29 13:50:17 +00:00
916dbeadbf merge RC_1_32_0 fixes
[SVN r26333]
2004-11-28 04:44:21 +00:00
9079cc8201 Updated installation notes.
[SVN r26323]
2004-11-27 11:20:37 +00:00
e2c97fbb13 Enable auto-linking for compilers other than MSVC.
[SVN r26147]
2004-11-08 12:24:18 +00:00
bc140f1948 Added fix to ensure that expressions prefixed with \` do not scan through the text unnecessarily.
[SVN r25625]
2004-10-08 12:45:31 +00:00
24fec31d2c c++boost.gif -> boost.png replacement
[SVN r25573]
2004-10-05 15:45:52 +00:00
ad21d2cb2f Stamped on more C++ style comments in C compatible code.
[SVN r25472]
2004-09-29 10:22:04 +00:00
50dccbe6e0 Removed mingw workaround, and added to mingw toolset instead.
[SVN r25457]
2004-09-28 14:56:13 +00:00
396136146f Cleaned up comments to make regex.h C compatible.
[SVN r25414]
2004-09-26 10:25:31 +00:00
c0e6b1f5a2 mingw dll specific fixes.
Disable one SGI test - compiler deduces template arguments strangely.


[SVN r25270]
2004-09-20 12:31:08 +00:00
138d526839 Made config header C compatible.
Added mingw dll specific fix.


[SVN r25269]
2004-09-20 12:28:37 +00:00
8e60fd2cb7 Added needed include (fix for RW STL on Linux)
[SVN r25192]
2004-09-18 10:32:45 +00:00
5dfe10a136 Fix for RW STL: undef wchar symbols before use
[SVN r25191]
2004-09-18 10:32:05 +00:00
c2b82eae1f License update
[SVN r24990]
2004-09-09 13:59:01 +00:00
b0a325cf65 Fix: re-used match_results structure didn't set size correctly.
[SVN r24744]
2004-08-26 10:41:49 +00:00
54be0eaa9d VC6-specific fixes for wide character convenience functions.
[SVN r24600]
2004-08-19 15:29:21 +00:00
276fa31266 Fix signature to operator!=
[SVN r24499]
2004-08-16 11:22:52 +00:00
2e968dea9c Minor workarounds for SGI and Darwin platforms.
[SVN r24340]
2004-08-08 09:48:10 +00:00
97d3cdad83 Makefiles updated with 1.32 version number.
[SVN r23982]
2004-07-23 11:35:03 +00:00
99f8d02805 Documentation update from Jon T. Pedant
[SVN r23847]
2004-07-20 17:03:55 +00:00
7043e5585f Ooops, last fix had a misplaced "typename" in it, and therefore was not legal code, strangely some compilers just didn't care.
[SVN r23831]
2004-07-20 10:38:44 +00:00
048d5b788c Added missing copyright declarations.
[SVN r23723]
2004-07-18 10:21:47 +00:00
ee631c02eb Need to make string_out_iterator a "real" iterator type to keep commeau compiler happy.
[SVN r23722]
2004-07-18 10:20:56 +00:00
4600a25228 Updated makefiles.
[SVN r23625]
2004-07-16 10:56:15 +00:00
aebb44e507 Don't include integer_traits.hpp unless it's actually used: IBM C++ trips up otherwise.
[SVN r23317]
2004-07-02 10:40:53 +00:00
8d994b14b2 remove std_min and std_max, update minmax coding guidelines
[SVN r23162]
2004-06-23 04:49:48 +00:00
d310bc9835 HP aCC patches.
[SVN r23147]
2004-06-22 12:42:16 +00:00
6c02074270 More aCC portability fixes.
[SVN r23145]
2004-06-22 12:34:04 +00:00
ca44c8182c Fixed bug with grepping for literals.
Added Sunpro workaround.


[SVN r23093]
2004-06-12 10:10:07 +00:00
2e10c5ec17 Update
[SVN r23089]
2004-06-11 11:54:08 +00:00
ba148bae42 64-bit portability fix
[SVN r23065]
2004-06-09 12:12:42 +00:00
7c74a98ae5 64-bit portability fix
[SVN r23063]
2004-06-09 11:23:52 +00:00
9424952e8f Added workarounds for Sunpro and HP aCC
[SVN r23032]
2004-06-05 11:46:45 +00:00
c3f14400b0 Moved detail/allocator.hpp into regex directory.
[SVN r22967]
2004-05-28 12:21:44 +00:00
55a6787950 Altered initialiser order to stop gcc from complaining.
[SVN r22876]
2004-05-20 10:16:09 +00:00
4c0572d98f Attempt to sync V2 Jamfiles with V1 ones, again...
[SVN r22846]
2004-05-17 07:45:33 +00:00
25e51d3984 Patch for nosubs flag bug.
[SVN r22821]
2004-05-14 10:27:13 +00:00
c9b37542c5 Added additional tests for new bugs
[SVN r22813]
2004-05-13 12:33:22 +00:00
6382470ac1 Fixed \l and \u so that they work correctly in case insensitive mode.
[SVN r22804]
2004-05-12 11:39:28 +00:00
1dc081e1c2 Fixed problem with wide character optimisations, changed asserts on pointers (HP-specific workaround).
[SVN r22721]
2004-05-03 11:24:58 +00:00
b3e28896b7 Changed ar to $(AR) to allow for override.
[SVN r22713]
2004-05-01 10:33:47 +00:00
76176b302b Don't optimise leading repeats when there are backreferences involved.
[SVN r22705]
2004-04-25 10:32:09 +00:00
a262f28327 Added introductory comment
[SVN r22641]
2004-04-17 10:56:46 +00:00
e3aacc5c55 Fixes for POSIX regexes not grepping correctly.
[SVN r22623]
2004-04-09 15:55:32 +00:00
dc90d07749 Added fix for grepping for POSIX style matches.
[SVN r22621]
2004-04-07 11:04:06 +00:00
300ca31723 Added missing hyperlink
[SVN r22620]
2004-04-07 10:49:50 +00:00
c65dd3be41 Added link to old docs.
[SVN r22530]
2004-03-20 12:12:03 +00:00
5a29047906 Added missing preconditions, and fixed minor typos.
[SVN r22529]
2004-03-20 11:53:56 +00:00
cdd130ae2d Added typedefs to index
[SVN r22511]
2004-03-17 12:53:57 +00:00
9f47972bcf Removed unneeded export specifiers
[SVN r22506]
2004-03-16 17:37:54 +00:00
0633ba70f2 Added missing typedefs
[SVN r22505]
2004-03-16 17:36:15 +00:00
8330b19cec Added tests to check new format specifiers.
[SVN r22487]
2004-03-12 13:13:14 +00:00
b8eab985e5 Added support for perl style \u \U \l \L etc in formatting.
[SVN r22486]
2004-03-12 13:12:33 +00:00
f90d8c667e Fixed typo
[SVN r22438]
2004-03-05 11:32:34 +00:00
4b7f14e72d Added extra non-greedy repeat tests,
fixed concept checks for vc6 (they don't work, and won't work).


[SVN r22423]
2004-03-02 17:00:15 +00:00
89515b9a8e Fixed nasty non-greedy repeat bug,
tidied up min/max workarounds,
removed unneeded #if


[SVN r22422]
2004-03-02 16:58:50 +00:00
3075aaba4a remove minmax hack from win32.hpp and fix all places that could be affected by the minmax macros
[SVN r22394]
2004-02-26 18:27:02 +00:00
50b8204753 Updated iterator defs.
[SVN r22387]
2004-02-25 12:36:45 +00:00
02c652c01e Added extra iterator based tests
[SVN r22385]
2004-02-25 12:35:08 +00:00
b3f7d35f68 Added extra acknowledgements
[SVN r22384]
2004-02-25 12:34:42 +00:00
f1312f16c4 Cleared up references to implementation specific types.
[SVN r22190]
2004-02-07 13:11:54 +00:00
9ebe515adf Fixed errors in docs:
unsigned int changed to match_flag_type in several places,
plus occurance of std rather than boost.


[SVN r22160]
2004-02-04 11:57:35 +00:00
293 changed files with 12635 additions and 63326 deletions

View File

@ -1,74 +0,0 @@
# copyright John Maddock 2003
subproject libs/regex/build ;
#
# this template defines the options common to
# all regex builds and tests:
#
template regex-options
: # sources
: # requirements
<debug><define>BOOST_REGEX_CONFIG_INFO=1
<sysinclude>$(BOOST_ROOT)
# <native-wchar_t>on
# como requires this:
<como-win32><*><define>BOOST_REGEX_NO_W32=1
;
#
# this template defines the options common to
# all regex dll builds and tests:
#
template regex-dll-options
: <template>regex-options # sources
: # requirements
<define>BOOST_REGEX_DYN_LINK=1
<runtime-link>dynamic
;
#
# this template defines extra settings required to work
# around STLPort defects when used with msvc 6:
#
template msvc-stlport-tricky
: # sources
: <msvc-stlport><*><runtime-build>release
<define>BOOST_ALL_NO_LIB=1
;
SOURCES = c_regex_traits c_regex_traits_common cpp_regex_traits
cregex fileiter posix_api regex regex_debug
regex_synch w32_regex_traits wide_posix_api instances winstances ;
lib boost_regex : ../src/$(SOURCES).cpp <template>regex-options
:
common-variant-tag
:
debug release
;
dll boost_regex : ../src/$(SOURCES).cpp <template>regex-dll-options
:
common-variant-tag
:
debug release
;
stage stage/lib : <lib>boost_regex <dll>boost_regex
:
<locate>$(BOOST_ROOT)
common-variant-tag
<target>stage
<target>all
:
debug release
;
install regex lib
: <dll>boost_regex <lib>boost_regex
;

View File

@ -1,15 +0,0 @@
project boost/regex
: source-location ../src
;
SOURCES = c_regex_traits c_regex_traits_common cpp_regex_traits
cregex fileiter posix_api regex regex_debug
regex_synch w32_regex_traits wide_posix_api instances winstances ;
lib boost_regex : $(SOURCES).cpp
:
<link>static:<define>BOOST_REGEX_NO_LIB=1
<link>static:<define>BOOST_REGEX_STATIC_LINK=1
<link>shared:<define>BOOST_RE_BUILD_DLL=1
;

View File

@ -1,261 +0,0 @@
#! /bin/bash
libname=""
src=""
header=""
all_dep=""
# current makefile:
out=""
# temporary file:
tout=""
# install target temp file:
iout=""
# debug flag:
debug="no"
# compile options:
opts=""
# main output sub-directory:
subdir=""
#######################################################################
#
# section for C++ Builder
#
#######################################################################
function bcb_gen_lib()
{
all_dep="$all_dep $subdir\\$libname $subdir\\$libname.lib"
echo " copy $subdir\\$libname.lib \$(BCROOT)\\lib" >> $iout
#
# set up section comments:
cat >> $tout << EOF
########################################################
#
# section for $libname.lib
#
########################################################
EOF
#
# process source files:
all_obj=""
all_lib_obj=""
for file in $src
do
obj=`echo "$file" | sed 's/.*src\/\(.*\)cpp/\1obj/g'`
obj="$subdir\\$libname\\$obj"
all_obj="$all_obj $obj"
all_lib_obj="$all_lib_obj +\"$obj\""
echo "$obj: $file \$(ALL_HEADER)" >> $tout
echo " bcc32 @&&|" >> $tout
echo "-c \$(INCLUDES) $opts \$(CXXFLAGS) -o$obj $file" >> $tout
echo "|" >> $tout
echo "" >> $tout
done
#
# now for the directories for this library:
echo "$subdir\\$libname : " >> $tout
echo " -@mkdir $subdir\\$libname" >> $tout
echo "" >> $tout
#
# now for the clean options for this library:
all_clean="$all_clean $libname""_clean"
echo "$libname"_clean : >> $tout
echo " del $subdir\\$libname\\"'*.obj' >> $tout
echo " del $subdir\\$libname\\"'*.il?' >> $tout
echo " del $subdir\\$libname\\"'*.csm' >> $tout
echo " del $subdir\\$libname\\"'*.tds' >> $tout
echo "" >> $tout
#
# now for the main target for this library:
echo $subdir\\$libname.lib : $all_obj >> $tout
echo " if exist $subdir\\$libname.lib del $subdir\\$libname.lib " >> $tout
echo " tlib @&&|" >> $tout
echo "/P128 /C /u /a \$(XSFLAGS) \"$subdir\\$libname.lib\" $all_lib_obj" >> $tout
echo "|" >> $tout
echo "" >> $tout
}
function bcb_gen_dll()
{
all_dep="$all_dep $subdir\\$libname $subdir\\$libname.lib"
echo " copy $subdir\\$libname.lib \$(BCROOT)\\lib" >> $iout
echo " copy $subdir\\$libname.dll \$(BCROOT)\\bin" >> $iout
echo " copy $subdir\\$libname.tds \$(BCROOT)\\bin" >> $iout
#
# set up section comments:
cat >> $tout << EOF
########################################################
#
# section for $libname.lib
#
########################################################
EOF
#
# process source files:
all_obj=""
for file in $src
do
obj=`echo "$file" | sed 's/.*src\/\(.*\)cpp/\1obj/g'`
obj="$subdir\\$libname\\$obj"
all_obj="$all_obj $obj"
echo "$obj: $file \$(ALL_HEADER)" >> $tout
echo " bcc32 @&&|" >> $tout
echo "-c \$(INCLUDES) $opts \$(CXXFLAGS) -DBOOST_REGEX_DYN_LINK -o$obj $file" >> $tout
echo "|" >> $tout
echo "" >> $tout
done
#
# now for the directories for this library:
echo "$subdir\\$libname :" >> $tout
echo " -@mkdir $subdir\\$libname" >> $tout
echo "" >> $tout
#
# now for the clean options for this library:
all_clean="$all_clean $libname""_clean"
echo "$libname"_clean : >> $tout
echo " del $subdir\\$libname\\"'*.obj' >> $tout
echo " del $subdir\\$libname\\"'*.il?' >> $tout
echo " del $subdir\\$libname\\"'*.csm' >> $tout
echo " del $subdir\\$libname\\"'*.tds' >> $tout
echo " del $subdir\\"'*.tds' >> $tout
echo "" >> $tout
#
# now for the main target for this library:
echo $subdir\\$libname.lib : $all_obj >> $tout
echo " bcc32 @&&|" >> $tout
echo "-lw-dup -lw-dpl $opts -e$subdir\\$libname.dll \$(XLFLAGS) $all_obj \$(LIBS)" >> $tout
echo "|" >> $tout
echo " implib -w $subdir\\$libname.lib $subdir\\$libname.dll" >> $tout
echo "" >> $tout
}
function bcb_gen()
{
tout="temp"
iout="temp_install"
all_dep="$subdir"
all_clean=""
echo > $out
echo > $tout
rm -f $iout
libname="libboost_regex-${subdir}-s-${boost_version}"
opts="-tWM- -D_NO_VCL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8037 -w-8057 -DSTRICT; -I\$(BCROOT)\include;../../../"
bcb_gen_lib
libname="libboost_regex-${subdir}-mt-s-${boost_version}"
opts="-tWM -D_NO_VCL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../"
bcb_gen_lib
libname="boost_regex-${subdir}-mt-${boost_version}"
opts="-tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
bcb_gen_dll
libname="boost_regex-${subdir}-${boost_version}"
opts="-tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
bcb_gen_dll
libname="libboost_regex-${subdir}-mt-${boost_version}"
opts="-tWD -tWM -tWR -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
bcb_gen_lib
libname="libboost_regex-${subdir}-${boost_version}"
opts="-tWD -tWR -tWM- -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -O2 -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
bcb_gen_lib
libname="libboost_regex-${subdir}-sd-${boost_version}"
opts="-tWM- -D_NO_VCL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8037 -w-8057 -DSTRICT; -I\$(BCROOT)\include;../../../"
bcb_gen_lib
libname="libboost_regex-${subdir}-mt-sd-${boost_version}"
opts="-tWM -D_NO_VCL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../"
bcb_gen_lib
libname="boost_regex-${subdir}-mt-d-${boost_version}"
opts="-tWD -tWM -tWR -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
bcb_gen_dll
libname="boost_regex-${subdir}-d-${boost_version}"
opts="-tWD -tWR -tWM- -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
bcb_gen_dll
libname="libboost_regex-${subdir}-mt-d-${boost_version}"
opts="-tWD -tWM -tWR -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
bcb_gen_lib
libname="libboost_regex-${subdir}-d-${boost_version}"
opts="-tWD -tWR -tWM- -DBOOST_REGEX_STATIC_LINK -D_NO_VCL -D_RTLDLL -v -Ve -Vx -w-inl -w-aus -w-rch -w-8012 -w-8057 -w-8037 -DSTRICT; -I\$(BCROOT)\include;../../../ -L\$(BCROOT)\lib;\$(BCROOT)\lib\release;"
bcb_gen_lib
cat > $out << EOF
#
# auto generated makefile for C++ Builder
#
# usage:
# make
# brings libraries up to date
# make install
# brings libraries up to date and copies binaries to your C++ Builder /lib and /bin directories (recomended)
# make clean
# removes all temporary files.
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
XLFLAGS=
#
# add additional libraries to link to here:
#
LIBS=
#
# add additional static-library creation flags here:
#
XSFLAGS=
!ifndef BCROOT
BCROOT=\$(MAKEDIR)\\..
!endif
EOF
echo "" >> $out
echo "ALL_HEADER=$header" >> $out
echo "" >> $out
echo "all : $all_dep" >> $out
echo >> $out
echo "clean : $all_clean" >> $out
echo >> $out
echo "install : all" >> $out
cat $iout >> $out
echo >> $out
echo $subdir : >> $out
echo " -@mkdir $subdir" >> $out
echo "" >> $out
cat $tout >> $out
}
. common.sh
#
# generate C++ Builder 6 files:
out="bcb6.mak"
subdir="bcb"
has_stlport="yes"
bcb_gen

File diff suppressed because it is too large Load Diff

View File

@ -1,55 +0,0 @@
#
# locate all the header dependencies:
for file in ../../../boost/regex/*.hpp ; do
if [ -f $file ]; then
header="$header $file"
fi
done
for file in ../../../boost/regex/v3/*.hpp; do
if [ -f $file ]; then
header="$header $file"
fi
done
for file in ../../../boost/regex/v3/*.hxx; do
if [ -f $file ]; then
header="$header $file"
fi
done
for file in ../../../boost/regex/v4/*.hpp; do
if [ -f $file ]; then
header="$header $file"
fi
done
for file in ../../../boost/regex/v4/*.hxx; do
if [ -f $file ]; then
header="$header $file"
fi
done
for file in ../../../boost/regex/config/*.hpp; do
if [ -f $file ]; then
header="$header $file"
fi
done
for file in ../../../boost/regex/config/*.hxx; do
if [ -f $file ]; then
header="$header $file"
fi
done
#
# locate all the source files:
for file in ../src/*.cpp; do
if [ -f $file ]; then
src="$src $file"
fi
done
boost_version=$(grep 'define.*BOOST_LIB_VERSION' ../../../boost/version.hpp | sed 's/.*"\([^"]*\)".*/\1/')
echo Boost version tag = $boost_version

View File

@ -1,150 +0,0 @@
#
# auto generated makefile for gcc compiler
#
# usage:
# make
# brings libraries up to date
# make clean
# deletes temporary object files (but not archives).
#
#
# the following environment variables are recognised:
# CXXFLAGS= extra compiler options - note applies to all build variants
# INCLUDES= additional include directories
# LDFLAGS= additional linker options
# LIBS= additional library files
# compiler:
CXX=g++
LINKER=g++ -shared
#
# compiler options for release build:
#
C1=-c -O2 -I../../../ -fPIC
#
# compiler options for debug build:
#
C2=-c -g -I../../../ -fPIC
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : gcc gcc gcc/boost_regex-gcc-1_31_shared ./gcc/libboost_regex-gcc-1_31.so gcc gcc/boost_regex-gcc-d-1_31_shared ./gcc/libboost_regex-gcc-d-1_31.so
gcc :
mkdir -p gcc
clean : boost_regex-gcc-1_31_clean boost_regex-gcc-d-1_31_clean
install : all
########################################################
#
# section for libboost_regex-gcc-1_31.a
#
########################################################
gcc/boost_regex-gcc-1_31_shared/c_regex_traits.o: ../src/c_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/c_regex_traits.o $(C1) $(CXXFLAGS) ../src/c_regex_traits.cpp
gcc/boost_regex-gcc-1_31_shared/c_regex_traits_common.o: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/c_regex_traits_common.o $(C1) $(CXXFLAGS) ../src/c_regex_traits_common.cpp
gcc/boost_regex-gcc-1_31_shared/cpp_regex_traits.o: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/cpp_regex_traits.o $(C1) $(CXXFLAGS) ../src/cpp_regex_traits.cpp
gcc/boost_regex-gcc-1_31_shared/cregex.o: ../src/cregex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/cregex.o $(C1) $(CXXFLAGS) ../src/cregex.cpp
gcc/boost_regex-gcc-1_31_shared/fileiter.o: ../src/fileiter.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/fileiter.o $(C1) $(CXXFLAGS) ../src/fileiter.cpp
gcc/boost_regex-gcc-1_31_shared/instances.o: ../src/instances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/instances.o $(C1) $(CXXFLAGS) ../src/instances.cpp
gcc/boost_regex-gcc-1_31_shared/posix_api.o: ../src/posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/posix_api.o $(C1) $(CXXFLAGS) ../src/posix_api.cpp
gcc/boost_regex-gcc-1_31_shared/regex.o: ../src/regex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/regex.o $(C1) $(CXXFLAGS) ../src/regex.cpp
gcc/boost_regex-gcc-1_31_shared/regex_debug.o: ../src/regex_debug.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/regex_debug.o $(C1) $(CXXFLAGS) ../src/regex_debug.cpp
gcc/boost_regex-gcc-1_31_shared/regex_synch.o: ../src/regex_synch.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/regex_synch.o $(C1) $(CXXFLAGS) ../src/regex_synch.cpp
gcc/boost_regex-gcc-1_31_shared/w32_regex_traits.o: ../src/w32_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/w32_regex_traits.o $(C1) $(CXXFLAGS) ../src/w32_regex_traits.cpp
gcc/boost_regex-gcc-1_31_shared/wide_posix_api.o: ../src/wide_posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/wide_posix_api.o $(C1) $(CXXFLAGS) ../src/wide_posix_api.cpp
gcc/boost_regex-gcc-1_31_shared/winstances.o: ../src/winstances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31_shared/winstances.o $(C1) $(CXXFLAGS) ../src/winstances.cpp
gcc/boost_regex-gcc-1_31_shared :
mkdir -p gcc/boost_regex-gcc-1_31_shared
boost_regex-gcc-1_31_clean :
rm -f gcc/boost_regex-gcc-1_31_shared/*.o
./gcc/libboost_regex-gcc-1_31.so : gcc/boost_regex-gcc-1_31_shared/c_regex_traits.o gcc/boost_regex-gcc-1_31_shared/c_regex_traits_common.o gcc/boost_regex-gcc-1_31_shared/cpp_regex_traits.o gcc/boost_regex-gcc-1_31_shared/cregex.o gcc/boost_regex-gcc-1_31_shared/fileiter.o gcc/boost_regex-gcc-1_31_shared/instances.o gcc/boost_regex-gcc-1_31_shared/posix_api.o gcc/boost_regex-gcc-1_31_shared/regex.o gcc/boost_regex-gcc-1_31_shared/regex_debug.o gcc/boost_regex-gcc-1_31_shared/regex_synch.o gcc/boost_regex-gcc-1_31_shared/w32_regex_traits.o gcc/boost_regex-gcc-1_31_shared/wide_posix_api.o gcc/boost_regex-gcc-1_31_shared/winstances.o
$(LINKER) -o gcc/libboost_regex-gcc-1_31.so $(LDFLAGS) gcc/boost_regex-gcc-1_31_shared/c_regex_traits.o gcc/boost_regex-gcc-1_31_shared/c_regex_traits_common.o gcc/boost_regex-gcc-1_31_shared/cpp_regex_traits.o gcc/boost_regex-gcc-1_31_shared/cregex.o gcc/boost_regex-gcc-1_31_shared/fileiter.o gcc/boost_regex-gcc-1_31_shared/instances.o gcc/boost_regex-gcc-1_31_shared/posix_api.o gcc/boost_regex-gcc-1_31_shared/regex.o gcc/boost_regex-gcc-1_31_shared/regex_debug.o gcc/boost_regex-gcc-1_31_shared/regex_synch.o gcc/boost_regex-gcc-1_31_shared/w32_regex_traits.o gcc/boost_regex-gcc-1_31_shared/wide_posix_api.o gcc/boost_regex-gcc-1_31_shared/winstances.o $(LIBS)
########################################################
#
# section for libboost_regex-gcc-d-1_31.a
#
########################################################
gcc/boost_regex-gcc-d-1_31_shared/c_regex_traits.o: ../src/c_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/c_regex_traits.o $(C2) $(CXXFLAGS) ../src/c_regex_traits.cpp
gcc/boost_regex-gcc-d-1_31_shared/c_regex_traits_common.o: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/c_regex_traits_common.o $(C2) $(CXXFLAGS) ../src/c_regex_traits_common.cpp
gcc/boost_regex-gcc-d-1_31_shared/cpp_regex_traits.o: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/cpp_regex_traits.o $(C2) $(CXXFLAGS) ../src/cpp_regex_traits.cpp
gcc/boost_regex-gcc-d-1_31_shared/cregex.o: ../src/cregex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/cregex.o $(C2) $(CXXFLAGS) ../src/cregex.cpp
gcc/boost_regex-gcc-d-1_31_shared/fileiter.o: ../src/fileiter.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/fileiter.o $(C2) $(CXXFLAGS) ../src/fileiter.cpp
gcc/boost_regex-gcc-d-1_31_shared/instances.o: ../src/instances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/instances.o $(C2) $(CXXFLAGS) ../src/instances.cpp
gcc/boost_regex-gcc-d-1_31_shared/posix_api.o: ../src/posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/posix_api.o $(C2) $(CXXFLAGS) ../src/posix_api.cpp
gcc/boost_regex-gcc-d-1_31_shared/regex.o: ../src/regex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/regex.o $(C2) $(CXXFLAGS) ../src/regex.cpp
gcc/boost_regex-gcc-d-1_31_shared/regex_debug.o: ../src/regex_debug.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/regex_debug.o $(C2) $(CXXFLAGS) ../src/regex_debug.cpp
gcc/boost_regex-gcc-d-1_31_shared/regex_synch.o: ../src/regex_synch.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/regex_synch.o $(C2) $(CXXFLAGS) ../src/regex_synch.cpp
gcc/boost_regex-gcc-d-1_31_shared/w32_regex_traits.o: ../src/w32_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/w32_regex_traits.o $(C2) $(CXXFLAGS) ../src/w32_regex_traits.cpp
gcc/boost_regex-gcc-d-1_31_shared/wide_posix_api.o: ../src/wide_posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/wide_posix_api.o $(C2) $(CXXFLAGS) ../src/wide_posix_api.cpp
gcc/boost_regex-gcc-d-1_31_shared/winstances.o: ../src/winstances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31_shared/winstances.o $(C2) $(CXXFLAGS) ../src/winstances.cpp
gcc/boost_regex-gcc-d-1_31_shared :
mkdir -p gcc/boost_regex-gcc-d-1_31_shared
boost_regex-gcc-d-1_31_clean :
rm -f gcc/boost_regex-gcc-d-1_31_shared/*.o
./gcc/libboost_regex-gcc-d-1_31.so : gcc/boost_regex-gcc-d-1_31_shared/c_regex_traits.o gcc/boost_regex-gcc-d-1_31_shared/c_regex_traits_common.o gcc/boost_regex-gcc-d-1_31_shared/cpp_regex_traits.o gcc/boost_regex-gcc-d-1_31_shared/cregex.o gcc/boost_regex-gcc-d-1_31_shared/fileiter.o gcc/boost_regex-gcc-d-1_31_shared/instances.o gcc/boost_regex-gcc-d-1_31_shared/posix_api.o gcc/boost_regex-gcc-d-1_31_shared/regex.o gcc/boost_regex-gcc-d-1_31_shared/regex_debug.o gcc/boost_regex-gcc-d-1_31_shared/regex_synch.o gcc/boost_regex-gcc-d-1_31_shared/w32_regex_traits.o gcc/boost_regex-gcc-d-1_31_shared/wide_posix_api.o gcc/boost_regex-gcc-d-1_31_shared/winstances.o
$(LINKER) -o gcc/libboost_regex-gcc-d-1_31.so $(LDFLAGS) gcc/boost_regex-gcc-d-1_31_shared/c_regex_traits.o gcc/boost_regex-gcc-d-1_31_shared/c_regex_traits_common.o gcc/boost_regex-gcc-d-1_31_shared/cpp_regex_traits.o gcc/boost_regex-gcc-d-1_31_shared/cregex.o gcc/boost_regex-gcc-d-1_31_shared/fileiter.o gcc/boost_regex-gcc-d-1_31_shared/instances.o gcc/boost_regex-gcc-d-1_31_shared/posix_api.o gcc/boost_regex-gcc-d-1_31_shared/regex.o gcc/boost_regex-gcc-d-1_31_shared/regex_debug.o gcc/boost_regex-gcc-d-1_31_shared/regex_synch.o gcc/boost_regex-gcc-d-1_31_shared/w32_regex_traits.o gcc/boost_regex-gcc-d-1_31_shared/wide_posix_api.o gcc/boost_regex-gcc-d-1_31_shared/winstances.o $(LIBS)

View File

@ -1,153 +0,0 @@
#
# auto generated makefile for gcc compiler
#
# usage:
# make
# brings libraries up to date
# make clean
# deletes temporary object files (but not archives).
#
#
# the following environment variables are recognised:
# CXXFLAGS= extra compiler options - note applies to all build variants
# INCLUDES= additional include directories
# LDFLAGS= additional linker options
# LIBS= additional library files
# compiler:
CXX=g++
LINKER=g++ -shared
#
# compiler options for release build:
#
C1=-c -O2 -I../../../
#
# compiler options for debug build:
#
C2=-c -g -I../../../
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : gcc gcc gcc/boost_regex-gcc-1_31 ./gcc/libboost_regex-gcc-1_31.a gcc gcc/boost_regex-gcc-d-1_31 ./gcc/libboost_regex-gcc-d-1_31.a
gcc :
mkdir -p gcc
clean : boost_regex-gcc-1_31_clean boost_regex-gcc-d-1_31_clean
install : all
########################################################
#
# section for libboost_regex-gcc-1_31.a
#
########################################################
gcc/boost_regex-gcc-1_31/c_regex_traits.o: ../src/c_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/c_regex_traits.o $(C1) $(CXXFLAGS) ../src/c_regex_traits.cpp
gcc/boost_regex-gcc-1_31/c_regex_traits_common.o: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/c_regex_traits_common.o $(C1) $(CXXFLAGS) ../src/c_regex_traits_common.cpp
gcc/boost_regex-gcc-1_31/cpp_regex_traits.o: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/cpp_regex_traits.o $(C1) $(CXXFLAGS) ../src/cpp_regex_traits.cpp
gcc/boost_regex-gcc-1_31/cregex.o: ../src/cregex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/cregex.o $(C1) $(CXXFLAGS) ../src/cregex.cpp
gcc/boost_regex-gcc-1_31/fileiter.o: ../src/fileiter.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/fileiter.o $(C1) $(CXXFLAGS) ../src/fileiter.cpp
gcc/boost_regex-gcc-1_31/instances.o: ../src/instances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/instances.o $(C1) $(CXXFLAGS) ../src/instances.cpp
gcc/boost_regex-gcc-1_31/posix_api.o: ../src/posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/posix_api.o $(C1) $(CXXFLAGS) ../src/posix_api.cpp
gcc/boost_regex-gcc-1_31/regex.o: ../src/regex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/regex.o $(C1) $(CXXFLAGS) ../src/regex.cpp
gcc/boost_regex-gcc-1_31/regex_debug.o: ../src/regex_debug.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/regex_debug.o $(C1) $(CXXFLAGS) ../src/regex_debug.cpp
gcc/boost_regex-gcc-1_31/regex_synch.o: ../src/regex_synch.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/regex_synch.o $(C1) $(CXXFLAGS) ../src/regex_synch.cpp
gcc/boost_regex-gcc-1_31/w32_regex_traits.o: ../src/w32_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/w32_regex_traits.o $(C1) $(CXXFLAGS) ../src/w32_regex_traits.cpp
gcc/boost_regex-gcc-1_31/wide_posix_api.o: ../src/wide_posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/wide_posix_api.o $(C1) $(CXXFLAGS) ../src/wide_posix_api.cpp
gcc/boost_regex-gcc-1_31/winstances.o: ../src/winstances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-1_31/winstances.o $(C1) $(CXXFLAGS) ../src/winstances.cpp
gcc/boost_regex-gcc-1_31 :
mkdir -p gcc/boost_regex-gcc-1_31
boost_regex-gcc-1_31_clean :
rm -f gcc/boost_regex-gcc-1_31/*.o
./gcc/libboost_regex-gcc-1_31.a : gcc/boost_regex-gcc-1_31/c_regex_traits.o gcc/boost_regex-gcc-1_31/c_regex_traits_common.o gcc/boost_regex-gcc-1_31/cpp_regex_traits.o gcc/boost_regex-gcc-1_31/cregex.o gcc/boost_regex-gcc-1_31/fileiter.o gcc/boost_regex-gcc-1_31/instances.o gcc/boost_regex-gcc-1_31/posix_api.o gcc/boost_regex-gcc-1_31/regex.o gcc/boost_regex-gcc-1_31/regex_debug.o gcc/boost_regex-gcc-1_31/regex_synch.o gcc/boost_regex-gcc-1_31/w32_regex_traits.o gcc/boost_regex-gcc-1_31/wide_posix_api.o gcc/boost_regex-gcc-1_31/winstances.o
ar -r gcc/libboost_regex-gcc-1_31.a gcc/boost_regex-gcc-1_31/c_regex_traits.o gcc/boost_regex-gcc-1_31/c_regex_traits_common.o gcc/boost_regex-gcc-1_31/cpp_regex_traits.o gcc/boost_regex-gcc-1_31/cregex.o gcc/boost_regex-gcc-1_31/fileiter.o gcc/boost_regex-gcc-1_31/instances.o gcc/boost_regex-gcc-1_31/posix_api.o gcc/boost_regex-gcc-1_31/regex.o gcc/boost_regex-gcc-1_31/regex_debug.o gcc/boost_regex-gcc-1_31/regex_synch.o gcc/boost_regex-gcc-1_31/w32_regex_traits.o gcc/boost_regex-gcc-1_31/wide_posix_api.o gcc/boost_regex-gcc-1_31/winstances.o
-ar -s gcc/libboost_regex-gcc-1_31.a
########################################################
#
# section for libboost_regex-gcc-d-1_31.a
#
########################################################
gcc/boost_regex-gcc-d-1_31/c_regex_traits.o: ../src/c_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/c_regex_traits.o $(C2) $(CXXFLAGS) ../src/c_regex_traits.cpp
gcc/boost_regex-gcc-d-1_31/c_regex_traits_common.o: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/c_regex_traits_common.o $(C2) $(CXXFLAGS) ../src/c_regex_traits_common.cpp
gcc/boost_regex-gcc-d-1_31/cpp_regex_traits.o: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/cpp_regex_traits.o $(C2) $(CXXFLAGS) ../src/cpp_regex_traits.cpp
gcc/boost_regex-gcc-d-1_31/cregex.o: ../src/cregex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/cregex.o $(C2) $(CXXFLAGS) ../src/cregex.cpp
gcc/boost_regex-gcc-d-1_31/fileiter.o: ../src/fileiter.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/fileiter.o $(C2) $(CXXFLAGS) ../src/fileiter.cpp
gcc/boost_regex-gcc-d-1_31/instances.o: ../src/instances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/instances.o $(C2) $(CXXFLAGS) ../src/instances.cpp
gcc/boost_regex-gcc-d-1_31/posix_api.o: ../src/posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/posix_api.o $(C2) $(CXXFLAGS) ../src/posix_api.cpp
gcc/boost_regex-gcc-d-1_31/regex.o: ../src/regex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/regex.o $(C2) $(CXXFLAGS) ../src/regex.cpp
gcc/boost_regex-gcc-d-1_31/regex_debug.o: ../src/regex_debug.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/regex_debug.o $(C2) $(CXXFLAGS) ../src/regex_debug.cpp
gcc/boost_regex-gcc-d-1_31/regex_synch.o: ../src/regex_synch.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/regex_synch.o $(C2) $(CXXFLAGS) ../src/regex_synch.cpp
gcc/boost_regex-gcc-d-1_31/w32_regex_traits.o: ../src/w32_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/w32_regex_traits.o $(C2) $(CXXFLAGS) ../src/w32_regex_traits.cpp
gcc/boost_regex-gcc-d-1_31/wide_posix_api.o: ../src/wide_posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/wide_posix_api.o $(C2) $(CXXFLAGS) ../src/wide_posix_api.cpp
gcc/boost_regex-gcc-d-1_31/winstances.o: ../src/winstances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o gcc/boost_regex-gcc-d-1_31/winstances.o $(C2) $(CXXFLAGS) ../src/winstances.cpp
gcc/boost_regex-gcc-d-1_31 :
mkdir -p gcc/boost_regex-gcc-d-1_31
boost_regex-gcc-d-1_31_clean :
rm -f gcc/boost_regex-gcc-d-1_31/*.o
./gcc/libboost_regex-gcc-d-1_31.a : gcc/boost_regex-gcc-d-1_31/c_regex_traits.o gcc/boost_regex-gcc-d-1_31/c_regex_traits_common.o gcc/boost_regex-gcc-d-1_31/cpp_regex_traits.o gcc/boost_regex-gcc-d-1_31/cregex.o gcc/boost_regex-gcc-d-1_31/fileiter.o gcc/boost_regex-gcc-d-1_31/instances.o gcc/boost_regex-gcc-d-1_31/posix_api.o gcc/boost_regex-gcc-d-1_31/regex.o gcc/boost_regex-gcc-d-1_31/regex_debug.o gcc/boost_regex-gcc-d-1_31/regex_synch.o gcc/boost_regex-gcc-d-1_31/w32_regex_traits.o gcc/boost_regex-gcc-d-1_31/wide_posix_api.o gcc/boost_regex-gcc-d-1_31/winstances.o
ar -r gcc/libboost_regex-gcc-d-1_31.a gcc/boost_regex-gcc-d-1_31/c_regex_traits.o gcc/boost_regex-gcc-d-1_31/c_regex_traits_common.o gcc/boost_regex-gcc-d-1_31/cpp_regex_traits.o gcc/boost_regex-gcc-d-1_31/cregex.o gcc/boost_regex-gcc-d-1_31/fileiter.o gcc/boost_regex-gcc-d-1_31/instances.o gcc/boost_regex-gcc-d-1_31/posix_api.o gcc/boost_regex-gcc-d-1_31/regex.o gcc/boost_regex-gcc-d-1_31/regex_debug.o gcc/boost_regex-gcc-d-1_31/regex_synch.o gcc/boost_regex-gcc-d-1_31/w32_regex_traits.o gcc/boost_regex-gcc-d-1_31/wide_posix_api.o gcc/boost_regex-gcc-d-1_31/winstances.o
-ar -s gcc/libboost_regex-gcc-d-1_31.a

View File

@ -1,238 +0,0 @@
#! /bin/bash
libname=""
src=""
header=""
all_dep=""
# current makefile:
out=""
# temporary file:
tout=""
# install target temp file:
iout=""
# debug flag:
debug="no"
# compile options:
opts=""
# main output sub-directory:
subdir=""
# vcl flag:
use_vcl="yes"
###############################################################
#
# gcc generator section:
#
###############################################################
gcc_shared="no"
function gcc_gen_lib()
{
if test "$gcc_shared" == "yes"; then
obj_dir="$libname""_shared"
all_dep="$all_dep $subdir $subdir/$obj_dir ./$subdir/lib$libname.so"
else
obj_dir="$libname"
all_dep="$all_dep $subdir $subdir/$obj_dir ./$subdir/lib$libname.a"
fi
#
# set up section comments:
cat >> $tout << EOF
########################################################
#
# section for lib$libname.a
#
########################################################
EOF
#
# process source files:
all_obj=""
for file in $src
do
obj=`echo "$file" | sed 's/.*src\/\(.*\)cpp/\1o/g'`
obj="$subdir/$obj_dir/$obj"
all_obj="$all_obj $obj"
echo "$obj: $file \$(ALL_HEADER)" >> $tout
echo " \$(CXX) \$(INCLUDES) -o $obj $opts \$(CXXFLAGS) $file" >> $tout
echo "" >> $tout
done
#
# now for the directories for this library:
echo "$subdir/$obj_dir : " >> $tout
echo " mkdir -p $subdir/$obj_dir" >> $tout
echo "" >> $tout
#
# now for the clean options for this library:
all_clean="$all_clean $libname""_clean"
echo "$libname"_clean : >> $tout
echo " rm -f $subdir/$obj_dir/*.o" >> $tout
echo "" >> $tout
#
# now for the main target for this library:
if test "$gcc_shared" == "yes"; then
echo ./$subdir/lib$libname.so : $all_obj >> $tout
echo " \$(LINKER) -o $subdir/lib$libname.so \$(LDFLAGS) $all_obj \$(LIBS)" >> $tout
else
echo ./$subdir/lib$libname.a : $all_obj >> $tout
echo " ar -r $subdir/lib$libname.a $all_obj" >> $tout
echo " -ar -s $subdir/lib$libname.a" >> $tout
fi
echo "" >> $tout
}
function gcc_gen()
{
out="gcc.mak"
tout="temp"
iout="temp_install"
subdir="gcc"
all_dep=""
all_clean=""
echo > $out
echo > $tout
echo > $iout
libname="boost_regex-gcc-${boost_version}"
opts="\$(C1)"
gcc_gen_lib
libname="boost_regex-gcc-d-${boost_version}"
opts="\$(C2)"
gcc_gen_lib
cat > $out << EOF
#
# auto generated makefile for gcc compiler
#
# usage:
# make
# brings libraries up to date
# make clean
# deletes temporary object files (but not archives).
#
#
# the following environment variables are recognised:
# CXXFLAGS= extra compiler options - note applies to all build variants
# INCLUDES= additional include directories
# LDFLAGS= additional linker options
# LIBS= additional library files
# compiler:
CXX=g++
LINKER=g++ -shared
#
# compiler options for release build:
#
C1=-c -O2 -I../../../
#
# compiler options for debug build:
#
C2=-c -g -I../../../
EOF
echo "" >> $out
echo "ALL_HEADER=$header" >> $out
echo "" >> $out
echo "all : $subdir $all_dep" >> $out
echo >> $out
echo "$subdir :" >> $out
echo " mkdir -p $subdir" >> $out
echo >> $out
echo "clean : $all_clean" >> $out
echo >> $out
echo "install : all" >> $out
cat $iout >> $out
echo >> $out
cat $tout >> $out
}
function gcc_gen_shared()
{
out="gcc-shared.mak"
tout="temp"
iout="temp_install"
subdir="gcc"
all_dep=""
all_clean=""
echo > $out
echo > $tout
echo > $iout
libname="boost_regex-gcc-${boost_version}"
opts="\$(C1)"
gcc_gen_lib
libname="boost_regex-gcc-d-${boost_version}"
opts="\$(C2)"
gcc_gen_lib
cat > $out << EOF
#
# auto generated makefile for gcc compiler
#
# usage:
# make
# brings libraries up to date
# make clean
# deletes temporary object files (but not archives).
#
#
# the following environment variables are recognised:
# CXXFLAGS= extra compiler options - note applies to all build variants
# INCLUDES= additional include directories
# LDFLAGS= additional linker options
# LIBS= additional library files
# compiler:
CXX=g++
LINKER=g++ -shared
#
# compiler options for release build:
#
C1=-c -O2 -I../../../ -fPIC
#
# compiler options for debug build:
#
C2=-c -g -I../../../ -fPIC
EOF
echo "" >> $out
echo "ALL_HEADER=$header" >> $out
echo "" >> $out
echo "all : $subdir $all_dep" >> $out
echo >> $out
echo "$subdir :" >> $out
echo " mkdir -p $subdir" >> $out
echo >> $out
echo "clean : $all_clean" >> $out
echo >> $out
echo "install : all" >> $out
cat $iout >> $out
echo >> $out
cat $tout >> $out
}
#
# locate source files:
#
. common.sh
#
# generate gcc makefile:
gcc_gen
gcc_shared="yes"
gcc_gen_shared
#
# remove tmep files;
rm -f $tout $iout

View File

@ -1,94 +0,0 @@
#
# auto generated makefile for generic compiler
#
# usage:
# make
# brings libraries up to date
# make clean
# deletes temporary object files (but not archives).
#
#
# the following environment variables are recognised:
# CXXFLAGS= extra compiler options - note applies to all build variants
# INCLUDES= additional include directories
# LDFLAGS= additional linker options
# LIBS= additional library files
# CXX= compiler to use
# LINKER= linker/archiver to use
# name of subdirectory to use for object/archive files:
DIRNAME=generic
#
# default compiler options for release build:
#
C1=-c -O2 -I../../../
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : $(DIRNAME) $(DIRNAME) $(DIRNAME)/boost_regex ./$(DIRNAME)/libboost_regex.so
$(DIRNAME) :
mkdir -p $(DIRNAME)
clean : boost_regex_clean
install : all
########################################################
#
# section for libboost_regex.so
#
########################################################
$(DIRNAME)/boost_regex/c_regex_traits.o: ../src/c_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/c_regex_traits.o $(C1) $(CXXFLAGS) ../src/c_regex_traits.cpp
$(DIRNAME)/boost_regex/c_regex_traits_common.o: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/c_regex_traits_common.o $(C1) $(CXXFLAGS) ../src/c_regex_traits_common.cpp
$(DIRNAME)/boost_regex/cpp_regex_traits.o: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/cpp_regex_traits.o $(C1) $(CXXFLAGS) ../src/cpp_regex_traits.cpp
$(DIRNAME)/boost_regex/cregex.o: ../src/cregex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/cregex.o $(C1) $(CXXFLAGS) ../src/cregex.cpp
$(DIRNAME)/boost_regex/fileiter.o: ../src/fileiter.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/fileiter.o $(C1) $(CXXFLAGS) ../src/fileiter.cpp
$(DIRNAME)/boost_regex/instances.o: ../src/instances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/instances.o $(C1) $(CXXFLAGS) ../src/instances.cpp
$(DIRNAME)/boost_regex/posix_api.o: ../src/posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/posix_api.o $(C1) $(CXXFLAGS) ../src/posix_api.cpp
$(DIRNAME)/boost_regex/regex.o: ../src/regex.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/regex.o $(C1) $(CXXFLAGS) ../src/regex.cpp
$(DIRNAME)/boost_regex/regex_debug.o: ../src/regex_debug.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/regex_debug.o $(C1) $(CXXFLAGS) ../src/regex_debug.cpp
$(DIRNAME)/boost_regex/regex_synch.o: ../src/regex_synch.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/regex_synch.o $(C1) $(CXXFLAGS) ../src/regex_synch.cpp
$(DIRNAME)/boost_regex/w32_regex_traits.o: ../src/w32_regex_traits.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/w32_regex_traits.o $(C1) $(CXXFLAGS) ../src/w32_regex_traits.cpp
$(DIRNAME)/boost_regex/wide_posix_api.o: ../src/wide_posix_api.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/wide_posix_api.o $(C1) $(CXXFLAGS) ../src/wide_posix_api.cpp
$(DIRNAME)/boost_regex/winstances.o: ../src/winstances.cpp $(ALL_HEADER)
$(CXX) $(INCLUDES) -o $(DIRNAME)/boost_regex/winstances.o $(C1) $(CXXFLAGS) ../src/winstances.cpp
$(DIRNAME)/boost_regex :
mkdir -p $(DIRNAME)/boost_regex
boost_regex_clean :
rm -f $(DIRNAME)/boost_regex/*.o
./$(DIRNAME)/libboost_regex.so : $(DIRNAME)/boost_regex/c_regex_traits.o $(DIRNAME)/boost_regex/c_regex_traits_common.o $(DIRNAME)/boost_regex/cpp_regex_traits.o $(DIRNAME)/boost_regex/cregex.o $(DIRNAME)/boost_regex/fileiter.o $(DIRNAME)/boost_regex/instances.o $(DIRNAME)/boost_regex/posix_api.o $(DIRNAME)/boost_regex/regex.o $(DIRNAME)/boost_regex/regex_debug.o $(DIRNAME)/boost_regex/regex_synch.o $(DIRNAME)/boost_regex/w32_regex_traits.o $(DIRNAME)/boost_regex/wide_posix_api.o $(DIRNAME)/boost_regex/winstances.o
$(LINKER) $(LDFLAGS) -o $(DIRNAME)/libboost_regex.so $(DIRNAME)/boost_regex/c_regex_traits.o $(DIRNAME)/boost_regex/c_regex_traits_common.o $(DIRNAME)/boost_regex/cpp_regex_traits.o $(DIRNAME)/boost_regex/cregex.o $(DIRNAME)/boost_regex/fileiter.o $(DIRNAME)/boost_regex/instances.o $(DIRNAME)/boost_regex/posix_api.o $(DIRNAME)/boost_regex/regex.o $(DIRNAME)/boost_regex/regex_debug.o $(DIRNAME)/boost_regex/regex_synch.o $(DIRNAME)/boost_regex/w32_regex_traits.o $(DIRNAME)/boost_regex/wide_posix_api.o $(DIRNAME)/boost_regex/winstances.o $(LIBS)

View File

@ -1,144 +0,0 @@
#! /bin/bash
libname=""
src=""
header=""
all_dep=""
# current makefile:
out=""
# temporary file:
tout=""
# install target temp file:
iout=""
# debug flag:
debug="no"
# compile options:
opts=""
# main output sub-directory:
subdir=""
# vcl flag:
use_vcl="yes"
#######################################################################
#
# section for generic compiler
#
#######################################################################
function gen_gen_lib()
{
all_dep="$all_dep $subdir $subdir/$libname ./$subdir/lib$libname.so"
#
# set up section comments:
cat >> $tout << EOF
########################################################
#
# section for lib$libname.so
#
########################################################
EOF
#
# process source files:
all_obj=""
for file in $src
do
obj=`echo "$file" | sed 's/.*src\/\(.*\)cpp/\1o/g'`
obj="$subdir/$libname/$obj"
all_obj="$all_obj $obj"
echo "$obj: $file \$(ALL_HEADER)" >> $tout
echo " \$(CXX) \$(INCLUDES) -o $obj $opts \$(CXXFLAGS) $file" >> $tout
echo "" >> $tout
done
#
# now for the directories for this library:
echo "$subdir/$libname : " >> $tout
echo " mkdir -p $subdir/$libname" >> $tout
echo "" >> $tout
#
# now for the clean options for this library:
all_clean="$all_clean $libname""_clean"
echo "$libname"_clean : >> $tout
echo " rm -f $subdir/$libname/*.o" >> $tout
echo "" >> $tout
#
# now for the main target for this library:
echo ./$subdir/lib$libname.so : $all_obj >> $tout
echo " \$(LINKER) \$(LDFLAGS) -o $subdir/lib$libname.so $all_obj \$(LIBS)" >> $tout
echo "" >> $tout
}
function gen_gen()
{
out="generic.mak"
tout="temp"
iout="temp_install"
subdir="\$(DIRNAME)"
all_dep=""
all_clean=""
echo > $out
echo > $tout
echo > $iout
libname="boost_regex"
opts="\$(C1)"
gen_gen_lib
cat > $out << EOF
#
# auto generated makefile for generic compiler
#
# usage:
# make
# brings libraries up to date
# make clean
# deletes temporary object files (but not archives).
#
#
# the following environment variables are recognised:
# CXXFLAGS= extra compiler options - note applies to all build variants
# INCLUDES= additional include directories
# LDFLAGS= additional linker options
# LIBS= additional library files
# CXX= compiler to use
# LINKER= linker/archiver to use
# name of subdirectory to use for object/archive files:
DIRNAME=generic
#
# default compiler options for release build:
#
C1=-c -O2 -I../../../
EOF
echo "" >> $out
echo "ALL_HEADER=$header" >> $out
echo "" >> $out
echo "all : $subdir $all_dep" >> $out
echo >> $out
echo "$subdir :" >> $out
echo " mkdir -p $subdir" >> $out
echo >> $out
echo "clean : $all_clean" >> $out
echo >> $out
echo "install : all" >> $out
cat $iout >> $out
echo >> $out
cat $tout >> $out
}
. common.sh
#
# generate generic makefile:
gen_gen
#
# remove tmep files;
rm -f $tout $iout

View File

@ -1,214 +0,0 @@
#! /bin/bash
libname=""
src=""
header=""
all_dep=""
# current makefile:
out=""
# temporary file:
tout=""
# install target temp file:
iout=""
# debug flag:
debug="no"
# compile options:
opts=""
# main output sub-directory:
subdir=""
# vcl flag:
use_vcl="yes"
#######################################################################
#
# section for Sun Forte 6.1 (5.1 compiler)
#
#######################################################################
function sun_gen_lib()
{
all_dep="$all_dep $subdir/$libname $subdir/$libname.a"
#
# set up section comments:
cat >> $tout << EOF
########################################################
#
# section for $libname.a
#
########################################################
EOF
#
# process source files:
all_obj=""
all_lib_obj=""
for file in $src
do
obj=`echo "$file" | sed 's/.*src\/\(.*\)cpp/\1o/g'`
obj="$subdir/$libname/$obj"
all_obj="$all_obj $obj"
all_lib_obj="$all_lib_obj $obj"
echo "$obj: $file \$(ALL_HEADER)" >> $tout
echo " CC -c \$(INCLUDES) $opts \$(CXXFLAGS) -o $obj $file" >> $tout
echo "" >> $tout
done
#
# now for the directories for this library:
echo "$subdir/$libname : " >> $tout
echo " mkdir -p $subdir/$libname" >> $tout
echo "" >> $tout
#
# now for the clean options for this library:
all_clean="$all_clean $libname""_clean"
echo "$libname"_clean : >> $tout
echo " rm -f $subdir/$libname/"'*.o' >> $tout
echo " rm -fr $subdir/$libname/\$(SUNWS_CACHE_NAME)" >> $tout
echo "" >> $tout
#
# now for the main target for this library:
echo $subdir/$libname.a : $all_obj >> $tout
echo " CC -xar \$(CXXFLAGS) \$(LDFLAGS) -o $subdir/$libname.a $all_lib_obj" >> $tout
echo "" >> $tout
}
function sun_gen_dll()
{
all_dep="$all_dep $subdir/shared_$libname $subdir/$libname.so"
#
# set up section comments:
cat >> $tout << EOF
########################################################
#
# section for $libname.so
#
########################################################
EOF
#
# process source files:
all_obj=""
for file in $src
do
obj=`echo "$file" | sed 's/.*src\/\(.*\)cpp/\1o/g'`
obj="$subdir/shared_$libname/$obj"
all_obj="$all_obj $obj"
echo "$obj: $file \$(ALL_HEADER)" >> $tout
echo " CC -c \$(INCLUDES) $opts \$(CXXFLAGS) -o $obj $file" >> $tout
echo "" >> $tout
done
#
# now for the directories for this library:
echo "$subdir/shared_$libname :" >> $tout
echo " mkdir -p $subdir/shared_$libname" >> $tout
echo "" >> $tout
#
# now for the clean options for this library:
all_clean="$all_clean $libname""_clean_shared"
echo "$libname"_clean_shared : >> $tout
echo " rm -f $subdir/shared_$libname/"'*.o' >> $tout
echo " rm -fr $subdir/shared_$libname/\$(SUNWS_CACHE_NAME)" >> $tout
echo "" >> $tout
#
# now for the main target for this library:
echo $subdir/$libname.so : $all_obj >> $tout
echo " CC $opts -G -o $subdir/$libname.so \$(LDFLAGS) $all_obj \$(LIBS)" >> $tout
echo "" >> $tout
}
function sun_gen()
{
tout="temp"
iout="temp_install"
all_dep="$subdir"
all_clean=""
echo > $out
echo > $tout
rm -f $iout
libname="libboost_regex\$(LIBSUFFIX)"
opts="-O2 -I../../../"
sun_gen_lib
libname="libboost_regex_mt\$(LIBSUFFIX)"
opts="-O2 -mt -I../../../"
sun_gen_lib
libname="libboost_regex\$(LIBSUFFIX)"
opts="-KPIC -O2 -I../../../"
sun_gen_dll
libname="libboost_regex_mt\$(LIBSUFFIX)"
opts="-KPIC -O2 -mt -I../../../"
sun_gen_dll
cat > $out << EOF
#
# auto generated makefile for Sun Forte 6.1
#
# usage:
# make
# brings libraries up to date
# make clean
# removes all temporary files.
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
LDFLAGS=
#
# add additional libraries to link to here:
#
LIBS=
#
# lib suffix string:
#
LIBSUFFIX=
#
# template cache path:
#
SUNWS_CACHE_NAME=SunWS_cache
EOF
echo "" >> $out
echo "ALL_HEADER=$header" >> $out
echo "" >> $out
echo "all : $all_dep" >> $out
echo >> $out
echo "clean : $all_clean" >> $out
echo >> $out
echo "install : all" >> $out
# cat $iout >> $out
echo >> $out
echo $subdir : >> $out
echo " mkdir -p $subdir" >> $out
echo "" >> $out
cat $tout >> $out
}
. common.sh
#
# generate Sun 6.1 makefile:
out="sunpro.mak"
subdir="sunpro"
sun_gen
#
# remove tmep files;
rm -f $tout $iout

View File

@ -1,264 +0,0 @@
#
# auto generated makefile for Sun Forte 6.1
#
# usage:
# make
# brings libraries up to date
# make clean
# removes all temporary files.
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
LDFLAGS=
#
# add additional libraries to link to here:
#
LIBS=
#
# lib suffix string:
#
LIBSUFFIX=
#
# template cache path:
#
SUNWS_CACHE_NAME=SunWS_cache
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : sunpro sunpro/libboost_regex$(LIBSUFFIX) sunpro/libboost_regex$(LIBSUFFIX).a sunpro/libboost_regex_mt$(LIBSUFFIX) sunpro/libboost_regex_mt$(LIBSUFFIX).a sunpro/shared_libboost_regex$(LIBSUFFIX) sunpro/libboost_regex$(LIBSUFFIX).so sunpro/shared_libboost_regex_mt$(LIBSUFFIX) sunpro/libboost_regex_mt$(LIBSUFFIX).so
clean : libboost_regex$(LIBSUFFIX)_clean libboost_regex_mt$(LIBSUFFIX)_clean libboost_regex$(LIBSUFFIX)_clean_shared libboost_regex_mt$(LIBSUFFIX)_clean_shared
install : all
sunpro :
mkdir -p sunpro
########################################################
#
# section for libboost_regex$(LIBSUFFIX).a
#
########################################################
sunpro/libboost_regex$(LIBSUFFIX)/c_regex_traits.o: ../src/c_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/c_regex_traits.o ../src/c_regex_traits.cpp
sunpro/libboost_regex$(LIBSUFFIX)/c_regex_traits_common.o: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/c_regex_traits_common.o ../src/c_regex_traits_common.cpp
sunpro/libboost_regex$(LIBSUFFIX)/cpp_regex_traits.o: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/cpp_regex_traits.o ../src/cpp_regex_traits.cpp
sunpro/libboost_regex$(LIBSUFFIX)/cregex.o: ../src/cregex.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/cregex.o ../src/cregex.cpp
sunpro/libboost_regex$(LIBSUFFIX)/fileiter.o: ../src/fileiter.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/fileiter.o ../src/fileiter.cpp
sunpro/libboost_regex$(LIBSUFFIX)/instances.o: ../src/instances.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/instances.o ../src/instances.cpp
sunpro/libboost_regex$(LIBSUFFIX)/posix_api.o: ../src/posix_api.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/posix_api.o ../src/posix_api.cpp
sunpro/libboost_regex$(LIBSUFFIX)/regex.o: ../src/regex.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/regex.o ../src/regex.cpp
sunpro/libboost_regex$(LIBSUFFIX)/regex_debug.o: ../src/regex_debug.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/regex_debug.o ../src/regex_debug.cpp
sunpro/libboost_regex$(LIBSUFFIX)/regex_synch.o: ../src/regex_synch.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/regex_synch.o ../src/regex_synch.cpp
sunpro/libboost_regex$(LIBSUFFIX)/w32_regex_traits.o: ../src/w32_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/w32_regex_traits.o ../src/w32_regex_traits.cpp
sunpro/libboost_regex$(LIBSUFFIX)/wide_posix_api.o: ../src/wide_posix_api.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/wide_posix_api.o ../src/wide_posix_api.cpp
sunpro/libboost_regex$(LIBSUFFIX)/winstances.o: ../src/winstances.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX)/winstances.o ../src/winstances.cpp
sunpro/libboost_regex$(LIBSUFFIX) :
mkdir -p sunpro/libboost_regex$(LIBSUFFIX)
libboost_regex$(LIBSUFFIX)_clean :
rm -f sunpro/libboost_regex$(LIBSUFFIX)/*.o
rm -fr sunpro/libboost_regex$(LIBSUFFIX)/$(SUNWS_CACHE_NAME)
sunpro/libboost_regex$(LIBSUFFIX).a : sunpro/libboost_regex$(LIBSUFFIX)/c_regex_traits.o sunpro/libboost_regex$(LIBSUFFIX)/c_regex_traits_common.o sunpro/libboost_regex$(LIBSUFFIX)/cpp_regex_traits.o sunpro/libboost_regex$(LIBSUFFIX)/cregex.o sunpro/libboost_regex$(LIBSUFFIX)/fileiter.o sunpro/libboost_regex$(LIBSUFFIX)/instances.o sunpro/libboost_regex$(LIBSUFFIX)/posix_api.o sunpro/libboost_regex$(LIBSUFFIX)/regex.o sunpro/libboost_regex$(LIBSUFFIX)/regex_debug.o sunpro/libboost_regex$(LIBSUFFIX)/regex_synch.o sunpro/libboost_regex$(LIBSUFFIX)/w32_regex_traits.o sunpro/libboost_regex$(LIBSUFFIX)/wide_posix_api.o sunpro/libboost_regex$(LIBSUFFIX)/winstances.o
CC -xar $(CXXFLAGS) $(LDFLAGS) -o sunpro/libboost_regex$(LIBSUFFIX).a sunpro/libboost_regex$(LIBSUFFIX)/c_regex_traits.o sunpro/libboost_regex$(LIBSUFFIX)/c_regex_traits_common.o sunpro/libboost_regex$(LIBSUFFIX)/cpp_regex_traits.o sunpro/libboost_regex$(LIBSUFFIX)/cregex.o sunpro/libboost_regex$(LIBSUFFIX)/fileiter.o sunpro/libboost_regex$(LIBSUFFIX)/instances.o sunpro/libboost_regex$(LIBSUFFIX)/posix_api.o sunpro/libboost_regex$(LIBSUFFIX)/regex.o sunpro/libboost_regex$(LIBSUFFIX)/regex_debug.o sunpro/libboost_regex$(LIBSUFFIX)/regex_synch.o sunpro/libboost_regex$(LIBSUFFIX)/w32_regex_traits.o sunpro/libboost_regex$(LIBSUFFIX)/wide_posix_api.o sunpro/libboost_regex$(LIBSUFFIX)/winstances.o
########################################################
#
# section for libboost_regex_mt$(LIBSUFFIX).a
#
########################################################
sunpro/libboost_regex_mt$(LIBSUFFIX)/c_regex_traits.o: ../src/c_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/c_regex_traits.o ../src/c_regex_traits.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/c_regex_traits_common.o: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/c_regex_traits_common.o ../src/c_regex_traits_common.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/cpp_regex_traits.o: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/cpp_regex_traits.o ../src/cpp_regex_traits.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/cregex.o: ../src/cregex.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/cregex.o ../src/cregex.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/fileiter.o: ../src/fileiter.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/fileiter.o ../src/fileiter.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/instances.o: ../src/instances.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/instances.o ../src/instances.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/posix_api.o: ../src/posix_api.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/posix_api.o ../src/posix_api.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/regex.o: ../src/regex.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/regex.o ../src/regex.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/regex_debug.o: ../src/regex_debug.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/regex_debug.o ../src/regex_debug.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/regex_synch.o: ../src/regex_synch.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/regex_synch.o ../src/regex_synch.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/w32_regex_traits.o: ../src/w32_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/w32_regex_traits.o ../src/w32_regex_traits.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/wide_posix_api.o: ../src/wide_posix_api.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/wide_posix_api.o ../src/wide_posix_api.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX)/winstances.o: ../src/winstances.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX)/winstances.o ../src/winstances.cpp
sunpro/libboost_regex_mt$(LIBSUFFIX) :
mkdir -p sunpro/libboost_regex_mt$(LIBSUFFIX)
libboost_regex_mt$(LIBSUFFIX)_clean :
rm -f sunpro/libboost_regex_mt$(LIBSUFFIX)/*.o
rm -fr sunpro/libboost_regex_mt$(LIBSUFFIX)/$(SUNWS_CACHE_NAME)
sunpro/libboost_regex_mt$(LIBSUFFIX).a : sunpro/libboost_regex_mt$(LIBSUFFIX)/c_regex_traits.o sunpro/libboost_regex_mt$(LIBSUFFIX)/c_regex_traits_common.o sunpro/libboost_regex_mt$(LIBSUFFIX)/cpp_regex_traits.o sunpro/libboost_regex_mt$(LIBSUFFIX)/cregex.o sunpro/libboost_regex_mt$(LIBSUFFIX)/fileiter.o sunpro/libboost_regex_mt$(LIBSUFFIX)/instances.o sunpro/libboost_regex_mt$(LIBSUFFIX)/posix_api.o sunpro/libboost_regex_mt$(LIBSUFFIX)/regex.o sunpro/libboost_regex_mt$(LIBSUFFIX)/regex_debug.o sunpro/libboost_regex_mt$(LIBSUFFIX)/regex_synch.o sunpro/libboost_regex_mt$(LIBSUFFIX)/w32_regex_traits.o sunpro/libboost_regex_mt$(LIBSUFFIX)/wide_posix_api.o sunpro/libboost_regex_mt$(LIBSUFFIX)/winstances.o
CC -xar $(CXXFLAGS) $(LDFLAGS) -o sunpro/libboost_regex_mt$(LIBSUFFIX).a sunpro/libboost_regex_mt$(LIBSUFFIX)/c_regex_traits.o sunpro/libboost_regex_mt$(LIBSUFFIX)/c_regex_traits_common.o sunpro/libboost_regex_mt$(LIBSUFFIX)/cpp_regex_traits.o sunpro/libboost_regex_mt$(LIBSUFFIX)/cregex.o sunpro/libboost_regex_mt$(LIBSUFFIX)/fileiter.o sunpro/libboost_regex_mt$(LIBSUFFIX)/instances.o sunpro/libboost_regex_mt$(LIBSUFFIX)/posix_api.o sunpro/libboost_regex_mt$(LIBSUFFIX)/regex.o sunpro/libboost_regex_mt$(LIBSUFFIX)/regex_debug.o sunpro/libboost_regex_mt$(LIBSUFFIX)/regex_synch.o sunpro/libboost_regex_mt$(LIBSUFFIX)/w32_regex_traits.o sunpro/libboost_regex_mt$(LIBSUFFIX)/wide_posix_api.o sunpro/libboost_regex_mt$(LIBSUFFIX)/winstances.o
########################################################
#
# section for libboost_regex$(LIBSUFFIX).so
#
########################################################
sunpro/shared_libboost_regex$(LIBSUFFIX)/c_regex_traits.o: ../src/c_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/c_regex_traits.o ../src/c_regex_traits.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/c_regex_traits_common.o: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/c_regex_traits_common.o ../src/c_regex_traits_common.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/cpp_regex_traits.o: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/cpp_regex_traits.o ../src/cpp_regex_traits.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/cregex.o: ../src/cregex.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/cregex.o ../src/cregex.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/fileiter.o: ../src/fileiter.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/fileiter.o ../src/fileiter.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/instances.o: ../src/instances.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/instances.o ../src/instances.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/posix_api.o: ../src/posix_api.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/posix_api.o ../src/posix_api.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/regex.o: ../src/regex.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/regex.o ../src/regex.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/regex_debug.o: ../src/regex_debug.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/regex_debug.o ../src/regex_debug.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/regex_synch.o: ../src/regex_synch.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/regex_synch.o ../src/regex_synch.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/w32_regex_traits.o: ../src/w32_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/w32_regex_traits.o ../src/w32_regex_traits.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/wide_posix_api.o: ../src/wide_posix_api.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/wide_posix_api.o ../src/wide_posix_api.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX)/winstances.o: ../src/winstances.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex$(LIBSUFFIX)/winstances.o ../src/winstances.cpp
sunpro/shared_libboost_regex$(LIBSUFFIX) :
mkdir -p sunpro/shared_libboost_regex$(LIBSUFFIX)
libboost_regex$(LIBSUFFIX)_clean_shared :
rm -f sunpro/shared_libboost_regex$(LIBSUFFIX)/*.o
rm -fr sunpro/shared_libboost_regex$(LIBSUFFIX)/$(SUNWS_CACHE_NAME)
sunpro/libboost_regex$(LIBSUFFIX).so : sunpro/shared_libboost_regex$(LIBSUFFIX)/c_regex_traits.o sunpro/shared_libboost_regex$(LIBSUFFIX)/c_regex_traits_common.o sunpro/shared_libboost_regex$(LIBSUFFIX)/cpp_regex_traits.o sunpro/shared_libboost_regex$(LIBSUFFIX)/cregex.o sunpro/shared_libboost_regex$(LIBSUFFIX)/fileiter.o sunpro/shared_libboost_regex$(LIBSUFFIX)/instances.o sunpro/shared_libboost_regex$(LIBSUFFIX)/posix_api.o sunpro/shared_libboost_regex$(LIBSUFFIX)/regex.o sunpro/shared_libboost_regex$(LIBSUFFIX)/regex_debug.o sunpro/shared_libboost_regex$(LIBSUFFIX)/regex_synch.o sunpro/shared_libboost_regex$(LIBSUFFIX)/w32_regex_traits.o sunpro/shared_libboost_regex$(LIBSUFFIX)/wide_posix_api.o sunpro/shared_libboost_regex$(LIBSUFFIX)/winstances.o
CC -KPIC -O2 -I../../../ -G -o sunpro/libboost_regex$(LIBSUFFIX).so $(LDFLAGS) sunpro/shared_libboost_regex$(LIBSUFFIX)/c_regex_traits.o sunpro/shared_libboost_regex$(LIBSUFFIX)/c_regex_traits_common.o sunpro/shared_libboost_regex$(LIBSUFFIX)/cpp_regex_traits.o sunpro/shared_libboost_regex$(LIBSUFFIX)/cregex.o sunpro/shared_libboost_regex$(LIBSUFFIX)/fileiter.o sunpro/shared_libboost_regex$(LIBSUFFIX)/instances.o sunpro/shared_libboost_regex$(LIBSUFFIX)/posix_api.o sunpro/shared_libboost_regex$(LIBSUFFIX)/regex.o sunpro/shared_libboost_regex$(LIBSUFFIX)/regex_debug.o sunpro/shared_libboost_regex$(LIBSUFFIX)/regex_synch.o sunpro/shared_libboost_regex$(LIBSUFFIX)/w32_regex_traits.o sunpro/shared_libboost_regex$(LIBSUFFIX)/wide_posix_api.o sunpro/shared_libboost_regex$(LIBSUFFIX)/winstances.o $(LIBS)
########################################################
#
# section for libboost_regex_mt$(LIBSUFFIX).so
#
########################################################
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/c_regex_traits.o: ../src/c_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/c_regex_traits.o ../src/c_regex_traits.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/c_regex_traits_common.o: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/c_regex_traits_common.o ../src/c_regex_traits_common.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/cpp_regex_traits.o: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/cpp_regex_traits.o ../src/cpp_regex_traits.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/cregex.o: ../src/cregex.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/cregex.o ../src/cregex.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/fileiter.o: ../src/fileiter.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/fileiter.o ../src/fileiter.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/instances.o: ../src/instances.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/instances.o ../src/instances.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/posix_api.o: ../src/posix_api.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/posix_api.o ../src/posix_api.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex.o: ../src/regex.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex.o ../src/regex.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex_debug.o: ../src/regex_debug.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex_debug.o ../src/regex_debug.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex_synch.o: ../src/regex_synch.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex_synch.o ../src/regex_synch.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/w32_regex_traits.o: ../src/w32_regex_traits.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/w32_regex_traits.o ../src/w32_regex_traits.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/wide_posix_api.o: ../src/wide_posix_api.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/wide_posix_api.o ../src/wide_posix_api.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/winstances.o: ../src/winstances.cpp $(ALL_HEADER)
CC -c $(INCLUDES) -KPIC -O2 -mt -I../../../ $(CXXFLAGS) -o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/winstances.o ../src/winstances.cpp
sunpro/shared_libboost_regex_mt$(LIBSUFFIX) :
mkdir -p sunpro/shared_libboost_regex_mt$(LIBSUFFIX)
libboost_regex_mt$(LIBSUFFIX)_clean_shared :
rm -f sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/*.o
rm -fr sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/$(SUNWS_CACHE_NAME)
sunpro/libboost_regex_mt$(LIBSUFFIX).so : sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/c_regex_traits.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/c_regex_traits_common.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/cpp_regex_traits.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/cregex.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/fileiter.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/instances.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/posix_api.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex_debug.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex_synch.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/w32_regex_traits.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/wide_posix_api.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/winstances.o
CC -KPIC -O2 -mt -I../../../ -G -o sunpro/libboost_regex_mt$(LIBSUFFIX).so $(LDFLAGS) sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/c_regex_traits.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/c_regex_traits_common.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/cpp_regex_traits.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/cregex.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/fileiter.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/instances.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/posix_api.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex_debug.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/regex_synch.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/w32_regex_traits.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/wide_posix_api.o sunpro/shared_libboost_regex_mt$(LIBSUFFIX)/winstances.o $(LIBS)

View File

@ -1,404 +0,0 @@
#
# auto generated makefile for VC6+STLPort
#
# usage:
# make
# brings libraries up to date
# make install
# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
#
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
XLFLAGS=
#
# add additional static-library creation flags here:
#
XSFLAGS=
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(MSVCDIR)" == ""
!ERROR Variable MSVCDIR not set.
!ENDIF
!IF "$(STLPORT_PATH)" == ""
!ERROR Variable STLPORT_PATH not set.
!ENDIF
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : main_dir libboost_regex-vc6-mt-sp-1_31_dir ./vc6-stlport/libboost_regex-vc6-mt-sp-1_31.lib boost_regex-vc6-mt-p-1_31_dir ./vc6-stlport/boost_regex-vc6-mt-p-1_31.lib libboost_regex-vc6-mt-p-1_31_dir ./vc6-stlport/libboost_regex-vc6-mt-p-1_31.lib boost_regex-vc6-mt-gdp-1_31_dir ./vc6-stlport/boost_regex-vc6-mt-gdp-1_31.lib libboost_regex-vc6-mt-sgdp-1_31_dir ./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.lib libboost_regex-vc6-mt-gdp-1_31_dir ./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31.lib
clean : libboost_regex-vc6-mt-sp-1_31_clean boost_regex-vc6-mt-p-1_31_clean libboost_regex-vc6-mt-p-1_31_clean boost_regex-vc6-mt-gdp-1_31_clean libboost_regex-vc6-mt-sgdp-1_31_clean libboost_regex-vc6-mt-gdp-1_31_clean
install : stlport_check all
copy vc6-stlport\libboost_regex-vc6-mt-sp-1_31.lib "$(MSVCDIR)\lib"
copy vc6-stlport\boost_regex-vc6-mt-p-1_31.lib "$(MSVCDIR)\lib"
copy vc6-stlport\boost_regex-vc6-mt-p-1_31.dll "$(MSVCDIR)\bin"
copy vc6-stlport\libboost_regex-vc6-mt-p-1_31.lib "$(MSVCDIR)\lib"
copy vc6-stlport\boost_regex-vc6-mt-gdp-1_31.lib "$(MSVCDIR)\lib"
copy vc6-stlport\boost_regex-vc6-mt-gdp-1_31.dll "$(MSVCDIR)\bin"
copy vc6-stlport\boost_regex-vc6-mt-gdp-1_31.pdb "$(MSVCDIR)\lib"
copy vc6-stlport\libboost_regex-vc6-mt-sgdp-1_31.lib "$(MSVCDIR)\lib"
copy vc6-stlport\libboost_regex-vc6-mt-sgdp-1_31.pdb "$(MSVCDIR)\lib"
copy vc6-stlport\libboost_regex-vc6-mt-gdp-1_31.lib "$(MSVCDIR)\lib"
copy vc6-stlport\libboost_regex-vc6-mt-gdp-1_31.pdb "$(MSVCDIR)\lib"
main_dir :
@if not exist "vc6-stlport\$(NULL)" mkdir vc6-stlport
stlport_check : $(STLPORT_PATH)\stlport\string
echo
########################################################
#
# section for libboost_regex-vc6-mt-sp-1_31.lib
#
########################################################
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/c_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/c_regex_traits_common.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/cpp_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/cregex.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/fileiter.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/instances.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/posix_api.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/regex.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/regex_debug.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/regex_synch.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/w32_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/wide_posix_api.cpp
vc6-stlport/libboost_regex-vc6-mt-sp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sp-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-mt-sp-1_31_dir :
@if not exist "vc6-stlport\libboost_regex-vc6-mt-sp-1_31\$(NULL)" mkdir vc6-stlport\libboost_regex-vc6-mt-sp-1_31
libboost_regex-vc6-mt-sp-1_31_clean :
del vc6-stlport\libboost_regex-vc6-mt-sp-1_31\*.obj
del vc6-stlport\libboost_regex-vc6-mt-sp-1_31\*.idb
del vc6-stlport\libboost_regex-vc6-mt-sp-1_31\*.exp
del vc6-stlport\libboost_regex-vc6-mt-sp-1_31\*.pch
./vc6-stlport/libboost_regex-vc6-mt-sp-1_31.lib : vc6-stlport/libboost_regex-vc6-mt-sp-1_31/c_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/c_regex_traits_common.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/cpp_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/cregex.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/fileiter.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/instances.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/posix_api.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/regex.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/regex_debug.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/regex_synch.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/w32_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/wide_posix_api.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/winstances.obj
link -lib /nologo /out:vc6-stlport/libboost_regex-vc6-mt-sp-1_31.lib $(XSFLAGS) vc6-stlport/libboost_regex-vc6-mt-sp-1_31/c_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/c_regex_traits_common.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/cpp_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/cregex.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/fileiter.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/instances.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/posix_api.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/regex.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/regex_debug.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/regex_synch.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/w32_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/wide_posix_api.obj vc6-stlport/libboost_regex-vc6-mt-sp-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc6-mt-p-1_31.lib
#
########################################################
vc6-stlport/boost_regex-vc6-mt-p-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/c_regex_traits.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/c_regex_traits_common.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/cpp_regex_traits.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/cregex.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/fileiter.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/instances.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/posix_api.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/regex.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/regex_debug.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/regex_synch.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/w32_regex_traits.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/wide_posix_api.cpp
vc6-stlport/boost_regex-vc6-mt-p-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-p-1_31.pdb ../src/winstances.cpp
boost_regex-vc6-mt-p-1_31_dir :
@if not exist "vc6-stlport\boost_regex-vc6-mt-p-1_31\$(NULL)" mkdir vc6-stlport\boost_regex-vc6-mt-p-1_31
boost_regex-vc6-mt-p-1_31_clean :
del vc6-stlport\boost_regex-vc6-mt-p-1_31\*.obj
del vc6-stlport\boost_regex-vc6-mt-p-1_31\*.idb
del vc6-stlport\boost_regex-vc6-mt-p-1_31\*.exp
del vc6-stlport\boost_regex-vc6-mt-p-1_31\*.pch
./vc6-stlport/boost_regex-vc6-mt-p-1_31.lib : vc6-stlport/boost_regex-vc6-mt-p-1_31/c_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/c_regex_traits_common.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/cpp_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/cregex.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/fileiter.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/instances.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/posix_api.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/regex.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/regex_debug.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/regex_synch.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/w32_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/wide_posix_api.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc6-stlport/boost_regex-vc6-mt-p-1_31.pdb" /debug /machine:I386 /out:"vc6-stlport/boost_regex-vc6-mt-p-1_31.dll" /implib:"vc6-stlport/boost_regex-vc6-mt-p-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc6-stlport/boost_regex-vc6-mt-p-1_31/c_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/c_regex_traits_common.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/cpp_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/cregex.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/fileiter.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/instances.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/posix_api.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/regex.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/regex_debug.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/regex_synch.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/w32_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/wide_posix_api.obj vc6-stlport/boost_regex-vc6-mt-p-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc6-mt-p-1_31.lib
#
########################################################
vc6-stlport/libboost_regex-vc6-mt-p-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/c_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/c_regex_traits_common.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/cpp_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/cregex.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/fileiter.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/instances.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/posix_api.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/regex.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/regex_debug.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/regex_synch.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/w32_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/wide_posix_api.cpp
vc6-stlport/libboost_regex-vc6-mt-p-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-p-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-p-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-mt-p-1_31_dir :
@if not exist "vc6-stlport\libboost_regex-vc6-mt-p-1_31\$(NULL)" mkdir vc6-stlport\libboost_regex-vc6-mt-p-1_31
libboost_regex-vc6-mt-p-1_31_clean :
del vc6-stlport\libboost_regex-vc6-mt-p-1_31\*.obj
del vc6-stlport\libboost_regex-vc6-mt-p-1_31\*.idb
del vc6-stlport\libboost_regex-vc6-mt-p-1_31\*.exp
del vc6-stlport\libboost_regex-vc6-mt-p-1_31\*.pch
./vc6-stlport/libboost_regex-vc6-mt-p-1_31.lib : vc6-stlport/libboost_regex-vc6-mt-p-1_31/c_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/c_regex_traits_common.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/cpp_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/cregex.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/fileiter.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/instances.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/posix_api.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/regex.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/regex_debug.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/regex_synch.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/w32_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/wide_posix_api.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/winstances.obj
link -lib /nologo /out:vc6-stlport/libboost_regex-vc6-mt-p-1_31.lib $(XSFLAGS) vc6-stlport/libboost_regex-vc6-mt-p-1_31/c_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/c_regex_traits_common.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/cpp_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/cregex.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/fileiter.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/instances.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/posix_api.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/regex.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/regex_debug.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/regex_synch.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/w32_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/wide_posix_api.obj vc6-stlport/libboost_regex-vc6-mt-p-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc6-mt-gdp-1_31.lib
#
########################################################
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/c_regex_traits.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/c_regex_traits_common.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/cpp_regex_traits.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/cregex.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/fileiter.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/instances.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/posix_api.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/regex.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/regex_debug.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/regex_synch.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/w32_regex_traits.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/wide_posix_api.cpp
vc6-stlport/boost_regex-vc6-mt-gdp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/boost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb ../src/winstances.cpp
boost_regex-vc6-mt-gdp-1_31_dir :
@if not exist "vc6-stlport\boost_regex-vc6-mt-gdp-1_31\$(NULL)" mkdir vc6-stlport\boost_regex-vc6-mt-gdp-1_31
boost_regex-vc6-mt-gdp-1_31_clean :
del vc6-stlport\boost_regex-vc6-mt-gdp-1_31\*.obj
del vc6-stlport\boost_regex-vc6-mt-gdp-1_31\*.idb
del vc6-stlport\boost_regex-vc6-mt-gdp-1_31\*.exp
del vc6-stlport\boost_regex-vc6-mt-gdp-1_31\*.pch
./vc6-stlport/boost_regex-vc6-mt-gdp-1_31.lib : vc6-stlport/boost_regex-vc6-mt-gdp-1_31/c_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/c_regex_traits_common.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/cpp_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/cregex.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/fileiter.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/instances.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/posix_api.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/regex.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/regex_debug.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/regex_synch.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/w32_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/wide_posix_api.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc6-stlport/boost_regex-vc6-mt-gdp-1_31.pdb" /debug /machine:I386 /out:"vc6-stlport/boost_regex-vc6-mt-gdp-1_31.dll" /implib:"vc6-stlport/boost_regex-vc6-mt-gdp-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc6-stlport/boost_regex-vc6-mt-gdp-1_31/c_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/c_regex_traits_common.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/cpp_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/cregex.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/fileiter.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/instances.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/posix_api.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/regex.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/regex_debug.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/regex_synch.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/w32_regex_traits.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/wide_posix_api.obj vc6-stlport/boost_regex-vc6-mt-gdp-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc6-mt-sgdp-1_31.lib
#
########################################################
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/c_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/c_regex_traits_common.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/cpp_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/cregex.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/fileiter.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/instances.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/posix_api.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/regex.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/regex_debug.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/regex_synch.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/w32_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/wide_posix_api.cpp
vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-mt-sgdp-1_31_dir :
@if not exist "vc6-stlport\libboost_regex-vc6-mt-sgdp-1_31\$(NULL)" mkdir vc6-stlport\libboost_regex-vc6-mt-sgdp-1_31
libboost_regex-vc6-mt-sgdp-1_31_clean :
del vc6-stlport\libboost_regex-vc6-mt-sgdp-1_31\*.obj
del vc6-stlport\libboost_regex-vc6-mt-sgdp-1_31\*.idb
del vc6-stlport\libboost_regex-vc6-mt-sgdp-1_31\*.exp
del vc6-stlport\libboost_regex-vc6-mt-sgdp-1_31\*.pch
./vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.lib : vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/c_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/c_regex_traits_common.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/cpp_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/cregex.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/fileiter.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/instances.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/posix_api.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/regex.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/regex_debug.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/regex_synch.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/w32_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/wide_posix_api.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/winstances.obj
link -lib /nologo /out:vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31.lib $(XSFLAGS) vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/c_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/c_regex_traits_common.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/cpp_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/cregex.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/fileiter.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/instances.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/posix_api.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/regex.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/regex_debug.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/regex_synch.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/w32_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/wide_posix_api.obj vc6-stlport/libboost_regex-vc6-mt-sgdp-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc6-mt-gdp-1_31.lib
#
########################################################
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/c_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/c_regex_traits_common.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/cpp_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/cregex.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/fileiter.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/instances.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/posix_api.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/regex.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/regex_debug.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/regex_synch.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/w32_regex_traits.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/wide_posix_api.cpp
vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /c $(CXXFLAGS) -Y- -Fo./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/ -Fdvc6-stlport/libboost_regex-vc6-mt-gdp-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-mt-gdp-1_31_dir :
@if not exist "vc6-stlport\libboost_regex-vc6-mt-gdp-1_31\$(NULL)" mkdir vc6-stlport\libboost_regex-vc6-mt-gdp-1_31
libboost_regex-vc6-mt-gdp-1_31_clean :
del vc6-stlport\libboost_regex-vc6-mt-gdp-1_31\*.obj
del vc6-stlport\libboost_regex-vc6-mt-gdp-1_31\*.idb
del vc6-stlport\libboost_regex-vc6-mt-gdp-1_31\*.exp
del vc6-stlport\libboost_regex-vc6-mt-gdp-1_31\*.pch
./vc6-stlport/libboost_regex-vc6-mt-gdp-1_31.lib : vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/c_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/c_regex_traits_common.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/cpp_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/cregex.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/fileiter.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/instances.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/posix_api.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/regex.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/regex_debug.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/regex_synch.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/w32_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/wide_posix_api.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/winstances.obj
link -lib /nologo /out:vc6-stlport/libboost_regex-vc6-mt-gdp-1_31.lib $(XSFLAGS) vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/c_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/c_regex_traits_common.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/cpp_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/cregex.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/fileiter.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/instances.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/posix_api.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/regex.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/regex_debug.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/regex_synch.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/w32_regex_traits.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/wide_posix_api.obj vc6-stlport/libboost_regex-vc6-mt-gdp-1_31/winstances.obj

View File

@ -1,512 +0,0 @@
#
# auto generated makefile for VC6 compiler
#
# usage:
# make
# brings libraries up to date
# make install
# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
#
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
XLFLAGS=
#
# add additional static-library creation flags here:
#
XSFLAGS=
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(MSVCDIR)" == ""
!ERROR Variable MSVCDIR not set.
!ENDIF
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : main_dir libboost_regex-vc6-s-1_31_dir ./vc6/libboost_regex-vc6-s-1_31.lib libboost_regex-vc6-mt-s-1_31_dir ./vc6/libboost_regex-vc6-mt-s-1_31.lib libboost_regex-vc6-sgd-1_31_dir ./vc6/libboost_regex-vc6-sgd-1_31.lib libboost_regex-vc6-mt-sgd-1_31_dir ./vc6/libboost_regex-vc6-mt-sgd-1_31.lib boost_regex-vc6-mt-gd-1_31_dir ./vc6/boost_regex-vc6-mt-gd-1_31.lib boost_regex-vc6-mt-1_31_dir ./vc6/boost_regex-vc6-mt-1_31.lib libboost_regex-vc6-mt-1_31_dir ./vc6/libboost_regex-vc6-mt-1_31.lib libboost_regex-vc6-mt-gd-1_31_dir ./vc6/libboost_regex-vc6-mt-gd-1_31.lib
clean : libboost_regex-vc6-s-1_31_clean libboost_regex-vc6-mt-s-1_31_clean libboost_regex-vc6-sgd-1_31_clean libboost_regex-vc6-mt-sgd-1_31_clean boost_regex-vc6-mt-gd-1_31_clean boost_regex-vc6-mt-1_31_clean libboost_regex-vc6-mt-1_31_clean libboost_regex-vc6-mt-gd-1_31_clean
install : all
copy vc6\libboost_regex-vc6-s-1_31.lib "$(MSVCDIR)\lib"
copy vc6\libboost_regex-vc6-mt-s-1_31.lib "$(MSVCDIR)\lib"
copy vc6\libboost_regex-vc6-sgd-1_31.lib "$(MSVCDIR)\lib"
copy vc6\libboost_regex-vc6-sgd-1_31.pdb "$(MSVCDIR)\lib"
copy vc6\libboost_regex-vc6-mt-sgd-1_31.lib "$(MSVCDIR)\lib"
copy vc6\libboost_regex-vc6-mt-sgd-1_31.pdb "$(MSVCDIR)\lib"
copy vc6\boost_regex-vc6-mt-gd-1_31.lib "$(MSVCDIR)\lib"
copy vc6\boost_regex-vc6-mt-gd-1_31.dll "$(MSVCDIR)\bin"
copy vc6\boost_regex-vc6-mt-gd-1_31.pdb "$(MSVCDIR)\lib"
copy vc6\boost_regex-vc6-mt-1_31.lib "$(MSVCDIR)\lib"
copy vc6\boost_regex-vc6-mt-1_31.dll "$(MSVCDIR)\bin"
copy vc6\libboost_regex-vc6-mt-1_31.lib "$(MSVCDIR)\lib"
copy vc6\libboost_regex-vc6-mt-gd-1_31.lib "$(MSVCDIR)\lib"
copy vc6\libboost_regex-vc6-mt-gd-1_31.pdb "$(MSVCDIR)\lib"
main_dir :
@if not exist "vc6\$(NULL)" mkdir vc6
########################################################
#
# section for libboost_regex-vc6-s-1_31.lib
#
########################################################
vc6/libboost_regex-vc6-s-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/c_regex_traits.cpp
vc6/libboost_regex-vc6-s-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/c_regex_traits_common.cpp
vc6/libboost_regex-vc6-s-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/cpp_regex_traits.cpp
vc6/libboost_regex-vc6-s-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/cregex.cpp
vc6/libboost_regex-vc6-s-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/fileiter.cpp
vc6/libboost_regex-vc6-s-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/instances.cpp
vc6/libboost_regex-vc6-s-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/posix_api.cpp
vc6/libboost_regex-vc6-s-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/regex.cpp
vc6/libboost_regex-vc6-s-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/regex_debug.cpp
vc6/libboost_regex-vc6-s-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/regex_synch.cpp
vc6/libboost_regex-vc6-s-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/w32_regex_traits.cpp
vc6/libboost_regex-vc6-s-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/wide_posix_api.cpp
vc6/libboost_regex-vc6-s-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-s-1_31/ -Fdvc6/libboost_regex-vc6-s-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-s-1_31_dir :
@if not exist "vc6\libboost_regex-vc6-s-1_31\$(NULL)" mkdir vc6\libboost_regex-vc6-s-1_31
libboost_regex-vc6-s-1_31_clean :
del vc6\libboost_regex-vc6-s-1_31\*.obj
del vc6\libboost_regex-vc6-s-1_31\*.idb
del vc6\libboost_regex-vc6-s-1_31\*.exp
del vc6\libboost_regex-vc6-s-1_31\*.pch
./vc6/libboost_regex-vc6-s-1_31.lib : vc6/libboost_regex-vc6-s-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-s-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-s-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-s-1_31/cregex.obj vc6/libboost_regex-vc6-s-1_31/fileiter.obj vc6/libboost_regex-vc6-s-1_31/instances.obj vc6/libboost_regex-vc6-s-1_31/posix_api.obj vc6/libboost_regex-vc6-s-1_31/regex.obj vc6/libboost_regex-vc6-s-1_31/regex_debug.obj vc6/libboost_regex-vc6-s-1_31/regex_synch.obj vc6/libboost_regex-vc6-s-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-s-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-s-1_31/winstances.obj
link -lib /nologo /out:vc6/libboost_regex-vc6-s-1_31.lib $(XSFLAGS) vc6/libboost_regex-vc6-s-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-s-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-s-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-s-1_31/cregex.obj vc6/libboost_regex-vc6-s-1_31/fileiter.obj vc6/libboost_regex-vc6-s-1_31/instances.obj vc6/libboost_regex-vc6-s-1_31/posix_api.obj vc6/libboost_regex-vc6-s-1_31/regex.obj vc6/libboost_regex-vc6-s-1_31/regex_debug.obj vc6/libboost_regex-vc6-s-1_31/regex_synch.obj vc6/libboost_regex-vc6-s-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-s-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-s-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc6-mt-s-1_31.lib
#
########################################################
vc6/libboost_regex-vc6-mt-s-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/c_regex_traits.cpp
vc6/libboost_regex-vc6-mt-s-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/c_regex_traits_common.cpp
vc6/libboost_regex-vc6-mt-s-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/cpp_regex_traits.cpp
vc6/libboost_regex-vc6-mt-s-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/cregex.cpp
vc6/libboost_regex-vc6-mt-s-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/fileiter.cpp
vc6/libboost_regex-vc6-mt-s-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/instances.cpp
vc6/libboost_regex-vc6-mt-s-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/posix_api.cpp
vc6/libboost_regex-vc6-mt-s-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/regex.cpp
vc6/libboost_regex-vc6-mt-s-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/regex_debug.cpp
vc6/libboost_regex-vc6-mt-s-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/regex_synch.cpp
vc6/libboost_regex-vc6-mt-s-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/w32_regex_traits.cpp
vc6/libboost_regex-vc6-mt-s-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/wide_posix_api.cpp
vc6/libboost_regex-vc6-mt-s-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-s-1_31/ -Fdvc6/libboost_regex-vc6-mt-s-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-mt-s-1_31_dir :
@if not exist "vc6\libboost_regex-vc6-mt-s-1_31\$(NULL)" mkdir vc6\libboost_regex-vc6-mt-s-1_31
libboost_regex-vc6-mt-s-1_31_clean :
del vc6\libboost_regex-vc6-mt-s-1_31\*.obj
del vc6\libboost_regex-vc6-mt-s-1_31\*.idb
del vc6\libboost_regex-vc6-mt-s-1_31\*.exp
del vc6\libboost_regex-vc6-mt-s-1_31\*.pch
./vc6/libboost_regex-vc6-mt-s-1_31.lib : vc6/libboost_regex-vc6-mt-s-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-mt-s-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-mt-s-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-mt-s-1_31/cregex.obj vc6/libboost_regex-vc6-mt-s-1_31/fileiter.obj vc6/libboost_regex-vc6-mt-s-1_31/instances.obj vc6/libboost_regex-vc6-mt-s-1_31/posix_api.obj vc6/libboost_regex-vc6-mt-s-1_31/regex.obj vc6/libboost_regex-vc6-mt-s-1_31/regex_debug.obj vc6/libboost_regex-vc6-mt-s-1_31/regex_synch.obj vc6/libboost_regex-vc6-mt-s-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-mt-s-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-mt-s-1_31/winstances.obj
link -lib /nologo /out:vc6/libboost_regex-vc6-mt-s-1_31.lib $(XSFLAGS) vc6/libboost_regex-vc6-mt-s-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-mt-s-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-mt-s-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-mt-s-1_31/cregex.obj vc6/libboost_regex-vc6-mt-s-1_31/fileiter.obj vc6/libboost_regex-vc6-mt-s-1_31/instances.obj vc6/libboost_regex-vc6-mt-s-1_31/posix_api.obj vc6/libboost_regex-vc6-mt-s-1_31/regex.obj vc6/libboost_regex-vc6-mt-s-1_31/regex_debug.obj vc6/libboost_regex-vc6-mt-s-1_31/regex_synch.obj vc6/libboost_regex-vc6-mt-s-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-mt-s-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-mt-s-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc6-sgd-1_31.lib
#
########################################################
vc6/libboost_regex-vc6-sgd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/c_regex_traits.cpp
vc6/libboost_regex-vc6-sgd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/c_regex_traits_common.cpp
vc6/libboost_regex-vc6-sgd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/cpp_regex_traits.cpp
vc6/libboost_regex-vc6-sgd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/cregex.cpp
vc6/libboost_regex-vc6-sgd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/fileiter.cpp
vc6/libboost_regex-vc6-sgd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/instances.cpp
vc6/libboost_regex-vc6-sgd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/posix_api.cpp
vc6/libboost_regex-vc6-sgd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/regex.cpp
vc6/libboost_regex-vc6-sgd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/regex_debug.cpp
vc6/libboost_regex-vc6-sgd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/regex_synch.cpp
vc6/libboost_regex-vc6-sgd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/w32_regex_traits.cpp
vc6/libboost_regex-vc6-sgd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/wide_posix_api.cpp
vc6/libboost_regex-vc6-sgd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-sgd-1_31/ -Fdvc6/libboost_regex-vc6-sgd-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-sgd-1_31_dir :
@if not exist "vc6\libboost_regex-vc6-sgd-1_31\$(NULL)" mkdir vc6\libboost_regex-vc6-sgd-1_31
libboost_regex-vc6-sgd-1_31_clean :
del vc6\libboost_regex-vc6-sgd-1_31\*.obj
del vc6\libboost_regex-vc6-sgd-1_31\*.idb
del vc6\libboost_regex-vc6-sgd-1_31\*.exp
del vc6\libboost_regex-vc6-sgd-1_31\*.pch
./vc6/libboost_regex-vc6-sgd-1_31.lib : vc6/libboost_regex-vc6-sgd-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-sgd-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-sgd-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-sgd-1_31/cregex.obj vc6/libboost_regex-vc6-sgd-1_31/fileiter.obj vc6/libboost_regex-vc6-sgd-1_31/instances.obj vc6/libboost_regex-vc6-sgd-1_31/posix_api.obj vc6/libboost_regex-vc6-sgd-1_31/regex.obj vc6/libboost_regex-vc6-sgd-1_31/regex_debug.obj vc6/libboost_regex-vc6-sgd-1_31/regex_synch.obj vc6/libboost_regex-vc6-sgd-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-sgd-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-sgd-1_31/winstances.obj
link -lib /nologo /out:vc6/libboost_regex-vc6-sgd-1_31.lib $(XSFLAGS) vc6/libboost_regex-vc6-sgd-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-sgd-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-sgd-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-sgd-1_31/cregex.obj vc6/libboost_regex-vc6-sgd-1_31/fileiter.obj vc6/libboost_regex-vc6-sgd-1_31/instances.obj vc6/libboost_regex-vc6-sgd-1_31/posix_api.obj vc6/libboost_regex-vc6-sgd-1_31/regex.obj vc6/libboost_regex-vc6-sgd-1_31/regex_debug.obj vc6/libboost_regex-vc6-sgd-1_31/regex_synch.obj vc6/libboost_regex-vc6-sgd-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-sgd-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-sgd-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc6-mt-sgd-1_31.lib
#
########################################################
vc6/libboost_regex-vc6-mt-sgd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/c_regex_traits.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/c_regex_traits_common.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/cpp_regex_traits.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/cregex.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/fileiter.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/instances.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/posix_api.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/regex.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/regex_debug.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/regex_synch.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/w32_regex_traits.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/wide_posix_api.cpp
vc6/libboost_regex-vc6-mt-sgd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-sgd-1_31/ -Fdvc6/libboost_regex-vc6-mt-sgd-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-mt-sgd-1_31_dir :
@if not exist "vc6\libboost_regex-vc6-mt-sgd-1_31\$(NULL)" mkdir vc6\libboost_regex-vc6-mt-sgd-1_31
libboost_regex-vc6-mt-sgd-1_31_clean :
del vc6\libboost_regex-vc6-mt-sgd-1_31\*.obj
del vc6\libboost_regex-vc6-mt-sgd-1_31\*.idb
del vc6\libboost_regex-vc6-mt-sgd-1_31\*.exp
del vc6\libboost_regex-vc6-mt-sgd-1_31\*.pch
./vc6/libboost_regex-vc6-mt-sgd-1_31.lib : vc6/libboost_regex-vc6-mt-sgd-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-mt-sgd-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-mt-sgd-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-mt-sgd-1_31/cregex.obj vc6/libboost_regex-vc6-mt-sgd-1_31/fileiter.obj vc6/libboost_regex-vc6-mt-sgd-1_31/instances.obj vc6/libboost_regex-vc6-mt-sgd-1_31/posix_api.obj vc6/libboost_regex-vc6-mt-sgd-1_31/regex.obj vc6/libboost_regex-vc6-mt-sgd-1_31/regex_debug.obj vc6/libboost_regex-vc6-mt-sgd-1_31/regex_synch.obj vc6/libboost_regex-vc6-mt-sgd-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-mt-sgd-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-mt-sgd-1_31/winstances.obj
link -lib /nologo /out:vc6/libboost_regex-vc6-mt-sgd-1_31.lib $(XSFLAGS) vc6/libboost_regex-vc6-mt-sgd-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-mt-sgd-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-mt-sgd-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-mt-sgd-1_31/cregex.obj vc6/libboost_regex-vc6-mt-sgd-1_31/fileiter.obj vc6/libboost_regex-vc6-mt-sgd-1_31/instances.obj vc6/libboost_regex-vc6-mt-sgd-1_31/posix_api.obj vc6/libboost_regex-vc6-mt-sgd-1_31/regex.obj vc6/libboost_regex-vc6-mt-sgd-1_31/regex_debug.obj vc6/libboost_regex-vc6-mt-sgd-1_31/regex_synch.obj vc6/libboost_regex-vc6-mt-sgd-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-mt-sgd-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-mt-sgd-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc6-mt-gd-1_31.lib
#
########################################################
vc6/boost_regex-vc6-mt-gd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/c_regex_traits.cpp
vc6/boost_regex-vc6-mt-gd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/c_regex_traits_common.cpp
vc6/boost_regex-vc6-mt-gd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/cpp_regex_traits.cpp
vc6/boost_regex-vc6-mt-gd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/cregex.cpp
vc6/boost_regex-vc6-mt-gd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/fileiter.cpp
vc6/boost_regex-vc6-mt-gd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/instances.cpp
vc6/boost_regex-vc6-mt-gd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/posix_api.cpp
vc6/boost_regex-vc6-mt-gd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/regex.cpp
vc6/boost_regex-vc6-mt-gd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/regex_debug.cpp
vc6/boost_regex-vc6-mt-gd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/regex_synch.cpp
vc6/boost_regex-vc6-mt-gd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/w32_regex_traits.cpp
vc6/boost_regex-vc6-mt-gd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/wide_posix_api.cpp
vc6/boost_regex-vc6-mt-gd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-gd-1_31/ -Fdvc6/boost_regex-vc6-mt-gd-1_31.pdb ../src/winstances.cpp
boost_regex-vc6-mt-gd-1_31_dir :
@if not exist "vc6\boost_regex-vc6-mt-gd-1_31\$(NULL)" mkdir vc6\boost_regex-vc6-mt-gd-1_31
boost_regex-vc6-mt-gd-1_31_clean :
del vc6\boost_regex-vc6-mt-gd-1_31\*.obj
del vc6\boost_regex-vc6-mt-gd-1_31\*.idb
del vc6\boost_regex-vc6-mt-gd-1_31\*.exp
del vc6\boost_regex-vc6-mt-gd-1_31\*.pch
./vc6/boost_regex-vc6-mt-gd-1_31.lib : vc6/boost_regex-vc6-mt-gd-1_31/c_regex_traits.obj vc6/boost_regex-vc6-mt-gd-1_31/c_regex_traits_common.obj vc6/boost_regex-vc6-mt-gd-1_31/cpp_regex_traits.obj vc6/boost_regex-vc6-mt-gd-1_31/cregex.obj vc6/boost_regex-vc6-mt-gd-1_31/fileiter.obj vc6/boost_regex-vc6-mt-gd-1_31/instances.obj vc6/boost_regex-vc6-mt-gd-1_31/posix_api.obj vc6/boost_regex-vc6-mt-gd-1_31/regex.obj vc6/boost_regex-vc6-mt-gd-1_31/regex_debug.obj vc6/boost_regex-vc6-mt-gd-1_31/regex_synch.obj vc6/boost_regex-vc6-mt-gd-1_31/w32_regex_traits.obj vc6/boost_regex-vc6-mt-gd-1_31/wide_posix_api.obj vc6/boost_regex-vc6-mt-gd-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc6/boost_regex-vc6-mt-gd-1_31.pdb" /debug /machine:I386 /out:"vc6/boost_regex-vc6-mt-gd-1_31.dll" /implib:"vc6/boost_regex-vc6-mt-gd-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc6/boost_regex-vc6-mt-gd-1_31/c_regex_traits.obj vc6/boost_regex-vc6-mt-gd-1_31/c_regex_traits_common.obj vc6/boost_regex-vc6-mt-gd-1_31/cpp_regex_traits.obj vc6/boost_regex-vc6-mt-gd-1_31/cregex.obj vc6/boost_regex-vc6-mt-gd-1_31/fileiter.obj vc6/boost_regex-vc6-mt-gd-1_31/instances.obj vc6/boost_regex-vc6-mt-gd-1_31/posix_api.obj vc6/boost_regex-vc6-mt-gd-1_31/regex.obj vc6/boost_regex-vc6-mt-gd-1_31/regex_debug.obj vc6/boost_regex-vc6-mt-gd-1_31/regex_synch.obj vc6/boost_regex-vc6-mt-gd-1_31/w32_regex_traits.obj vc6/boost_regex-vc6-mt-gd-1_31/wide_posix_api.obj vc6/boost_regex-vc6-mt-gd-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc6-mt-1_31.lib
#
########################################################
vc6/boost_regex-vc6-mt-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/c_regex_traits.cpp
vc6/boost_regex-vc6-mt-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/c_regex_traits_common.cpp
vc6/boost_regex-vc6-mt-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/cpp_regex_traits.cpp
vc6/boost_regex-vc6-mt-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/cregex.cpp
vc6/boost_regex-vc6-mt-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/fileiter.cpp
vc6/boost_regex-vc6-mt-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/instances.cpp
vc6/boost_regex-vc6-mt-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/posix_api.cpp
vc6/boost_regex-vc6-mt-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/regex.cpp
vc6/boost_regex-vc6-mt-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/regex_debug.cpp
vc6/boost_regex-vc6-mt-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/regex_synch.cpp
vc6/boost_regex-vc6-mt-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/w32_regex_traits.cpp
vc6/boost_regex-vc6-mt-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/wide_posix_api.cpp
vc6/boost_regex-vc6-mt-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/boost_regex-vc6-mt-1_31/ -Fdvc6/boost_regex-vc6-mt-1_31.pdb ../src/winstances.cpp
boost_regex-vc6-mt-1_31_dir :
@if not exist "vc6\boost_regex-vc6-mt-1_31\$(NULL)" mkdir vc6\boost_regex-vc6-mt-1_31
boost_regex-vc6-mt-1_31_clean :
del vc6\boost_regex-vc6-mt-1_31\*.obj
del vc6\boost_regex-vc6-mt-1_31\*.idb
del vc6\boost_regex-vc6-mt-1_31\*.exp
del vc6\boost_regex-vc6-mt-1_31\*.pch
./vc6/boost_regex-vc6-mt-1_31.lib : vc6/boost_regex-vc6-mt-1_31/c_regex_traits.obj vc6/boost_regex-vc6-mt-1_31/c_regex_traits_common.obj vc6/boost_regex-vc6-mt-1_31/cpp_regex_traits.obj vc6/boost_regex-vc6-mt-1_31/cregex.obj vc6/boost_regex-vc6-mt-1_31/fileiter.obj vc6/boost_regex-vc6-mt-1_31/instances.obj vc6/boost_regex-vc6-mt-1_31/posix_api.obj vc6/boost_regex-vc6-mt-1_31/regex.obj vc6/boost_regex-vc6-mt-1_31/regex_debug.obj vc6/boost_regex-vc6-mt-1_31/regex_synch.obj vc6/boost_regex-vc6-mt-1_31/w32_regex_traits.obj vc6/boost_regex-vc6-mt-1_31/wide_posix_api.obj vc6/boost_regex-vc6-mt-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc6/boost_regex-vc6-mt-1_31.pdb" /debug /machine:I386 /out:"vc6/boost_regex-vc6-mt-1_31.dll" /implib:"vc6/boost_regex-vc6-mt-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc6/boost_regex-vc6-mt-1_31/c_regex_traits.obj vc6/boost_regex-vc6-mt-1_31/c_regex_traits_common.obj vc6/boost_regex-vc6-mt-1_31/cpp_regex_traits.obj vc6/boost_regex-vc6-mt-1_31/cregex.obj vc6/boost_regex-vc6-mt-1_31/fileiter.obj vc6/boost_regex-vc6-mt-1_31/instances.obj vc6/boost_regex-vc6-mt-1_31/posix_api.obj vc6/boost_regex-vc6-mt-1_31/regex.obj vc6/boost_regex-vc6-mt-1_31/regex_debug.obj vc6/boost_regex-vc6-mt-1_31/regex_synch.obj vc6/boost_regex-vc6-mt-1_31/w32_regex_traits.obj vc6/boost_regex-vc6-mt-1_31/wide_posix_api.obj vc6/boost_regex-vc6-mt-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc6-mt-1_31.lib
#
########################################################
vc6/libboost_regex-vc6-mt-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/c_regex_traits.cpp
vc6/libboost_regex-vc6-mt-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/c_regex_traits_common.cpp
vc6/libboost_regex-vc6-mt-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/cpp_regex_traits.cpp
vc6/libboost_regex-vc6-mt-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/cregex.cpp
vc6/libboost_regex-vc6-mt-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/fileiter.cpp
vc6/libboost_regex-vc6-mt-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/instances.cpp
vc6/libboost_regex-vc6-mt-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/posix_api.cpp
vc6/libboost_regex-vc6-mt-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/regex.cpp
vc6/libboost_regex-vc6-mt-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/regex_debug.cpp
vc6/libboost_regex-vc6-mt-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/regex_synch.cpp
vc6/libboost_regex-vc6-mt-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/w32_regex_traits.cpp
vc6/libboost_regex-vc6-mt-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/wide_posix_api.cpp
vc6/libboost_regex-vc6-mt-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-1_31/ -Fdvc6/libboost_regex-vc6-mt-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-mt-1_31_dir :
@if not exist "vc6\libboost_regex-vc6-mt-1_31\$(NULL)" mkdir vc6\libboost_regex-vc6-mt-1_31
libboost_regex-vc6-mt-1_31_clean :
del vc6\libboost_regex-vc6-mt-1_31\*.obj
del vc6\libboost_regex-vc6-mt-1_31\*.idb
del vc6\libboost_regex-vc6-mt-1_31\*.exp
del vc6\libboost_regex-vc6-mt-1_31\*.pch
./vc6/libboost_regex-vc6-mt-1_31.lib : vc6/libboost_regex-vc6-mt-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-mt-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-mt-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-mt-1_31/cregex.obj vc6/libboost_regex-vc6-mt-1_31/fileiter.obj vc6/libboost_regex-vc6-mt-1_31/instances.obj vc6/libboost_regex-vc6-mt-1_31/posix_api.obj vc6/libboost_regex-vc6-mt-1_31/regex.obj vc6/libboost_regex-vc6-mt-1_31/regex_debug.obj vc6/libboost_regex-vc6-mt-1_31/regex_synch.obj vc6/libboost_regex-vc6-mt-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-mt-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-mt-1_31/winstances.obj
link -lib /nologo /out:vc6/libboost_regex-vc6-mt-1_31.lib $(XSFLAGS) vc6/libboost_regex-vc6-mt-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-mt-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-mt-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-mt-1_31/cregex.obj vc6/libboost_regex-vc6-mt-1_31/fileiter.obj vc6/libboost_regex-vc6-mt-1_31/instances.obj vc6/libboost_regex-vc6-mt-1_31/posix_api.obj vc6/libboost_regex-vc6-mt-1_31/regex.obj vc6/libboost_regex-vc6-mt-1_31/regex_debug.obj vc6/libboost_regex-vc6-mt-1_31/regex_synch.obj vc6/libboost_regex-vc6-mt-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-mt-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-mt-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc6-mt-gd-1_31.lib
#
########################################################
vc6/libboost_regex-vc6-mt-gd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/c_regex_traits.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/c_regex_traits_common.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/cpp_regex_traits.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/cregex.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/fileiter.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/instances.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/posix_api.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/regex.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/regex_debug.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/regex_synch.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/w32_regex_traits.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/wide_posix_api.cpp
vc6/libboost_regex-vc6-mt-gd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /c $(CXXFLAGS) -Y- -Fo./vc6/libboost_regex-vc6-mt-gd-1_31/ -Fdvc6/libboost_regex-vc6-mt-gd-1_31.pdb ../src/winstances.cpp
libboost_regex-vc6-mt-gd-1_31_dir :
@if not exist "vc6\libboost_regex-vc6-mt-gd-1_31\$(NULL)" mkdir vc6\libboost_regex-vc6-mt-gd-1_31
libboost_regex-vc6-mt-gd-1_31_clean :
del vc6\libboost_regex-vc6-mt-gd-1_31\*.obj
del vc6\libboost_regex-vc6-mt-gd-1_31\*.idb
del vc6\libboost_regex-vc6-mt-gd-1_31\*.exp
del vc6\libboost_regex-vc6-mt-gd-1_31\*.pch
./vc6/libboost_regex-vc6-mt-gd-1_31.lib : vc6/libboost_regex-vc6-mt-gd-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-mt-gd-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-mt-gd-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-mt-gd-1_31/cregex.obj vc6/libboost_regex-vc6-mt-gd-1_31/fileiter.obj vc6/libboost_regex-vc6-mt-gd-1_31/instances.obj vc6/libboost_regex-vc6-mt-gd-1_31/posix_api.obj vc6/libboost_regex-vc6-mt-gd-1_31/regex.obj vc6/libboost_regex-vc6-mt-gd-1_31/regex_debug.obj vc6/libboost_regex-vc6-mt-gd-1_31/regex_synch.obj vc6/libboost_regex-vc6-mt-gd-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-mt-gd-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-mt-gd-1_31/winstances.obj
link -lib /nologo /out:vc6/libboost_regex-vc6-mt-gd-1_31.lib $(XSFLAGS) vc6/libboost_regex-vc6-mt-gd-1_31/c_regex_traits.obj vc6/libboost_regex-vc6-mt-gd-1_31/c_regex_traits_common.obj vc6/libboost_regex-vc6-mt-gd-1_31/cpp_regex_traits.obj vc6/libboost_regex-vc6-mt-gd-1_31/cregex.obj vc6/libboost_regex-vc6-mt-gd-1_31/fileiter.obj vc6/libboost_regex-vc6-mt-gd-1_31/instances.obj vc6/libboost_regex-vc6-mt-gd-1_31/posix_api.obj vc6/libboost_regex-vc6-mt-gd-1_31/regex.obj vc6/libboost_regex-vc6-mt-gd-1_31/regex_debug.obj vc6/libboost_regex-vc6-mt-gd-1_31/regex_synch.obj vc6/libboost_regex-vc6-mt-gd-1_31/w32_regex_traits.obj vc6/libboost_regex-vc6-mt-gd-1_31/wide_posix_api.obj vc6/libboost_regex-vc6-mt-gd-1_31/winstances.obj

View File

@ -1,404 +0,0 @@
#
# auto generated makefile for VC6+STLPort
#
# usage:
# make
# brings libraries up to date
# make install
# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
#
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
XLFLAGS=
#
# add additional static-library creation flags here:
#
XSFLAGS=
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(MSVCDIR)" == ""
!ERROR Variable MSVCDIR not set.
!ENDIF
!IF "$(STLPORT_PATH)" == ""
!ERROR Variable STLPORT_PATH not set.
!ENDIF
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : main_dir libboost_regex-vc7-mt-sp-1_31_dir ./vc7-stlport/libboost_regex-vc7-mt-sp-1_31.lib boost_regex-vc7-mt-p-1_31_dir ./vc7-stlport/boost_regex-vc7-mt-p-1_31.lib libboost_regex-vc7-mt-p-1_31_dir ./vc7-stlport/libboost_regex-vc7-mt-p-1_31.lib boost_regex-vc7-mt-gdp-1_31_dir ./vc7-stlport/boost_regex-vc7-mt-gdp-1_31.lib libboost_regex-vc7-mt-sgdp-1_31_dir ./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.lib libboost_regex-vc7-mt-gdp-1_31_dir ./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31.lib
clean : libboost_regex-vc7-mt-sp-1_31_clean boost_regex-vc7-mt-p-1_31_clean libboost_regex-vc7-mt-p-1_31_clean boost_regex-vc7-mt-gdp-1_31_clean libboost_regex-vc7-mt-sgdp-1_31_clean libboost_regex-vc7-mt-gdp-1_31_clean
install : stlport_check all
copy vc7-stlport\libboost_regex-vc7-mt-sp-1_31.lib "$(MSVCDIR)\lib"
copy vc7-stlport\boost_regex-vc7-mt-p-1_31.lib "$(MSVCDIR)\lib"
copy vc7-stlport\boost_regex-vc7-mt-p-1_31.dll "$(MSVCDIR)\bin"
copy vc7-stlport\libboost_regex-vc7-mt-p-1_31.lib "$(MSVCDIR)\lib"
copy vc7-stlport\boost_regex-vc7-mt-gdp-1_31.lib "$(MSVCDIR)\lib"
copy vc7-stlport\boost_regex-vc7-mt-gdp-1_31.dll "$(MSVCDIR)\bin"
copy vc7-stlport\boost_regex-vc7-mt-gdp-1_31.pdb "$(MSVCDIR)\lib"
copy vc7-stlport\libboost_regex-vc7-mt-sgdp-1_31.lib "$(MSVCDIR)\lib"
copy vc7-stlport\libboost_regex-vc7-mt-sgdp-1_31.pdb "$(MSVCDIR)\lib"
copy vc7-stlport\libboost_regex-vc7-mt-gdp-1_31.lib "$(MSVCDIR)\lib"
copy vc7-stlport\libboost_regex-vc7-mt-gdp-1_31.pdb "$(MSVCDIR)\lib"
main_dir :
@if not exist "vc7-stlport\$(NULL)" mkdir vc7-stlport
stlport_check : $(STLPORT_PATH)\stlport\string
echo
########################################################
#
# section for libboost_regex-vc7-mt-sp-1_31.lib
#
########################################################
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/c_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/c_regex_traits_common.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/cpp_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/cregex.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/fileiter.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/instances.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/posix_api.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/regex.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/regex_debug.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/regex_synch.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/w32_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/wide_posix_api.cpp
vc7-stlport/libboost_regex-vc7-mt-sp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sp-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-mt-sp-1_31_dir :
@if not exist "vc7-stlport\libboost_regex-vc7-mt-sp-1_31\$(NULL)" mkdir vc7-stlport\libboost_regex-vc7-mt-sp-1_31
libboost_regex-vc7-mt-sp-1_31_clean :
del vc7-stlport\libboost_regex-vc7-mt-sp-1_31\*.obj
del vc7-stlport\libboost_regex-vc7-mt-sp-1_31\*.idb
del vc7-stlport\libboost_regex-vc7-mt-sp-1_31\*.exp
del vc7-stlport\libboost_regex-vc7-mt-sp-1_31\*.pch
./vc7-stlport/libboost_regex-vc7-mt-sp-1_31.lib : vc7-stlport/libboost_regex-vc7-mt-sp-1_31/c_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/c_regex_traits_common.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/cpp_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/cregex.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/fileiter.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/instances.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/posix_api.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/regex.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/regex_debug.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/regex_synch.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/w32_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/wide_posix_api.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/winstances.obj
link -lib /nologo /out:vc7-stlport/libboost_regex-vc7-mt-sp-1_31.lib $(XSFLAGS) vc7-stlport/libboost_regex-vc7-mt-sp-1_31/c_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/c_regex_traits_common.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/cpp_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/cregex.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/fileiter.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/instances.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/posix_api.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/regex.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/regex_debug.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/regex_synch.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/w32_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/wide_posix_api.obj vc7-stlport/libboost_regex-vc7-mt-sp-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc7-mt-p-1_31.lib
#
########################################################
vc7-stlport/boost_regex-vc7-mt-p-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/c_regex_traits.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/c_regex_traits_common.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/cpp_regex_traits.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/cregex.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/fileiter.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/instances.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/posix_api.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/regex.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/regex_debug.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/regex_synch.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/w32_regex_traits.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/wide_posix_api.cpp
vc7-stlport/boost_regex-vc7-mt-p-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-p-1_31.pdb ../src/winstances.cpp
boost_regex-vc7-mt-p-1_31_dir :
@if not exist "vc7-stlport\boost_regex-vc7-mt-p-1_31\$(NULL)" mkdir vc7-stlport\boost_regex-vc7-mt-p-1_31
boost_regex-vc7-mt-p-1_31_clean :
del vc7-stlport\boost_regex-vc7-mt-p-1_31\*.obj
del vc7-stlport\boost_regex-vc7-mt-p-1_31\*.idb
del vc7-stlport\boost_regex-vc7-mt-p-1_31\*.exp
del vc7-stlport\boost_regex-vc7-mt-p-1_31\*.pch
./vc7-stlport/boost_regex-vc7-mt-p-1_31.lib : vc7-stlport/boost_regex-vc7-mt-p-1_31/c_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/c_regex_traits_common.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/cpp_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/cregex.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/fileiter.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/instances.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/posix_api.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/regex.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/regex_debug.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/regex_synch.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/w32_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/wide_posix_api.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc7-stlport/boost_regex-vc7-mt-p-1_31.pdb" /debug /machine:I386 /out:"vc7-stlport/boost_regex-vc7-mt-p-1_31.dll" /implib:"vc7-stlport/boost_regex-vc7-mt-p-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc7-stlport/boost_regex-vc7-mt-p-1_31/c_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/c_regex_traits_common.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/cpp_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/cregex.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/fileiter.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/instances.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/posix_api.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/regex.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/regex_debug.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/regex_synch.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/w32_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/wide_posix_api.obj vc7-stlport/boost_regex-vc7-mt-p-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc7-mt-p-1_31.lib
#
########################################################
vc7-stlport/libboost_regex-vc7-mt-p-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/c_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/c_regex_traits_common.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/cpp_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/cregex.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/fileiter.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/instances.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/posix_api.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/regex.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/regex_debug.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/regex_synch.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/w32_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/wide_posix_api.cpp
vc7-stlport/libboost_regex-vc7-mt-p-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-p-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-p-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-mt-p-1_31_dir :
@if not exist "vc7-stlport\libboost_regex-vc7-mt-p-1_31\$(NULL)" mkdir vc7-stlport\libboost_regex-vc7-mt-p-1_31
libboost_regex-vc7-mt-p-1_31_clean :
del vc7-stlport\libboost_regex-vc7-mt-p-1_31\*.obj
del vc7-stlport\libboost_regex-vc7-mt-p-1_31\*.idb
del vc7-stlport\libboost_regex-vc7-mt-p-1_31\*.exp
del vc7-stlport\libboost_regex-vc7-mt-p-1_31\*.pch
./vc7-stlport/libboost_regex-vc7-mt-p-1_31.lib : vc7-stlport/libboost_regex-vc7-mt-p-1_31/c_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/c_regex_traits_common.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/cpp_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/cregex.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/fileiter.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/instances.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/posix_api.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/regex.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/regex_debug.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/regex_synch.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/w32_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/wide_posix_api.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/winstances.obj
link -lib /nologo /out:vc7-stlport/libboost_regex-vc7-mt-p-1_31.lib $(XSFLAGS) vc7-stlport/libboost_regex-vc7-mt-p-1_31/c_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/c_regex_traits_common.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/cpp_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/cregex.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/fileiter.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/instances.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/posix_api.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/regex.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/regex_debug.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/regex_synch.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/w32_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/wide_posix_api.obj vc7-stlport/libboost_regex-vc7-mt-p-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc7-mt-gdp-1_31.lib
#
########################################################
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/c_regex_traits.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/c_regex_traits_common.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/cpp_regex_traits.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/cregex.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/fileiter.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/instances.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/posix_api.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/regex.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/regex_debug.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/regex_synch.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/w32_regex_traits.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/wide_posix_api.cpp
vc7-stlport/boost_regex-vc7-mt-gdp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/boost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb ../src/winstances.cpp
boost_regex-vc7-mt-gdp-1_31_dir :
@if not exist "vc7-stlport\boost_regex-vc7-mt-gdp-1_31\$(NULL)" mkdir vc7-stlport\boost_regex-vc7-mt-gdp-1_31
boost_regex-vc7-mt-gdp-1_31_clean :
del vc7-stlport\boost_regex-vc7-mt-gdp-1_31\*.obj
del vc7-stlport\boost_regex-vc7-mt-gdp-1_31\*.idb
del vc7-stlport\boost_regex-vc7-mt-gdp-1_31\*.exp
del vc7-stlport\boost_regex-vc7-mt-gdp-1_31\*.pch
./vc7-stlport/boost_regex-vc7-mt-gdp-1_31.lib : vc7-stlport/boost_regex-vc7-mt-gdp-1_31/c_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/c_regex_traits_common.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/cpp_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/cregex.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/fileiter.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/instances.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/posix_api.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/regex.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/regex_debug.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/regex_synch.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/w32_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/wide_posix_api.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc7-stlport/boost_regex-vc7-mt-gdp-1_31.pdb" /debug /machine:I386 /out:"vc7-stlport/boost_regex-vc7-mt-gdp-1_31.dll" /implib:"vc7-stlport/boost_regex-vc7-mt-gdp-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc7-stlport/boost_regex-vc7-mt-gdp-1_31/c_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/c_regex_traits_common.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/cpp_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/cregex.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/fileiter.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/instances.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/posix_api.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/regex.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/regex_debug.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/regex_synch.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/w32_regex_traits.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/wide_posix_api.obj vc7-stlport/boost_regex-vc7-mt-gdp-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc7-mt-sgdp-1_31.lib
#
########################################################
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/c_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/c_regex_traits_common.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/cpp_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/cregex.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/fileiter.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/instances.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/posix_api.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/regex.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/regex_debug.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/regex_synch.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/w32_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/wide_posix_api.cpp
vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-mt-sgdp-1_31_dir :
@if not exist "vc7-stlport\libboost_regex-vc7-mt-sgdp-1_31\$(NULL)" mkdir vc7-stlport\libboost_regex-vc7-mt-sgdp-1_31
libboost_regex-vc7-mt-sgdp-1_31_clean :
del vc7-stlport\libboost_regex-vc7-mt-sgdp-1_31\*.obj
del vc7-stlport\libboost_regex-vc7-mt-sgdp-1_31\*.idb
del vc7-stlport\libboost_regex-vc7-mt-sgdp-1_31\*.exp
del vc7-stlport\libboost_regex-vc7-mt-sgdp-1_31\*.pch
./vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.lib : vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/c_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/c_regex_traits_common.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/cpp_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/cregex.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/fileiter.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/instances.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/posix_api.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/regex.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/regex_debug.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/regex_synch.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/w32_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/wide_posix_api.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/winstances.obj
link -lib /nologo /out:vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31.lib $(XSFLAGS) vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/c_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/c_regex_traits_common.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/cpp_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/cregex.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/fileiter.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/instances.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/posix_api.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/regex.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/regex_debug.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/regex_synch.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/w32_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/wide_posix_api.obj vc7-stlport/libboost_regex-vc7-mt-sgdp-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc7-mt-gdp-1_31.lib
#
########################################################
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/c_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/c_regex_traits_common.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/cpp_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/cregex.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/fileiter.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/instances.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/posix_api.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/regex.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/regex_debug.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/regex_synch.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/w32_regex_traits.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/wide_posix_api.cpp
vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/ -Fdvc7-stlport/libboost_regex-vc7-mt-gdp-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-mt-gdp-1_31_dir :
@if not exist "vc7-stlport\libboost_regex-vc7-mt-gdp-1_31\$(NULL)" mkdir vc7-stlport\libboost_regex-vc7-mt-gdp-1_31
libboost_regex-vc7-mt-gdp-1_31_clean :
del vc7-stlport\libboost_regex-vc7-mt-gdp-1_31\*.obj
del vc7-stlport\libboost_regex-vc7-mt-gdp-1_31\*.idb
del vc7-stlport\libboost_regex-vc7-mt-gdp-1_31\*.exp
del vc7-stlport\libboost_regex-vc7-mt-gdp-1_31\*.pch
./vc7-stlport/libboost_regex-vc7-mt-gdp-1_31.lib : vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/c_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/c_regex_traits_common.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/cpp_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/cregex.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/fileiter.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/instances.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/posix_api.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/regex.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/regex_debug.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/regex_synch.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/w32_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/wide_posix_api.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/winstances.obj
link -lib /nologo /out:vc7-stlport/libboost_regex-vc7-mt-gdp-1_31.lib $(XSFLAGS) vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/c_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/c_regex_traits_common.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/cpp_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/cregex.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/fileiter.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/instances.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/posix_api.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/regex.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/regex_debug.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/regex_synch.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/w32_regex_traits.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/wide_posix_api.obj vc7-stlport/libboost_regex-vc7-mt-gdp-1_31/winstances.obj

View File

@ -1,512 +0,0 @@
#
# auto generated makefile for VC6 compiler
#
# usage:
# make
# brings libraries up to date
# make install
# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
#
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
XLFLAGS=
#
# add additional static-library creation flags here:
#
XSFLAGS=
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(MSVCDIR)" == ""
!ERROR Variable MSVCDIR not set.
!ENDIF
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : main_dir libboost_regex-vc7-s-1_31_dir ./vc7/libboost_regex-vc7-s-1_31.lib libboost_regex-vc7-mt-s-1_31_dir ./vc7/libboost_regex-vc7-mt-s-1_31.lib libboost_regex-vc7-sgd-1_31_dir ./vc7/libboost_regex-vc7-sgd-1_31.lib libboost_regex-vc7-mt-sgd-1_31_dir ./vc7/libboost_regex-vc7-mt-sgd-1_31.lib boost_regex-vc7-mt-gd-1_31_dir ./vc7/boost_regex-vc7-mt-gd-1_31.lib boost_regex-vc7-mt-1_31_dir ./vc7/boost_regex-vc7-mt-1_31.lib libboost_regex-vc7-mt-1_31_dir ./vc7/libboost_regex-vc7-mt-1_31.lib libboost_regex-vc7-mt-gd-1_31_dir ./vc7/libboost_regex-vc7-mt-gd-1_31.lib
clean : libboost_regex-vc7-s-1_31_clean libboost_regex-vc7-mt-s-1_31_clean libboost_regex-vc7-sgd-1_31_clean libboost_regex-vc7-mt-sgd-1_31_clean boost_regex-vc7-mt-gd-1_31_clean boost_regex-vc7-mt-1_31_clean libboost_regex-vc7-mt-1_31_clean libboost_regex-vc7-mt-gd-1_31_clean
install : all
copy vc7\libboost_regex-vc7-s-1_31.lib "$(MSVCDIR)\lib"
copy vc7\libboost_regex-vc7-mt-s-1_31.lib "$(MSVCDIR)\lib"
copy vc7\libboost_regex-vc7-sgd-1_31.lib "$(MSVCDIR)\lib"
copy vc7\libboost_regex-vc7-sgd-1_31.pdb "$(MSVCDIR)\lib"
copy vc7\libboost_regex-vc7-mt-sgd-1_31.lib "$(MSVCDIR)\lib"
copy vc7\libboost_regex-vc7-mt-sgd-1_31.pdb "$(MSVCDIR)\lib"
copy vc7\boost_regex-vc7-mt-gd-1_31.lib "$(MSVCDIR)\lib"
copy vc7\boost_regex-vc7-mt-gd-1_31.dll "$(MSVCDIR)\bin"
copy vc7\boost_regex-vc7-mt-gd-1_31.pdb "$(MSVCDIR)\lib"
copy vc7\boost_regex-vc7-mt-1_31.lib "$(MSVCDIR)\lib"
copy vc7\boost_regex-vc7-mt-1_31.dll "$(MSVCDIR)\bin"
copy vc7\libboost_regex-vc7-mt-1_31.lib "$(MSVCDIR)\lib"
copy vc7\libboost_regex-vc7-mt-gd-1_31.lib "$(MSVCDIR)\lib"
copy vc7\libboost_regex-vc7-mt-gd-1_31.pdb "$(MSVCDIR)\lib"
main_dir :
@if not exist "vc7\$(NULL)" mkdir vc7
########################################################
#
# section for libboost_regex-vc7-s-1_31.lib
#
########################################################
vc7/libboost_regex-vc7-s-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/c_regex_traits.cpp
vc7/libboost_regex-vc7-s-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/c_regex_traits_common.cpp
vc7/libboost_regex-vc7-s-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/cpp_regex_traits.cpp
vc7/libboost_regex-vc7-s-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/cregex.cpp
vc7/libboost_regex-vc7-s-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/fileiter.cpp
vc7/libboost_regex-vc7-s-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/instances.cpp
vc7/libboost_regex-vc7-s-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/posix_api.cpp
vc7/libboost_regex-vc7-s-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/regex.cpp
vc7/libboost_regex-vc7-s-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/regex_debug.cpp
vc7/libboost_regex-vc7-s-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/regex_synch.cpp
vc7/libboost_regex-vc7-s-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/w32_regex_traits.cpp
vc7/libboost_regex-vc7-s-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/wide_posix_api.cpp
vc7/libboost_regex-vc7-s-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-s-1_31/ -Fdvc7/libboost_regex-vc7-s-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-s-1_31_dir :
@if not exist "vc7\libboost_regex-vc7-s-1_31\$(NULL)" mkdir vc7\libboost_regex-vc7-s-1_31
libboost_regex-vc7-s-1_31_clean :
del vc7\libboost_regex-vc7-s-1_31\*.obj
del vc7\libboost_regex-vc7-s-1_31\*.idb
del vc7\libboost_regex-vc7-s-1_31\*.exp
del vc7\libboost_regex-vc7-s-1_31\*.pch
./vc7/libboost_regex-vc7-s-1_31.lib : vc7/libboost_regex-vc7-s-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-s-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-s-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-s-1_31/cregex.obj vc7/libboost_regex-vc7-s-1_31/fileiter.obj vc7/libboost_regex-vc7-s-1_31/instances.obj vc7/libboost_regex-vc7-s-1_31/posix_api.obj vc7/libboost_regex-vc7-s-1_31/regex.obj vc7/libboost_regex-vc7-s-1_31/regex_debug.obj vc7/libboost_regex-vc7-s-1_31/regex_synch.obj vc7/libboost_regex-vc7-s-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-s-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-s-1_31/winstances.obj
link -lib /nologo /out:vc7/libboost_regex-vc7-s-1_31.lib $(XSFLAGS) vc7/libboost_regex-vc7-s-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-s-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-s-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-s-1_31/cregex.obj vc7/libboost_regex-vc7-s-1_31/fileiter.obj vc7/libboost_regex-vc7-s-1_31/instances.obj vc7/libboost_regex-vc7-s-1_31/posix_api.obj vc7/libboost_regex-vc7-s-1_31/regex.obj vc7/libboost_regex-vc7-s-1_31/regex_debug.obj vc7/libboost_regex-vc7-s-1_31/regex_synch.obj vc7/libboost_regex-vc7-s-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-s-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-s-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc7-mt-s-1_31.lib
#
########################################################
vc7/libboost_regex-vc7-mt-s-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/c_regex_traits.cpp
vc7/libboost_regex-vc7-mt-s-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/c_regex_traits_common.cpp
vc7/libboost_regex-vc7-mt-s-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/cpp_regex_traits.cpp
vc7/libboost_regex-vc7-mt-s-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/cregex.cpp
vc7/libboost_regex-vc7-mt-s-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/fileiter.cpp
vc7/libboost_regex-vc7-mt-s-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/instances.cpp
vc7/libboost_regex-vc7-mt-s-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/posix_api.cpp
vc7/libboost_regex-vc7-mt-s-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/regex.cpp
vc7/libboost_regex-vc7-mt-s-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/regex_debug.cpp
vc7/libboost_regex-vc7-mt-s-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/regex_synch.cpp
vc7/libboost_regex-vc7-mt-s-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/w32_regex_traits.cpp
vc7/libboost_regex-vc7-mt-s-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/wide_posix_api.cpp
vc7/libboost_regex-vc7-mt-s-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-s-1_31/ -Fdvc7/libboost_regex-vc7-mt-s-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-mt-s-1_31_dir :
@if not exist "vc7\libboost_regex-vc7-mt-s-1_31\$(NULL)" mkdir vc7\libboost_regex-vc7-mt-s-1_31
libboost_regex-vc7-mt-s-1_31_clean :
del vc7\libboost_regex-vc7-mt-s-1_31\*.obj
del vc7\libboost_regex-vc7-mt-s-1_31\*.idb
del vc7\libboost_regex-vc7-mt-s-1_31\*.exp
del vc7\libboost_regex-vc7-mt-s-1_31\*.pch
./vc7/libboost_regex-vc7-mt-s-1_31.lib : vc7/libboost_regex-vc7-mt-s-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-mt-s-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-mt-s-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-mt-s-1_31/cregex.obj vc7/libboost_regex-vc7-mt-s-1_31/fileiter.obj vc7/libboost_regex-vc7-mt-s-1_31/instances.obj vc7/libboost_regex-vc7-mt-s-1_31/posix_api.obj vc7/libboost_regex-vc7-mt-s-1_31/regex.obj vc7/libboost_regex-vc7-mt-s-1_31/regex_debug.obj vc7/libboost_regex-vc7-mt-s-1_31/regex_synch.obj vc7/libboost_regex-vc7-mt-s-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-mt-s-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-mt-s-1_31/winstances.obj
link -lib /nologo /out:vc7/libboost_regex-vc7-mt-s-1_31.lib $(XSFLAGS) vc7/libboost_regex-vc7-mt-s-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-mt-s-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-mt-s-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-mt-s-1_31/cregex.obj vc7/libboost_regex-vc7-mt-s-1_31/fileiter.obj vc7/libboost_regex-vc7-mt-s-1_31/instances.obj vc7/libboost_regex-vc7-mt-s-1_31/posix_api.obj vc7/libboost_regex-vc7-mt-s-1_31/regex.obj vc7/libboost_regex-vc7-mt-s-1_31/regex_debug.obj vc7/libboost_regex-vc7-mt-s-1_31/regex_synch.obj vc7/libboost_regex-vc7-mt-s-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-mt-s-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-mt-s-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc7-sgd-1_31.lib
#
########################################################
vc7/libboost_regex-vc7-sgd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/c_regex_traits.cpp
vc7/libboost_regex-vc7-sgd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/c_regex_traits_common.cpp
vc7/libboost_regex-vc7-sgd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/cpp_regex_traits.cpp
vc7/libboost_regex-vc7-sgd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/cregex.cpp
vc7/libboost_regex-vc7-sgd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/fileiter.cpp
vc7/libboost_regex-vc7-sgd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/instances.cpp
vc7/libboost_regex-vc7-sgd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/posix_api.cpp
vc7/libboost_regex-vc7-sgd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/regex.cpp
vc7/libboost_regex-vc7-sgd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/regex_debug.cpp
vc7/libboost_regex-vc7-sgd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/regex_synch.cpp
vc7/libboost_regex-vc7-sgd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/w32_regex_traits.cpp
vc7/libboost_regex-vc7-sgd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/wide_posix_api.cpp
vc7/libboost_regex-vc7-sgd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-sgd-1_31/ -Fdvc7/libboost_regex-vc7-sgd-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-sgd-1_31_dir :
@if not exist "vc7\libboost_regex-vc7-sgd-1_31\$(NULL)" mkdir vc7\libboost_regex-vc7-sgd-1_31
libboost_regex-vc7-sgd-1_31_clean :
del vc7\libboost_regex-vc7-sgd-1_31\*.obj
del vc7\libboost_regex-vc7-sgd-1_31\*.idb
del vc7\libboost_regex-vc7-sgd-1_31\*.exp
del vc7\libboost_regex-vc7-sgd-1_31\*.pch
./vc7/libboost_regex-vc7-sgd-1_31.lib : vc7/libboost_regex-vc7-sgd-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-sgd-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-sgd-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-sgd-1_31/cregex.obj vc7/libboost_regex-vc7-sgd-1_31/fileiter.obj vc7/libboost_regex-vc7-sgd-1_31/instances.obj vc7/libboost_regex-vc7-sgd-1_31/posix_api.obj vc7/libboost_regex-vc7-sgd-1_31/regex.obj vc7/libboost_regex-vc7-sgd-1_31/regex_debug.obj vc7/libboost_regex-vc7-sgd-1_31/regex_synch.obj vc7/libboost_regex-vc7-sgd-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-sgd-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-sgd-1_31/winstances.obj
link -lib /nologo /out:vc7/libboost_regex-vc7-sgd-1_31.lib $(XSFLAGS) vc7/libboost_regex-vc7-sgd-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-sgd-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-sgd-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-sgd-1_31/cregex.obj vc7/libboost_regex-vc7-sgd-1_31/fileiter.obj vc7/libboost_regex-vc7-sgd-1_31/instances.obj vc7/libboost_regex-vc7-sgd-1_31/posix_api.obj vc7/libboost_regex-vc7-sgd-1_31/regex.obj vc7/libboost_regex-vc7-sgd-1_31/regex_debug.obj vc7/libboost_regex-vc7-sgd-1_31/regex_synch.obj vc7/libboost_regex-vc7-sgd-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-sgd-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-sgd-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc7-mt-sgd-1_31.lib
#
########################################################
vc7/libboost_regex-vc7-mt-sgd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/c_regex_traits.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/c_regex_traits_common.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/cpp_regex_traits.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/cregex.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/fileiter.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/instances.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/posix_api.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/regex.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/regex_debug.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/regex_synch.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/w32_regex_traits.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/wide_posix_api.cpp
vc7/libboost_regex-vc7-mt-sgd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-sgd-1_31/ -Fdvc7/libboost_regex-vc7-mt-sgd-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-mt-sgd-1_31_dir :
@if not exist "vc7\libboost_regex-vc7-mt-sgd-1_31\$(NULL)" mkdir vc7\libboost_regex-vc7-mt-sgd-1_31
libboost_regex-vc7-mt-sgd-1_31_clean :
del vc7\libboost_regex-vc7-mt-sgd-1_31\*.obj
del vc7\libboost_regex-vc7-mt-sgd-1_31\*.idb
del vc7\libboost_regex-vc7-mt-sgd-1_31\*.exp
del vc7\libboost_regex-vc7-mt-sgd-1_31\*.pch
./vc7/libboost_regex-vc7-mt-sgd-1_31.lib : vc7/libboost_regex-vc7-mt-sgd-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-mt-sgd-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-mt-sgd-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-mt-sgd-1_31/cregex.obj vc7/libboost_regex-vc7-mt-sgd-1_31/fileiter.obj vc7/libboost_regex-vc7-mt-sgd-1_31/instances.obj vc7/libboost_regex-vc7-mt-sgd-1_31/posix_api.obj vc7/libboost_regex-vc7-mt-sgd-1_31/regex.obj vc7/libboost_regex-vc7-mt-sgd-1_31/regex_debug.obj vc7/libboost_regex-vc7-mt-sgd-1_31/regex_synch.obj vc7/libboost_regex-vc7-mt-sgd-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-mt-sgd-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-mt-sgd-1_31/winstances.obj
link -lib /nologo /out:vc7/libboost_regex-vc7-mt-sgd-1_31.lib $(XSFLAGS) vc7/libboost_regex-vc7-mt-sgd-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-mt-sgd-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-mt-sgd-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-mt-sgd-1_31/cregex.obj vc7/libboost_regex-vc7-mt-sgd-1_31/fileiter.obj vc7/libboost_regex-vc7-mt-sgd-1_31/instances.obj vc7/libboost_regex-vc7-mt-sgd-1_31/posix_api.obj vc7/libboost_regex-vc7-mt-sgd-1_31/regex.obj vc7/libboost_regex-vc7-mt-sgd-1_31/regex_debug.obj vc7/libboost_regex-vc7-mt-sgd-1_31/regex_synch.obj vc7/libboost_regex-vc7-mt-sgd-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-mt-sgd-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-mt-sgd-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc7-mt-gd-1_31.lib
#
########################################################
vc7/boost_regex-vc7-mt-gd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/c_regex_traits.cpp
vc7/boost_regex-vc7-mt-gd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/c_regex_traits_common.cpp
vc7/boost_regex-vc7-mt-gd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/cpp_regex_traits.cpp
vc7/boost_regex-vc7-mt-gd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/cregex.cpp
vc7/boost_regex-vc7-mt-gd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/fileiter.cpp
vc7/boost_regex-vc7-mt-gd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/instances.cpp
vc7/boost_regex-vc7-mt-gd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/posix_api.cpp
vc7/boost_regex-vc7-mt-gd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/regex.cpp
vc7/boost_regex-vc7-mt-gd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/regex_debug.cpp
vc7/boost_regex-vc7-mt-gd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/regex_synch.cpp
vc7/boost_regex-vc7-mt-gd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/w32_regex_traits.cpp
vc7/boost_regex-vc7-mt-gd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/wide_posix_api.cpp
vc7/boost_regex-vc7-mt-gd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-gd-1_31/ -Fdvc7/boost_regex-vc7-mt-gd-1_31.pdb ../src/winstances.cpp
boost_regex-vc7-mt-gd-1_31_dir :
@if not exist "vc7\boost_regex-vc7-mt-gd-1_31\$(NULL)" mkdir vc7\boost_regex-vc7-mt-gd-1_31
boost_regex-vc7-mt-gd-1_31_clean :
del vc7\boost_regex-vc7-mt-gd-1_31\*.obj
del vc7\boost_regex-vc7-mt-gd-1_31\*.idb
del vc7\boost_regex-vc7-mt-gd-1_31\*.exp
del vc7\boost_regex-vc7-mt-gd-1_31\*.pch
./vc7/boost_regex-vc7-mt-gd-1_31.lib : vc7/boost_regex-vc7-mt-gd-1_31/c_regex_traits.obj vc7/boost_regex-vc7-mt-gd-1_31/c_regex_traits_common.obj vc7/boost_regex-vc7-mt-gd-1_31/cpp_regex_traits.obj vc7/boost_regex-vc7-mt-gd-1_31/cregex.obj vc7/boost_regex-vc7-mt-gd-1_31/fileiter.obj vc7/boost_regex-vc7-mt-gd-1_31/instances.obj vc7/boost_regex-vc7-mt-gd-1_31/posix_api.obj vc7/boost_regex-vc7-mt-gd-1_31/regex.obj vc7/boost_regex-vc7-mt-gd-1_31/regex_debug.obj vc7/boost_regex-vc7-mt-gd-1_31/regex_synch.obj vc7/boost_regex-vc7-mt-gd-1_31/w32_regex_traits.obj vc7/boost_regex-vc7-mt-gd-1_31/wide_posix_api.obj vc7/boost_regex-vc7-mt-gd-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc7/boost_regex-vc7-mt-gd-1_31.pdb" /debug /machine:I386 /out:"vc7/boost_regex-vc7-mt-gd-1_31.dll" /implib:"vc7/boost_regex-vc7-mt-gd-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc7/boost_regex-vc7-mt-gd-1_31/c_regex_traits.obj vc7/boost_regex-vc7-mt-gd-1_31/c_regex_traits_common.obj vc7/boost_regex-vc7-mt-gd-1_31/cpp_regex_traits.obj vc7/boost_regex-vc7-mt-gd-1_31/cregex.obj vc7/boost_regex-vc7-mt-gd-1_31/fileiter.obj vc7/boost_regex-vc7-mt-gd-1_31/instances.obj vc7/boost_regex-vc7-mt-gd-1_31/posix_api.obj vc7/boost_regex-vc7-mt-gd-1_31/regex.obj vc7/boost_regex-vc7-mt-gd-1_31/regex_debug.obj vc7/boost_regex-vc7-mt-gd-1_31/regex_synch.obj vc7/boost_regex-vc7-mt-gd-1_31/w32_regex_traits.obj vc7/boost_regex-vc7-mt-gd-1_31/wide_posix_api.obj vc7/boost_regex-vc7-mt-gd-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc7-mt-1_31.lib
#
########################################################
vc7/boost_regex-vc7-mt-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/c_regex_traits.cpp
vc7/boost_regex-vc7-mt-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/c_regex_traits_common.cpp
vc7/boost_regex-vc7-mt-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/cpp_regex_traits.cpp
vc7/boost_regex-vc7-mt-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/cregex.cpp
vc7/boost_regex-vc7-mt-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/fileiter.cpp
vc7/boost_regex-vc7-mt-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/instances.cpp
vc7/boost_regex-vc7-mt-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/posix_api.cpp
vc7/boost_regex-vc7-mt-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/regex.cpp
vc7/boost_regex-vc7-mt-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/regex_debug.cpp
vc7/boost_regex-vc7-mt-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/regex_synch.cpp
vc7/boost_regex-vc7-mt-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/w32_regex_traits.cpp
vc7/boost_regex-vc7-mt-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/wide_posix_api.cpp
vc7/boost_regex-vc7-mt-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/boost_regex-vc7-mt-1_31/ -Fdvc7/boost_regex-vc7-mt-1_31.pdb ../src/winstances.cpp
boost_regex-vc7-mt-1_31_dir :
@if not exist "vc7\boost_regex-vc7-mt-1_31\$(NULL)" mkdir vc7\boost_regex-vc7-mt-1_31
boost_regex-vc7-mt-1_31_clean :
del vc7\boost_regex-vc7-mt-1_31\*.obj
del vc7\boost_regex-vc7-mt-1_31\*.idb
del vc7\boost_regex-vc7-mt-1_31\*.exp
del vc7\boost_regex-vc7-mt-1_31\*.pch
./vc7/boost_regex-vc7-mt-1_31.lib : vc7/boost_regex-vc7-mt-1_31/c_regex_traits.obj vc7/boost_regex-vc7-mt-1_31/c_regex_traits_common.obj vc7/boost_regex-vc7-mt-1_31/cpp_regex_traits.obj vc7/boost_regex-vc7-mt-1_31/cregex.obj vc7/boost_regex-vc7-mt-1_31/fileiter.obj vc7/boost_regex-vc7-mt-1_31/instances.obj vc7/boost_regex-vc7-mt-1_31/posix_api.obj vc7/boost_regex-vc7-mt-1_31/regex.obj vc7/boost_regex-vc7-mt-1_31/regex_debug.obj vc7/boost_regex-vc7-mt-1_31/regex_synch.obj vc7/boost_regex-vc7-mt-1_31/w32_regex_traits.obj vc7/boost_regex-vc7-mt-1_31/wide_posix_api.obj vc7/boost_regex-vc7-mt-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc7/boost_regex-vc7-mt-1_31.pdb" /debug /machine:I386 /out:"vc7/boost_regex-vc7-mt-1_31.dll" /implib:"vc7/boost_regex-vc7-mt-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc7/boost_regex-vc7-mt-1_31/c_regex_traits.obj vc7/boost_regex-vc7-mt-1_31/c_regex_traits_common.obj vc7/boost_regex-vc7-mt-1_31/cpp_regex_traits.obj vc7/boost_regex-vc7-mt-1_31/cregex.obj vc7/boost_regex-vc7-mt-1_31/fileiter.obj vc7/boost_regex-vc7-mt-1_31/instances.obj vc7/boost_regex-vc7-mt-1_31/posix_api.obj vc7/boost_regex-vc7-mt-1_31/regex.obj vc7/boost_regex-vc7-mt-1_31/regex_debug.obj vc7/boost_regex-vc7-mt-1_31/regex_synch.obj vc7/boost_regex-vc7-mt-1_31/w32_regex_traits.obj vc7/boost_regex-vc7-mt-1_31/wide_posix_api.obj vc7/boost_regex-vc7-mt-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc7-mt-1_31.lib
#
########################################################
vc7/libboost_regex-vc7-mt-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/c_regex_traits.cpp
vc7/libboost_regex-vc7-mt-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/c_regex_traits_common.cpp
vc7/libboost_regex-vc7-mt-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/cpp_regex_traits.cpp
vc7/libboost_regex-vc7-mt-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/cregex.cpp
vc7/libboost_regex-vc7-mt-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/fileiter.cpp
vc7/libboost_regex-vc7-mt-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/instances.cpp
vc7/libboost_regex-vc7-mt-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/posix_api.cpp
vc7/libboost_regex-vc7-mt-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/regex.cpp
vc7/libboost_regex-vc7-mt-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/regex_debug.cpp
vc7/libboost_regex-vc7-mt-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/regex_synch.cpp
vc7/libboost_regex-vc7-mt-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/w32_regex_traits.cpp
vc7/libboost_regex-vc7-mt-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/wide_posix_api.cpp
vc7/libboost_regex-vc7-mt-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-1_31/ -Fdvc7/libboost_regex-vc7-mt-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-mt-1_31_dir :
@if not exist "vc7\libboost_regex-vc7-mt-1_31\$(NULL)" mkdir vc7\libboost_regex-vc7-mt-1_31
libboost_regex-vc7-mt-1_31_clean :
del vc7\libboost_regex-vc7-mt-1_31\*.obj
del vc7\libboost_regex-vc7-mt-1_31\*.idb
del vc7\libboost_regex-vc7-mt-1_31\*.exp
del vc7\libboost_regex-vc7-mt-1_31\*.pch
./vc7/libboost_regex-vc7-mt-1_31.lib : vc7/libboost_regex-vc7-mt-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-mt-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-mt-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-mt-1_31/cregex.obj vc7/libboost_regex-vc7-mt-1_31/fileiter.obj vc7/libboost_regex-vc7-mt-1_31/instances.obj vc7/libboost_regex-vc7-mt-1_31/posix_api.obj vc7/libboost_regex-vc7-mt-1_31/regex.obj vc7/libboost_regex-vc7-mt-1_31/regex_debug.obj vc7/libboost_regex-vc7-mt-1_31/regex_synch.obj vc7/libboost_regex-vc7-mt-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-mt-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-mt-1_31/winstances.obj
link -lib /nologo /out:vc7/libboost_regex-vc7-mt-1_31.lib $(XSFLAGS) vc7/libboost_regex-vc7-mt-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-mt-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-mt-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-mt-1_31/cregex.obj vc7/libboost_regex-vc7-mt-1_31/fileiter.obj vc7/libboost_regex-vc7-mt-1_31/instances.obj vc7/libboost_regex-vc7-mt-1_31/posix_api.obj vc7/libboost_regex-vc7-mt-1_31/regex.obj vc7/libboost_regex-vc7-mt-1_31/regex_debug.obj vc7/libboost_regex-vc7-mt-1_31/regex_synch.obj vc7/libboost_regex-vc7-mt-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-mt-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-mt-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc7-mt-gd-1_31.lib
#
########################################################
vc7/libboost_regex-vc7-mt-gd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/c_regex_traits.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/c_regex_traits_common.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/cpp_regex_traits.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/cregex.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/fileiter.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/instances.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/posix_api.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/regex.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/regex_debug.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/regex_synch.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/w32_regex_traits.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/wide_posix_api.cpp
vc7/libboost_regex-vc7-mt-gd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc7/libboost_regex-vc7-mt-gd-1_31/ -Fdvc7/libboost_regex-vc7-mt-gd-1_31.pdb ../src/winstances.cpp
libboost_regex-vc7-mt-gd-1_31_dir :
@if not exist "vc7\libboost_regex-vc7-mt-gd-1_31\$(NULL)" mkdir vc7\libboost_regex-vc7-mt-gd-1_31
libboost_regex-vc7-mt-gd-1_31_clean :
del vc7\libboost_regex-vc7-mt-gd-1_31\*.obj
del vc7\libboost_regex-vc7-mt-gd-1_31\*.idb
del vc7\libboost_regex-vc7-mt-gd-1_31\*.exp
del vc7\libboost_regex-vc7-mt-gd-1_31\*.pch
./vc7/libboost_regex-vc7-mt-gd-1_31.lib : vc7/libboost_regex-vc7-mt-gd-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-mt-gd-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-mt-gd-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-mt-gd-1_31/cregex.obj vc7/libboost_regex-vc7-mt-gd-1_31/fileiter.obj vc7/libboost_regex-vc7-mt-gd-1_31/instances.obj vc7/libboost_regex-vc7-mt-gd-1_31/posix_api.obj vc7/libboost_regex-vc7-mt-gd-1_31/regex.obj vc7/libboost_regex-vc7-mt-gd-1_31/regex_debug.obj vc7/libboost_regex-vc7-mt-gd-1_31/regex_synch.obj vc7/libboost_regex-vc7-mt-gd-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-mt-gd-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-mt-gd-1_31/winstances.obj
link -lib /nologo /out:vc7/libboost_regex-vc7-mt-gd-1_31.lib $(XSFLAGS) vc7/libboost_regex-vc7-mt-gd-1_31/c_regex_traits.obj vc7/libboost_regex-vc7-mt-gd-1_31/c_regex_traits_common.obj vc7/libboost_regex-vc7-mt-gd-1_31/cpp_regex_traits.obj vc7/libboost_regex-vc7-mt-gd-1_31/cregex.obj vc7/libboost_regex-vc7-mt-gd-1_31/fileiter.obj vc7/libboost_regex-vc7-mt-gd-1_31/instances.obj vc7/libboost_regex-vc7-mt-gd-1_31/posix_api.obj vc7/libboost_regex-vc7-mt-gd-1_31/regex.obj vc7/libboost_regex-vc7-mt-gd-1_31/regex_debug.obj vc7/libboost_regex-vc7-mt-gd-1_31/regex_synch.obj vc7/libboost_regex-vc7-mt-gd-1_31/w32_regex_traits.obj vc7/libboost_regex-vc7-mt-gd-1_31/wide_posix_api.obj vc7/libboost_regex-vc7-mt-gd-1_31/winstances.obj

View File

@ -1,404 +0,0 @@
#
# auto generated makefile for VC6+STLPort
#
# usage:
# make
# brings libraries up to date
# make install
# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
#
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
XLFLAGS=
#
# add additional static-library creation flags here:
#
XSFLAGS=
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(MSVCDIR)" == ""
!ERROR Variable MSVCDIR not set.
!ENDIF
!IF "$(STLPORT_PATH)" == ""
!ERROR Variable STLPORT_PATH not set.
!ENDIF
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : main_dir libboost_regex-vc71-mt-sp-1_31_dir ./vc71-stlport/libboost_regex-vc71-mt-sp-1_31.lib boost_regex-vc71-mt-p-1_31_dir ./vc71-stlport/boost_regex-vc71-mt-p-1_31.lib libboost_regex-vc71-mt-p-1_31_dir ./vc71-stlport/libboost_regex-vc71-mt-p-1_31.lib boost_regex-vc71-mt-gdp-1_31_dir ./vc71-stlport/boost_regex-vc71-mt-gdp-1_31.lib libboost_regex-vc71-mt-sgdp-1_31_dir ./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.lib libboost_regex-vc71-mt-gdp-1_31_dir ./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31.lib
clean : libboost_regex-vc71-mt-sp-1_31_clean boost_regex-vc71-mt-p-1_31_clean libboost_regex-vc71-mt-p-1_31_clean boost_regex-vc71-mt-gdp-1_31_clean libboost_regex-vc71-mt-sgdp-1_31_clean libboost_regex-vc71-mt-gdp-1_31_clean
install : stlport_check all
copy vc71-stlport\libboost_regex-vc71-mt-sp-1_31.lib "$(MSVCDIR)\lib"
copy vc71-stlport\boost_regex-vc71-mt-p-1_31.lib "$(MSVCDIR)\lib"
copy vc71-stlport\boost_regex-vc71-mt-p-1_31.dll "$(MSVCDIR)\bin"
copy vc71-stlport\libboost_regex-vc71-mt-p-1_31.lib "$(MSVCDIR)\lib"
copy vc71-stlport\boost_regex-vc71-mt-gdp-1_31.lib "$(MSVCDIR)\lib"
copy vc71-stlport\boost_regex-vc71-mt-gdp-1_31.dll "$(MSVCDIR)\bin"
copy vc71-stlport\boost_regex-vc71-mt-gdp-1_31.pdb "$(MSVCDIR)\lib"
copy vc71-stlport\libboost_regex-vc71-mt-sgdp-1_31.lib "$(MSVCDIR)\lib"
copy vc71-stlport\libboost_regex-vc71-mt-sgdp-1_31.pdb "$(MSVCDIR)\lib"
copy vc71-stlport\libboost_regex-vc71-mt-gdp-1_31.lib "$(MSVCDIR)\lib"
copy vc71-stlport\libboost_regex-vc71-mt-gdp-1_31.pdb "$(MSVCDIR)\lib"
main_dir :
@if not exist "vc71-stlport\$(NULL)" mkdir vc71-stlport
stlport_check : $(STLPORT_PATH)\stlport\string
echo
########################################################
#
# section for libboost_regex-vc71-mt-sp-1_31.lib
#
########################################################
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/c_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/c_regex_traits_common.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/cpp_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/cregex.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/fileiter.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/instances.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/posix_api.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/regex.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/regex_debug.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/regex_synch.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/w32_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/wide_posix_api.cpp
vc71-stlport/libboost_regex-vc71-mt-sp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sp-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-mt-sp-1_31_dir :
@if not exist "vc71-stlport\libboost_regex-vc71-mt-sp-1_31\$(NULL)" mkdir vc71-stlport\libboost_regex-vc71-mt-sp-1_31
libboost_regex-vc71-mt-sp-1_31_clean :
del vc71-stlport\libboost_regex-vc71-mt-sp-1_31\*.obj
del vc71-stlport\libboost_regex-vc71-mt-sp-1_31\*.idb
del vc71-stlport\libboost_regex-vc71-mt-sp-1_31\*.exp
del vc71-stlport\libboost_regex-vc71-mt-sp-1_31\*.pch
./vc71-stlport/libboost_regex-vc71-mt-sp-1_31.lib : vc71-stlport/libboost_regex-vc71-mt-sp-1_31/c_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/c_regex_traits_common.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/cpp_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/cregex.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/fileiter.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/instances.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/posix_api.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/regex.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/regex_debug.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/regex_synch.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/w32_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/wide_posix_api.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/winstances.obj
link -lib /nologo /out:vc71-stlport/libboost_regex-vc71-mt-sp-1_31.lib $(XSFLAGS) vc71-stlport/libboost_regex-vc71-mt-sp-1_31/c_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/c_regex_traits_common.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/cpp_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/cregex.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/fileiter.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/instances.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/posix_api.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/regex.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/regex_debug.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/regex_synch.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/w32_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/wide_posix_api.obj vc71-stlport/libboost_regex-vc71-mt-sp-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc71-mt-p-1_31.lib
#
########################################################
vc71-stlport/boost_regex-vc71-mt-p-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/c_regex_traits.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/c_regex_traits_common.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/cpp_regex_traits.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/cregex.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/fileiter.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/instances.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/posix_api.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/regex.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/regex_debug.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/regex_synch.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/w32_regex_traits.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/wide_posix_api.cpp
vc71-stlport/boost_regex-vc71-mt-p-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-p-1_31.pdb ../src/winstances.cpp
boost_regex-vc71-mt-p-1_31_dir :
@if not exist "vc71-stlport\boost_regex-vc71-mt-p-1_31\$(NULL)" mkdir vc71-stlport\boost_regex-vc71-mt-p-1_31
boost_regex-vc71-mt-p-1_31_clean :
del vc71-stlport\boost_regex-vc71-mt-p-1_31\*.obj
del vc71-stlport\boost_regex-vc71-mt-p-1_31\*.idb
del vc71-stlport\boost_regex-vc71-mt-p-1_31\*.exp
del vc71-stlport\boost_regex-vc71-mt-p-1_31\*.pch
./vc71-stlport/boost_regex-vc71-mt-p-1_31.lib : vc71-stlport/boost_regex-vc71-mt-p-1_31/c_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/c_regex_traits_common.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/cpp_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/cregex.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/fileiter.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/instances.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/posix_api.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/regex.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/regex_debug.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/regex_synch.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/w32_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/wide_posix_api.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc71-stlport/boost_regex-vc71-mt-p-1_31.pdb" /debug /machine:I386 /out:"vc71-stlport/boost_regex-vc71-mt-p-1_31.dll" /implib:"vc71-stlport/boost_regex-vc71-mt-p-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc71-stlport/boost_regex-vc71-mt-p-1_31/c_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/c_regex_traits_common.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/cpp_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/cregex.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/fileiter.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/instances.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/posix_api.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/regex.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/regex_debug.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/regex_synch.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/w32_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/wide_posix_api.obj vc71-stlport/boost_regex-vc71-mt-p-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc71-mt-p-1_31.lib
#
########################################################
vc71-stlport/libboost_regex-vc71-mt-p-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/c_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/c_regex_traits_common.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/cpp_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/cregex.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/fileiter.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/instances.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/posix_api.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/regex.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/regex_debug.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/regex_synch.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/w32_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/wide_posix_api.cpp
vc71-stlport/libboost_regex-vc71-mt-p-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-p-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-p-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-mt-p-1_31_dir :
@if not exist "vc71-stlport\libboost_regex-vc71-mt-p-1_31\$(NULL)" mkdir vc71-stlport\libboost_regex-vc71-mt-p-1_31
libboost_regex-vc71-mt-p-1_31_clean :
del vc71-stlport\libboost_regex-vc71-mt-p-1_31\*.obj
del vc71-stlport\libboost_regex-vc71-mt-p-1_31\*.idb
del vc71-stlport\libboost_regex-vc71-mt-p-1_31\*.exp
del vc71-stlport\libboost_regex-vc71-mt-p-1_31\*.pch
./vc71-stlport/libboost_regex-vc71-mt-p-1_31.lib : vc71-stlport/libboost_regex-vc71-mt-p-1_31/c_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/c_regex_traits_common.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/cpp_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/cregex.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/fileiter.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/instances.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/posix_api.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/regex.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/regex_debug.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/regex_synch.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/w32_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/wide_posix_api.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/winstances.obj
link -lib /nologo /out:vc71-stlport/libboost_regex-vc71-mt-p-1_31.lib $(XSFLAGS) vc71-stlport/libboost_regex-vc71-mt-p-1_31/c_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/c_regex_traits_common.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/cpp_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/cregex.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/fileiter.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/instances.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/posix_api.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/regex.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/regex_debug.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/regex_synch.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/w32_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/wide_posix_api.obj vc71-stlport/libboost_regex-vc71-mt-p-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc71-mt-gdp-1_31.lib
#
########################################################
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/c_regex_traits.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/c_regex_traits_common.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/cpp_regex_traits.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/cregex.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/fileiter.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/instances.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/posix_api.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/regex.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/regex_debug.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/regex_synch.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/w32_regex_traits.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/wide_posix_api.cpp
vc71-stlport/boost_regex-vc71-mt-gdp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/boost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb ../src/winstances.cpp
boost_regex-vc71-mt-gdp-1_31_dir :
@if not exist "vc71-stlport\boost_regex-vc71-mt-gdp-1_31\$(NULL)" mkdir vc71-stlport\boost_regex-vc71-mt-gdp-1_31
boost_regex-vc71-mt-gdp-1_31_clean :
del vc71-stlport\boost_regex-vc71-mt-gdp-1_31\*.obj
del vc71-stlport\boost_regex-vc71-mt-gdp-1_31\*.idb
del vc71-stlport\boost_regex-vc71-mt-gdp-1_31\*.exp
del vc71-stlport\boost_regex-vc71-mt-gdp-1_31\*.pch
./vc71-stlport/boost_regex-vc71-mt-gdp-1_31.lib : vc71-stlport/boost_regex-vc71-mt-gdp-1_31/c_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/c_regex_traits_common.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/cpp_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/cregex.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/fileiter.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/instances.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/posix_api.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/regex.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/regex_debug.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/regex_synch.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/w32_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/wide_posix_api.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc71-stlport/boost_regex-vc71-mt-gdp-1_31.pdb" /debug /machine:I386 /out:"vc71-stlport/boost_regex-vc71-mt-gdp-1_31.dll" /implib:"vc71-stlport/boost_regex-vc71-mt-gdp-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc71-stlport/boost_regex-vc71-mt-gdp-1_31/c_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/c_regex_traits_common.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/cpp_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/cregex.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/fileiter.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/instances.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/posix_api.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/regex.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/regex_debug.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/regex_synch.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/w32_regex_traits.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/wide_posix_api.obj vc71-stlport/boost_regex-vc71-mt-gdp-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc71-mt-sgdp-1_31.lib
#
########################################################
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/c_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/c_regex_traits_common.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/cpp_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/cregex.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/fileiter.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/instances.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/posix_api.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/regex.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/regex_debug.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/regex_synch.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/w32_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/wide_posix_api.cpp
vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-mt-sgdp-1_31_dir :
@if not exist "vc71-stlport\libboost_regex-vc71-mt-sgdp-1_31\$(NULL)" mkdir vc71-stlport\libboost_regex-vc71-mt-sgdp-1_31
libboost_regex-vc71-mt-sgdp-1_31_clean :
del vc71-stlport\libboost_regex-vc71-mt-sgdp-1_31\*.obj
del vc71-stlport\libboost_regex-vc71-mt-sgdp-1_31\*.idb
del vc71-stlport\libboost_regex-vc71-mt-sgdp-1_31\*.exp
del vc71-stlport\libboost_regex-vc71-mt-sgdp-1_31\*.pch
./vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.lib : vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/c_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/c_regex_traits_common.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/cpp_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/cregex.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/fileiter.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/instances.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/posix_api.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/regex.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/regex_debug.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/regex_synch.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/w32_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/wide_posix_api.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/winstances.obj
link -lib /nologo /out:vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31.lib $(XSFLAGS) vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/c_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/c_regex_traits_common.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/cpp_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/cregex.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/fileiter.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/instances.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/posix_api.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/regex.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/regex_debug.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/regex_synch.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/w32_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/wide_posix_api.obj vc71-stlport/libboost_regex-vc71-mt-sgdp-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc71-mt-gdp-1_31.lib
#
########################################################
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/c_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/c_regex_traits_common.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/cpp_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/cregex.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/fileiter.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/instances.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/posix_api.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/regex.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/regex_debug.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/regex_synch.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/w32_regex_traits.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/wide_posix_api.cpp
vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/ -Fdvc71-stlport/libboost_regex-vc71-mt-gdp-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-mt-gdp-1_31_dir :
@if not exist "vc71-stlport\libboost_regex-vc71-mt-gdp-1_31\$(NULL)" mkdir vc71-stlport\libboost_regex-vc71-mt-gdp-1_31
libboost_regex-vc71-mt-gdp-1_31_clean :
del vc71-stlport\libboost_regex-vc71-mt-gdp-1_31\*.obj
del vc71-stlport\libboost_regex-vc71-mt-gdp-1_31\*.idb
del vc71-stlport\libboost_regex-vc71-mt-gdp-1_31\*.exp
del vc71-stlport\libboost_regex-vc71-mt-gdp-1_31\*.pch
./vc71-stlport/libboost_regex-vc71-mt-gdp-1_31.lib : vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/c_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/c_regex_traits_common.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/cpp_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/cregex.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/fileiter.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/instances.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/posix_api.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/regex.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/regex_debug.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/regex_synch.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/w32_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/wide_posix_api.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/winstances.obj
link -lib /nologo /out:vc71-stlport/libboost_regex-vc71-mt-gdp-1_31.lib $(XSFLAGS) vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/c_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/c_regex_traits_common.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/cpp_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/cregex.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/fileiter.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/instances.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/posix_api.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/regex.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/regex_debug.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/regex_synch.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/w32_regex_traits.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/wide_posix_api.obj vc71-stlport/libboost_regex-vc71-mt-gdp-1_31/winstances.obj

View File

@ -1,512 +0,0 @@
#
# auto generated makefile for VC6 compiler
#
# usage:
# make
# brings libraries up to date
# make install
# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
#
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
XLFLAGS=
#
# add additional static-library creation flags here:
#
XSFLAGS=
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(MSVCDIR)" == ""
!ERROR Variable MSVCDIR not set.
!ENDIF
ALL_HEADER= ../../../boost/regex/config.hpp ../../../boost/regex/pattern_except.hpp ../../../boost/regex/regex_traits.hpp ../../../boost/regex/user.hpp ../../../boost/regex/v3/cregex.hpp ../../../boost/regex/v3/fileiter.hpp ../../../boost/regex/v3/instances.hpp ../../../boost/regex/v3/regex.hpp ../../../boost/regex/v3/regex_compile.hpp ../../../boost/regex/v3/regex_cstring.hpp ../../../boost/regex/v3/regex_format.hpp ../../../boost/regex/v3/regex_fwd.hpp ../../../boost/regex/v3/regex_kmp.hpp ../../../boost/regex/v3/regex_library_include.hpp ../../../boost/regex/v3/regex_match.hpp ../../../boost/regex/v3/regex_raw_buffer.hpp ../../../boost/regex/v3/regex_split.hpp ../../../boost/regex/v3/regex_stack.hpp ../../../boost/regex/v3/regex_synch.hpp ../../../boost/regex/v3/regex_traits.hpp ../../../boost/regex/v4/basic_regex.hpp ../../../boost/regex/v4/char_regex_traits.hpp ../../../boost/regex/v4/cregex.hpp ../../../boost/regex/v4/fileiter.hpp ../../../boost/regex/v4/instances.hpp ../../../boost/regex/v4/iterator_category.hpp ../../../boost/regex/v4/iterator_traits.hpp ../../../boost/regex/v4/match_flags.hpp ../../../boost/regex/v4/match_results.hpp ../../../boost/regex/v4/mem_block_cache.hpp ../../../boost/regex/v4/perl_matcher.hpp ../../../boost/regex/v4/perl_matcher_common.hpp ../../../boost/regex/v4/perl_matcher_non_recursive.hpp ../../../boost/regex/v4/perl_matcher_recursive.hpp ../../../boost/regex/v4/regbase.hpp ../../../boost/regex/v4/regex.hpp ../../../boost/regex/v4/regex_compile.hpp ../../../boost/regex/v4/regex_cstring.hpp ../../../boost/regex/v4/regex_format.hpp ../../../boost/regex/v4/regex_fwd.hpp ../../../boost/regex/v4/regex_grep.hpp ../../../boost/regex/v4/regex_iterator.hpp ../../../boost/regex/v4/regex_kmp.hpp ../../../boost/regex/v4/regex_match.hpp ../../../boost/regex/v4/regex_merge.hpp ../../../boost/regex/v4/regex_raw_buffer.hpp ../../../boost/regex/v4/regex_replace.hpp ../../../boost/regex/v4/regex_search.hpp ../../../boost/regex/v4/regex_split.hpp ../../../boost/regex/v4/regex_stack.hpp ../../../boost/regex/v4/regex_synch.hpp ../../../boost/regex/v4/regex_token_iterator.hpp ../../../boost/regex/v4/regex_traits.hpp ../../../boost/regex/v4/states.hpp ../../../boost/regex/v4/sub_match.hpp ../../../boost/regex/config/borland.hpp ../../../boost/regex/config/cstring.hpp ../../../boost/regex/config/cwchar.hpp ../../../boost/regex/config/regex_library_include.hpp
all : main_dir libboost_regex-vc71-s-1_31_dir ./vc71/libboost_regex-vc71-s-1_31.lib libboost_regex-vc71-mt-s-1_31_dir ./vc71/libboost_regex-vc71-mt-s-1_31.lib libboost_regex-vc71-sgd-1_31_dir ./vc71/libboost_regex-vc71-sgd-1_31.lib libboost_regex-vc71-mt-sgd-1_31_dir ./vc71/libboost_regex-vc71-mt-sgd-1_31.lib boost_regex-vc71-mt-gd-1_31_dir ./vc71/boost_regex-vc71-mt-gd-1_31.lib boost_regex-vc71-mt-1_31_dir ./vc71/boost_regex-vc71-mt-1_31.lib libboost_regex-vc71-mt-1_31_dir ./vc71/libboost_regex-vc71-mt-1_31.lib libboost_regex-vc71-mt-gd-1_31_dir ./vc71/libboost_regex-vc71-mt-gd-1_31.lib
clean : libboost_regex-vc71-s-1_31_clean libboost_regex-vc71-mt-s-1_31_clean libboost_regex-vc71-sgd-1_31_clean libboost_regex-vc71-mt-sgd-1_31_clean boost_regex-vc71-mt-gd-1_31_clean boost_regex-vc71-mt-1_31_clean libboost_regex-vc71-mt-1_31_clean libboost_regex-vc71-mt-gd-1_31_clean
install : all
copy vc71\libboost_regex-vc71-s-1_31.lib "$(MSVCDIR)\lib"
copy vc71\libboost_regex-vc71-mt-s-1_31.lib "$(MSVCDIR)\lib"
copy vc71\libboost_regex-vc71-sgd-1_31.lib "$(MSVCDIR)\lib"
copy vc71\libboost_regex-vc71-sgd-1_31.pdb "$(MSVCDIR)\lib"
copy vc71\libboost_regex-vc71-mt-sgd-1_31.lib "$(MSVCDIR)\lib"
copy vc71\libboost_regex-vc71-mt-sgd-1_31.pdb "$(MSVCDIR)\lib"
copy vc71\boost_regex-vc71-mt-gd-1_31.lib "$(MSVCDIR)\lib"
copy vc71\boost_regex-vc71-mt-gd-1_31.dll "$(MSVCDIR)\bin"
copy vc71\boost_regex-vc71-mt-gd-1_31.pdb "$(MSVCDIR)\lib"
copy vc71\boost_regex-vc71-mt-1_31.lib "$(MSVCDIR)\lib"
copy vc71\boost_regex-vc71-mt-1_31.dll "$(MSVCDIR)\bin"
copy vc71\libboost_regex-vc71-mt-1_31.lib "$(MSVCDIR)\lib"
copy vc71\libboost_regex-vc71-mt-gd-1_31.lib "$(MSVCDIR)\lib"
copy vc71\libboost_regex-vc71-mt-gd-1_31.pdb "$(MSVCDIR)\lib"
main_dir :
@if not exist "vc71\$(NULL)" mkdir vc71
########################################################
#
# section for libboost_regex-vc71-s-1_31.lib
#
########################################################
vc71/libboost_regex-vc71-s-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/c_regex_traits.cpp
vc71/libboost_regex-vc71-s-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/c_regex_traits_common.cpp
vc71/libboost_regex-vc71-s-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/cpp_regex_traits.cpp
vc71/libboost_regex-vc71-s-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/cregex.cpp
vc71/libboost_regex-vc71-s-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/fileiter.cpp
vc71/libboost_regex-vc71-s-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/instances.cpp
vc71/libboost_regex-vc71-s-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/posix_api.cpp
vc71/libboost_regex-vc71-s-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/regex.cpp
vc71/libboost_regex-vc71-s-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/regex_debug.cpp
vc71/libboost_regex-vc71-s-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/regex_synch.cpp
vc71/libboost_regex-vc71-s-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/w32_regex_traits.cpp
vc71/libboost_regex-vc71-s-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/wide_posix_api.cpp
vc71/libboost_regex-vc71-s-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-s-1_31/ -Fdvc71/libboost_regex-vc71-s-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-s-1_31_dir :
@if not exist "vc71\libboost_regex-vc71-s-1_31\$(NULL)" mkdir vc71\libboost_regex-vc71-s-1_31
libboost_regex-vc71-s-1_31_clean :
del vc71\libboost_regex-vc71-s-1_31\*.obj
del vc71\libboost_regex-vc71-s-1_31\*.idb
del vc71\libboost_regex-vc71-s-1_31\*.exp
del vc71\libboost_regex-vc71-s-1_31\*.pch
./vc71/libboost_regex-vc71-s-1_31.lib : vc71/libboost_regex-vc71-s-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-s-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-s-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-s-1_31/cregex.obj vc71/libboost_regex-vc71-s-1_31/fileiter.obj vc71/libboost_regex-vc71-s-1_31/instances.obj vc71/libboost_regex-vc71-s-1_31/posix_api.obj vc71/libboost_regex-vc71-s-1_31/regex.obj vc71/libboost_regex-vc71-s-1_31/regex_debug.obj vc71/libboost_regex-vc71-s-1_31/regex_synch.obj vc71/libboost_regex-vc71-s-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-s-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-s-1_31/winstances.obj
link -lib /nologo /out:vc71/libboost_regex-vc71-s-1_31.lib $(XSFLAGS) vc71/libboost_regex-vc71-s-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-s-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-s-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-s-1_31/cregex.obj vc71/libboost_regex-vc71-s-1_31/fileiter.obj vc71/libboost_regex-vc71-s-1_31/instances.obj vc71/libboost_regex-vc71-s-1_31/posix_api.obj vc71/libboost_regex-vc71-s-1_31/regex.obj vc71/libboost_regex-vc71-s-1_31/regex_debug.obj vc71/libboost_regex-vc71-s-1_31/regex_synch.obj vc71/libboost_regex-vc71-s-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-s-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-s-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc71-mt-s-1_31.lib
#
########################################################
vc71/libboost_regex-vc71-mt-s-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/c_regex_traits.cpp
vc71/libboost_regex-vc71-mt-s-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/c_regex_traits_common.cpp
vc71/libboost_regex-vc71-mt-s-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/cpp_regex_traits.cpp
vc71/libboost_regex-vc71-mt-s-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/cregex.cpp
vc71/libboost_regex-vc71-mt-s-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/fileiter.cpp
vc71/libboost_regex-vc71-mt-s-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/instances.cpp
vc71/libboost_regex-vc71-mt-s-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/posix_api.cpp
vc71/libboost_regex-vc71-mt-s-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/regex.cpp
vc71/libboost_regex-vc71-mt-s-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/regex_debug.cpp
vc71/libboost_regex-vc71-mt-s-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/regex_synch.cpp
vc71/libboost_regex-vc71-mt-s-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/w32_regex_traits.cpp
vc71/libboost_regex-vc71-mt-s-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/wide_posix_api.cpp
vc71/libboost_regex-vc71-mt-s-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-s-1_31/ -Fdvc71/libboost_regex-vc71-mt-s-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-mt-s-1_31_dir :
@if not exist "vc71\libboost_regex-vc71-mt-s-1_31\$(NULL)" mkdir vc71\libboost_regex-vc71-mt-s-1_31
libboost_regex-vc71-mt-s-1_31_clean :
del vc71\libboost_regex-vc71-mt-s-1_31\*.obj
del vc71\libboost_regex-vc71-mt-s-1_31\*.idb
del vc71\libboost_regex-vc71-mt-s-1_31\*.exp
del vc71\libboost_regex-vc71-mt-s-1_31\*.pch
./vc71/libboost_regex-vc71-mt-s-1_31.lib : vc71/libboost_regex-vc71-mt-s-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-mt-s-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-mt-s-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-mt-s-1_31/cregex.obj vc71/libboost_regex-vc71-mt-s-1_31/fileiter.obj vc71/libboost_regex-vc71-mt-s-1_31/instances.obj vc71/libboost_regex-vc71-mt-s-1_31/posix_api.obj vc71/libboost_regex-vc71-mt-s-1_31/regex.obj vc71/libboost_regex-vc71-mt-s-1_31/regex_debug.obj vc71/libboost_regex-vc71-mt-s-1_31/regex_synch.obj vc71/libboost_regex-vc71-mt-s-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-mt-s-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-mt-s-1_31/winstances.obj
link -lib /nologo /out:vc71/libboost_regex-vc71-mt-s-1_31.lib $(XSFLAGS) vc71/libboost_regex-vc71-mt-s-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-mt-s-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-mt-s-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-mt-s-1_31/cregex.obj vc71/libboost_regex-vc71-mt-s-1_31/fileiter.obj vc71/libboost_regex-vc71-mt-s-1_31/instances.obj vc71/libboost_regex-vc71-mt-s-1_31/posix_api.obj vc71/libboost_regex-vc71-mt-s-1_31/regex.obj vc71/libboost_regex-vc71-mt-s-1_31/regex_debug.obj vc71/libboost_regex-vc71-mt-s-1_31/regex_synch.obj vc71/libboost_regex-vc71-mt-s-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-mt-s-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-mt-s-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc71-sgd-1_31.lib
#
########################################################
vc71/libboost_regex-vc71-sgd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/c_regex_traits.cpp
vc71/libboost_regex-vc71-sgd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/c_regex_traits_common.cpp
vc71/libboost_regex-vc71-sgd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/cpp_regex_traits.cpp
vc71/libboost_regex-vc71-sgd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/cregex.cpp
vc71/libboost_regex-vc71-sgd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/fileiter.cpp
vc71/libboost_regex-vc71-sgd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/instances.cpp
vc71/libboost_regex-vc71-sgd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/posix_api.cpp
vc71/libboost_regex-vc71-sgd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/regex.cpp
vc71/libboost_regex-vc71-sgd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/regex_debug.cpp
vc71/libboost_regex-vc71-sgd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/regex_synch.cpp
vc71/libboost_regex-vc71-sgd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/w32_regex_traits.cpp
vc71/libboost_regex-vc71-sgd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/wide_posix_api.cpp
vc71/libboost_regex-vc71-sgd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-sgd-1_31/ -Fdvc71/libboost_regex-vc71-sgd-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-sgd-1_31_dir :
@if not exist "vc71\libboost_regex-vc71-sgd-1_31\$(NULL)" mkdir vc71\libboost_regex-vc71-sgd-1_31
libboost_regex-vc71-sgd-1_31_clean :
del vc71\libboost_regex-vc71-sgd-1_31\*.obj
del vc71\libboost_regex-vc71-sgd-1_31\*.idb
del vc71\libboost_regex-vc71-sgd-1_31\*.exp
del vc71\libboost_regex-vc71-sgd-1_31\*.pch
./vc71/libboost_regex-vc71-sgd-1_31.lib : vc71/libboost_regex-vc71-sgd-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-sgd-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-sgd-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-sgd-1_31/cregex.obj vc71/libboost_regex-vc71-sgd-1_31/fileiter.obj vc71/libboost_regex-vc71-sgd-1_31/instances.obj vc71/libboost_regex-vc71-sgd-1_31/posix_api.obj vc71/libboost_regex-vc71-sgd-1_31/regex.obj vc71/libboost_regex-vc71-sgd-1_31/regex_debug.obj vc71/libboost_regex-vc71-sgd-1_31/regex_synch.obj vc71/libboost_regex-vc71-sgd-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-sgd-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-sgd-1_31/winstances.obj
link -lib /nologo /out:vc71/libboost_regex-vc71-sgd-1_31.lib $(XSFLAGS) vc71/libboost_regex-vc71-sgd-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-sgd-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-sgd-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-sgd-1_31/cregex.obj vc71/libboost_regex-vc71-sgd-1_31/fileiter.obj vc71/libboost_regex-vc71-sgd-1_31/instances.obj vc71/libboost_regex-vc71-sgd-1_31/posix_api.obj vc71/libboost_regex-vc71-sgd-1_31/regex.obj vc71/libboost_regex-vc71-sgd-1_31/regex_debug.obj vc71/libboost_regex-vc71-sgd-1_31/regex_synch.obj vc71/libboost_regex-vc71-sgd-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-sgd-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-sgd-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc71-mt-sgd-1_31.lib
#
########################################################
vc71/libboost_regex-vc71-mt-sgd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/c_regex_traits.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/c_regex_traits_common.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/cpp_regex_traits.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/cregex.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/fileiter.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/instances.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/posix_api.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/regex.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/regex_debug.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/regex_synch.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/w32_regex_traits.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/wide_posix_api.cpp
vc71/libboost_regex-vc71-mt-sgd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-sgd-1_31/ -Fdvc71/libboost_regex-vc71-mt-sgd-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-mt-sgd-1_31_dir :
@if not exist "vc71\libboost_regex-vc71-mt-sgd-1_31\$(NULL)" mkdir vc71\libboost_regex-vc71-mt-sgd-1_31
libboost_regex-vc71-mt-sgd-1_31_clean :
del vc71\libboost_regex-vc71-mt-sgd-1_31\*.obj
del vc71\libboost_regex-vc71-mt-sgd-1_31\*.idb
del vc71\libboost_regex-vc71-mt-sgd-1_31\*.exp
del vc71\libboost_regex-vc71-mt-sgd-1_31\*.pch
./vc71/libboost_regex-vc71-mt-sgd-1_31.lib : vc71/libboost_regex-vc71-mt-sgd-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-mt-sgd-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-mt-sgd-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-mt-sgd-1_31/cregex.obj vc71/libboost_regex-vc71-mt-sgd-1_31/fileiter.obj vc71/libboost_regex-vc71-mt-sgd-1_31/instances.obj vc71/libboost_regex-vc71-mt-sgd-1_31/posix_api.obj vc71/libboost_regex-vc71-mt-sgd-1_31/regex.obj vc71/libboost_regex-vc71-mt-sgd-1_31/regex_debug.obj vc71/libboost_regex-vc71-mt-sgd-1_31/regex_synch.obj vc71/libboost_regex-vc71-mt-sgd-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-mt-sgd-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-mt-sgd-1_31/winstances.obj
link -lib /nologo /out:vc71/libboost_regex-vc71-mt-sgd-1_31.lib $(XSFLAGS) vc71/libboost_regex-vc71-mt-sgd-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-mt-sgd-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-mt-sgd-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-mt-sgd-1_31/cregex.obj vc71/libboost_regex-vc71-mt-sgd-1_31/fileiter.obj vc71/libboost_regex-vc71-mt-sgd-1_31/instances.obj vc71/libboost_regex-vc71-mt-sgd-1_31/posix_api.obj vc71/libboost_regex-vc71-mt-sgd-1_31/regex.obj vc71/libboost_regex-vc71-mt-sgd-1_31/regex_debug.obj vc71/libboost_regex-vc71-mt-sgd-1_31/regex_synch.obj vc71/libboost_regex-vc71-mt-sgd-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-mt-sgd-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-mt-sgd-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc71-mt-gd-1_31.lib
#
########################################################
vc71/boost_regex-vc71-mt-gd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/c_regex_traits.cpp
vc71/boost_regex-vc71-mt-gd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/c_regex_traits_common.cpp
vc71/boost_regex-vc71-mt-gd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/cpp_regex_traits.cpp
vc71/boost_regex-vc71-mt-gd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/cregex.cpp
vc71/boost_regex-vc71-mt-gd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/fileiter.cpp
vc71/boost_regex-vc71-mt-gd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/instances.cpp
vc71/boost_regex-vc71-mt-gd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/posix_api.cpp
vc71/boost_regex-vc71-mt-gd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/regex.cpp
vc71/boost_regex-vc71-mt-gd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/regex_debug.cpp
vc71/boost_regex-vc71-mt-gd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/regex_synch.cpp
vc71/boost_regex-vc71-mt-gd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/w32_regex_traits.cpp
vc71/boost_regex-vc71-mt-gd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/wide_posix_api.cpp
vc71/boost_regex-vc71-mt-gd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-gd-1_31/ -Fdvc71/boost_regex-vc71-mt-gd-1_31.pdb ../src/winstances.cpp
boost_regex-vc71-mt-gd-1_31_dir :
@if not exist "vc71\boost_regex-vc71-mt-gd-1_31\$(NULL)" mkdir vc71\boost_regex-vc71-mt-gd-1_31
boost_regex-vc71-mt-gd-1_31_clean :
del vc71\boost_regex-vc71-mt-gd-1_31\*.obj
del vc71\boost_regex-vc71-mt-gd-1_31\*.idb
del vc71\boost_regex-vc71-mt-gd-1_31\*.exp
del vc71\boost_regex-vc71-mt-gd-1_31\*.pch
./vc71/boost_regex-vc71-mt-gd-1_31.lib : vc71/boost_regex-vc71-mt-gd-1_31/c_regex_traits.obj vc71/boost_regex-vc71-mt-gd-1_31/c_regex_traits_common.obj vc71/boost_regex-vc71-mt-gd-1_31/cpp_regex_traits.obj vc71/boost_regex-vc71-mt-gd-1_31/cregex.obj vc71/boost_regex-vc71-mt-gd-1_31/fileiter.obj vc71/boost_regex-vc71-mt-gd-1_31/instances.obj vc71/boost_regex-vc71-mt-gd-1_31/posix_api.obj vc71/boost_regex-vc71-mt-gd-1_31/regex.obj vc71/boost_regex-vc71-mt-gd-1_31/regex_debug.obj vc71/boost_regex-vc71-mt-gd-1_31/regex_synch.obj vc71/boost_regex-vc71-mt-gd-1_31/w32_regex_traits.obj vc71/boost_regex-vc71-mt-gd-1_31/wide_posix_api.obj vc71/boost_regex-vc71-mt-gd-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc71/boost_regex-vc71-mt-gd-1_31.pdb" /debug /machine:I386 /out:"vc71/boost_regex-vc71-mt-gd-1_31.dll" /implib:"vc71/boost_regex-vc71-mt-gd-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc71/boost_regex-vc71-mt-gd-1_31/c_regex_traits.obj vc71/boost_regex-vc71-mt-gd-1_31/c_regex_traits_common.obj vc71/boost_regex-vc71-mt-gd-1_31/cpp_regex_traits.obj vc71/boost_regex-vc71-mt-gd-1_31/cregex.obj vc71/boost_regex-vc71-mt-gd-1_31/fileiter.obj vc71/boost_regex-vc71-mt-gd-1_31/instances.obj vc71/boost_regex-vc71-mt-gd-1_31/posix_api.obj vc71/boost_regex-vc71-mt-gd-1_31/regex.obj vc71/boost_regex-vc71-mt-gd-1_31/regex_debug.obj vc71/boost_regex-vc71-mt-gd-1_31/regex_synch.obj vc71/boost_regex-vc71-mt-gd-1_31/w32_regex_traits.obj vc71/boost_regex-vc71-mt-gd-1_31/wide_posix_api.obj vc71/boost_regex-vc71-mt-gd-1_31/winstances.obj
########################################################
#
# section for boost_regex-vc71-mt-1_31.lib
#
########################################################
vc71/boost_regex-vc71-mt-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/c_regex_traits.cpp
vc71/boost_regex-vc71-mt-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/c_regex_traits_common.cpp
vc71/boost_regex-vc71-mt-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/cpp_regex_traits.cpp
vc71/boost_regex-vc71-mt-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/cregex.cpp
vc71/boost_regex-vc71-mt-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/fileiter.cpp
vc71/boost_regex-vc71-mt-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/instances.cpp
vc71/boost_regex-vc71-mt-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/posix_api.cpp
vc71/boost_regex-vc71-mt-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/regex.cpp
vc71/boost_regex-vc71-mt-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/regex_debug.cpp
vc71/boost_regex-vc71-mt-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/regex_synch.cpp
vc71/boost_regex-vc71-mt-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/w32_regex_traits.cpp
vc71/boost_regex-vc71-mt-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/wide_posix_api.cpp
vc71/boost_regex-vc71-mt-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/boost_regex-vc71-mt-1_31/ -Fdvc71/boost_regex-vc71-mt-1_31.pdb ../src/winstances.cpp
boost_regex-vc71-mt-1_31_dir :
@if not exist "vc71\boost_regex-vc71-mt-1_31\$(NULL)" mkdir vc71\boost_regex-vc71-mt-1_31
boost_regex-vc71-mt-1_31_clean :
del vc71\boost_regex-vc71-mt-1_31\*.obj
del vc71\boost_regex-vc71-mt-1_31\*.idb
del vc71\boost_regex-vc71-mt-1_31\*.exp
del vc71\boost_regex-vc71-mt-1_31\*.pch
./vc71/boost_regex-vc71-mt-1_31.lib : vc71/boost_regex-vc71-mt-1_31/c_regex_traits.obj vc71/boost_regex-vc71-mt-1_31/c_regex_traits_common.obj vc71/boost_regex-vc71-mt-1_31/cpp_regex_traits.obj vc71/boost_regex-vc71-mt-1_31/cregex.obj vc71/boost_regex-vc71-mt-1_31/fileiter.obj vc71/boost_regex-vc71-mt-1_31/instances.obj vc71/boost_regex-vc71-mt-1_31/posix_api.obj vc71/boost_regex-vc71-mt-1_31/regex.obj vc71/boost_regex-vc71-mt-1_31/regex_debug.obj vc71/boost_regex-vc71-mt-1_31/regex_synch.obj vc71/boost_regex-vc71-mt-1_31/w32_regex_traits.obj vc71/boost_regex-vc71-mt-1_31/wide_posix_api.obj vc71/boost_regex-vc71-mt-1_31/winstances.obj
link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"vc71/boost_regex-vc71-mt-1_31.pdb" /debug /machine:I386 /out:"vc71/boost_regex-vc71-mt-1_31.dll" /implib:"vc71/boost_regex-vc71-mt-1_31.lib" /LIBPATH:$(STLPORT_PATH)\lib $(XLFLAGS) vc71/boost_regex-vc71-mt-1_31/c_regex_traits.obj vc71/boost_regex-vc71-mt-1_31/c_regex_traits_common.obj vc71/boost_regex-vc71-mt-1_31/cpp_regex_traits.obj vc71/boost_regex-vc71-mt-1_31/cregex.obj vc71/boost_regex-vc71-mt-1_31/fileiter.obj vc71/boost_regex-vc71-mt-1_31/instances.obj vc71/boost_regex-vc71-mt-1_31/posix_api.obj vc71/boost_regex-vc71-mt-1_31/regex.obj vc71/boost_regex-vc71-mt-1_31/regex_debug.obj vc71/boost_regex-vc71-mt-1_31/regex_synch.obj vc71/boost_regex-vc71-mt-1_31/w32_regex_traits.obj vc71/boost_regex-vc71-mt-1_31/wide_posix_api.obj vc71/boost_regex-vc71-mt-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc71-mt-1_31.lib
#
########################################################
vc71/libboost_regex-vc71-mt-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/c_regex_traits.cpp
vc71/libboost_regex-vc71-mt-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/c_regex_traits_common.cpp
vc71/libboost_regex-vc71-mt-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/cpp_regex_traits.cpp
vc71/libboost_regex-vc71-mt-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/cregex.cpp
vc71/libboost_regex-vc71-mt-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/fileiter.cpp
vc71/libboost_regex-vc71-mt-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/instances.cpp
vc71/libboost_regex-vc71-mt-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/posix_api.cpp
vc71/libboost_regex-vc71-mt-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/regex.cpp
vc71/libboost_regex-vc71-mt-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/regex_debug.cpp
vc71/libboost_regex-vc71-mt-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/regex_synch.cpp
vc71/libboost_regex-vc71-mt-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/w32_regex_traits.cpp
vc71/libboost_regex-vc71-mt-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/wide_posix_api.cpp
vc71/libboost_regex-vc71-mt-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-1_31/ -Fdvc71/libboost_regex-vc71-mt-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-mt-1_31_dir :
@if not exist "vc71\libboost_regex-vc71-mt-1_31\$(NULL)" mkdir vc71\libboost_regex-vc71-mt-1_31
libboost_regex-vc71-mt-1_31_clean :
del vc71\libboost_regex-vc71-mt-1_31\*.obj
del vc71\libboost_regex-vc71-mt-1_31\*.idb
del vc71\libboost_regex-vc71-mt-1_31\*.exp
del vc71\libboost_regex-vc71-mt-1_31\*.pch
./vc71/libboost_regex-vc71-mt-1_31.lib : vc71/libboost_regex-vc71-mt-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-mt-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-mt-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-mt-1_31/cregex.obj vc71/libboost_regex-vc71-mt-1_31/fileiter.obj vc71/libboost_regex-vc71-mt-1_31/instances.obj vc71/libboost_regex-vc71-mt-1_31/posix_api.obj vc71/libboost_regex-vc71-mt-1_31/regex.obj vc71/libboost_regex-vc71-mt-1_31/regex_debug.obj vc71/libboost_regex-vc71-mt-1_31/regex_synch.obj vc71/libboost_regex-vc71-mt-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-mt-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-mt-1_31/winstances.obj
link -lib /nologo /out:vc71/libboost_regex-vc71-mt-1_31.lib $(XSFLAGS) vc71/libboost_regex-vc71-mt-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-mt-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-mt-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-mt-1_31/cregex.obj vc71/libboost_regex-vc71-mt-1_31/fileiter.obj vc71/libboost_regex-vc71-mt-1_31/instances.obj vc71/libboost_regex-vc71-mt-1_31/posix_api.obj vc71/libboost_regex-vc71-mt-1_31/regex.obj vc71/libboost_regex-vc71-mt-1_31/regex_debug.obj vc71/libboost_regex-vc71-mt-1_31/regex_synch.obj vc71/libboost_regex-vc71-mt-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-mt-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-mt-1_31/winstances.obj
########################################################
#
# section for libboost_regex-vc71-mt-gd-1_31.lib
#
########################################################
vc71/libboost_regex-vc71-mt-gd-1_31/c_regex_traits.obj: ../src/c_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/c_regex_traits.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/c_regex_traits_common.obj: ../src/c_regex_traits_common.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/c_regex_traits_common.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/cpp_regex_traits.obj: ../src/cpp_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/cpp_regex_traits.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/cregex.obj: ../src/cregex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/cregex.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/fileiter.obj: ../src/fileiter.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/fileiter.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/instances.obj: ../src/instances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/instances.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/posix_api.obj: ../src/posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/posix_api.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/regex.obj: ../src/regex.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/regex.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/regex_debug.obj: ../src/regex_debug.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/regex_debug.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/regex_synch.obj: ../src/regex_synch.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/regex_synch.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/w32_regex_traits.obj: ../src/w32_regex_traits.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/w32_regex_traits.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/wide_posix_api.obj: ../src/wide_posix_api.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/wide_posix_api.cpp
vc71/libboost_regex-vc71-mt-gd-1_31/winstances.obj: ../src/winstances.cpp $(ALL_HEADER)
cl $(INCLUDES) /nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD /GX /RTC1 /Zc:wchar_t /c $(CXXFLAGS) -Y- -Fo./vc71/libboost_regex-vc71-mt-gd-1_31/ -Fdvc71/libboost_regex-vc71-mt-gd-1_31.pdb ../src/winstances.cpp
libboost_regex-vc71-mt-gd-1_31_dir :
@if not exist "vc71\libboost_regex-vc71-mt-gd-1_31\$(NULL)" mkdir vc71\libboost_regex-vc71-mt-gd-1_31
libboost_regex-vc71-mt-gd-1_31_clean :
del vc71\libboost_regex-vc71-mt-gd-1_31\*.obj
del vc71\libboost_regex-vc71-mt-gd-1_31\*.idb
del vc71\libboost_regex-vc71-mt-gd-1_31\*.exp
del vc71\libboost_regex-vc71-mt-gd-1_31\*.pch
./vc71/libboost_regex-vc71-mt-gd-1_31.lib : vc71/libboost_regex-vc71-mt-gd-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-mt-gd-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-mt-gd-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-mt-gd-1_31/cregex.obj vc71/libboost_regex-vc71-mt-gd-1_31/fileiter.obj vc71/libboost_regex-vc71-mt-gd-1_31/instances.obj vc71/libboost_regex-vc71-mt-gd-1_31/posix_api.obj vc71/libboost_regex-vc71-mt-gd-1_31/regex.obj vc71/libboost_regex-vc71-mt-gd-1_31/regex_debug.obj vc71/libboost_regex-vc71-mt-gd-1_31/regex_synch.obj vc71/libboost_regex-vc71-mt-gd-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-mt-gd-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-mt-gd-1_31/winstances.obj
link -lib /nologo /out:vc71/libboost_regex-vc71-mt-gd-1_31.lib $(XSFLAGS) vc71/libboost_regex-vc71-mt-gd-1_31/c_regex_traits.obj vc71/libboost_regex-vc71-mt-gd-1_31/c_regex_traits_common.obj vc71/libboost_regex-vc71-mt-gd-1_31/cpp_regex_traits.obj vc71/libboost_regex-vc71-mt-gd-1_31/cregex.obj vc71/libboost_regex-vc71-mt-gd-1_31/fileiter.obj vc71/libboost_regex-vc71-mt-gd-1_31/instances.obj vc71/libboost_regex-vc71-mt-gd-1_31/posix_api.obj vc71/libboost_regex-vc71-mt-gd-1_31/regex.obj vc71/libboost_regex-vc71-mt-gd-1_31/regex_debug.obj vc71/libboost_regex-vc71-mt-gd-1_31/regex_synch.obj vc71/libboost_regex-vc71-mt-gd-1_31/w32_regex_traits.obj vc71/libboost_regex-vc71-mt-gd-1_31/wide_posix_api.obj vc71/libboost_regex-vc71-mt-gd-1_31/winstances.obj

View File

@ -1,402 +0,0 @@
#! /bin/bash
libname=""
src=""
header=""
all_dep=""
# current makefile:
out=""
# temporary file:
tout=""
# install target temp file:
iout=""
# debug flag:
debug="no"
# compile options:
opts=""
# main output sub-directory:
subdir=""
stlport_suffix=""
# extra debug /RTc options:
debug_extra=""
function vc6_gen_lib()
{
all_dep="$all_dep $libname""_dir ./$subdir$stlport_suffix/$libname.lib"
echo " copy $subdir$stlport_suffix\\$libname.lib "'"$'"(MSVCDIR)\\lib"'"' >> $iout
if test $debug == "yes"; then
echo " copy $subdir$stlport_suffix\\$libname.pdb "'"$'"(MSVCDIR)\\lib"'"' >> $iout
fi
#
# set up section comments:
cat >> $tout << EOF
########################################################
#
# section for $libname.lib
#
########################################################
EOF
#
# process source files:
all_obj=""
for file in $src
do
obj=`echo "$file" | sed 's/.*src\/\(.*\)cpp/\1obj/g'`
obj="$subdir$stlport_suffix/$libname/$obj"
all_obj="$all_obj $obj"
echo "$obj: $file \$(ALL_HEADER)" >> $tout
echo " cl \$(INCLUDES) $opts \$(CXXFLAGS) -Y- -Fo./$subdir$stlport_suffix/$libname/ -Fd$subdir$stlport_suffix/$libname.pdb $file" >> $tout
echo "" >> $tout
done
#
# now for the directories for this library:
echo "$libname"_dir : >> $tout
echo " @if not exist \"$subdir$stlport_suffix\\$libname\\\$(NULL)\" mkdir $subdir$stlport_suffix\\$libname" >> $tout
echo "" >> $tout
#
# now for the clean options for this library:
all_clean="$all_clean $libname""_clean"
echo "$libname"_clean : >> $tout
echo " del $subdir$stlport_suffix\\$libname\\"'*.obj' >> $tout
echo " del $subdir$stlport_suffix\\$libname\\"'*.idb' >> $tout
echo " del $subdir$stlport_suffix\\$libname\\"'*.exp' >> $tout
echo " del $subdir$stlport_suffix\\$libname\\"'*.pch' >> $tout
echo "" >> $tout
#
# now for the main target for this library:
echo ./$subdir$stlport_suffix/$libname.lib : $all_obj >> $tout
echo " link -lib /nologo /out:$subdir$stlport_suffix/$libname.lib \$(XSFLAGS) $all_obj" >> $tout
echo "" >> $tout
}
function vc6_gen_dll()
{
all_dep="$all_dep $libname""_dir ./$subdir$stlport_suffix/$libname.lib"
echo " copy $subdir$stlport_suffix\\$libname.lib "'"$'"(MSVCDIR)\\lib"'"' >> $iout
echo " copy $subdir$stlport_suffix\\$libname.dll "'"$'"(MSVCDIR)\\bin"'"' >> $iout
if test $debug == "yes"; then
echo " copy $subdir$stlport_suffix\\$libname.pdb "'"$'"(MSVCDIR)\\lib"'"' >> $iout
fi
#
# set up section comments:
cat >> $tout << EOF
########################################################
#
# section for $libname.lib
#
########################################################
EOF
#
# process source files:
all_obj=""
for file in $src
do
obj=`echo "$file" | sed 's/.*src\/\(.*\)cpp/\1obj/g'`
obj="$subdir$stlport_suffix/$libname/$obj"
all_obj="$all_obj $obj"
echo "$obj: $file \$(ALL_HEADER)" >> $tout
echo " cl \$(INCLUDES) $opts \$(CXXFLAGS) -Y- -Fo./$subdir$stlport_suffix/$libname/ -Fd$subdir$stlport_suffix/$libname.pdb $file" >> $tout
echo "" >> $tout
done
#
# now for the directories for this library:
echo "$libname"_dir : >> $tout
echo " @if not exist \"$subdir$stlport_suffix\\$libname\\\$(NULL)\" mkdir $subdir$stlport_suffix\\$libname" >> $tout
echo "" >> $tout
#
# now for the clean options for this library:
all_clean="$all_clean $libname""_clean"
echo "$libname"_clean : >> $tout
echo " del $subdir$stlport_suffix\\$libname\\"'*.obj' >> $tout
echo " del $subdir$stlport_suffix\\$libname\\"'*.idb' >> $tout
echo " del $subdir$stlport_suffix\\$libname\\"'*.exp' >> $tout
echo " del $subdir$stlport_suffix\\$libname\\"'*.pch' >> $tout
echo "" >> $tout
#
# now for the main target for this library:
echo ./$subdir$stlport_suffix/$libname.lib : $all_obj >> $tout
echo " link kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:\"$subdir$stlport_suffix/$libname.pdb\" /debug /machine:I386 /out:\"$subdir$stlport_suffix/$libname.dll\" /implib:\"$subdir$stlport_suffix/$libname.lib\" /LIBPATH:\$(STLPORT_PATH)\\lib \$(XLFLAGS) $all_obj" >> $tout
echo "" >> $tout
}
is_stlport="no"
function vc6_gen()
{
debug="no"
tout="temp"
iout="temp_install"
all_dep="main_dir"
all_clean=""
echo > $out
echo > $tout
rm -f $iout
stlport_suffix=""
libname="libboost_regex-${subdir}-s-${boost_version}"
opts='/c /nologo /ML /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD '"$release_extra"' '
vc6_gen_lib
libname="libboost_regex-${subdir}-mt-s-${boost_version}"
opts='/nologo /MT /W3 /GX /O2 /GB /GF /Gy /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB /FD '"$release_extra"' /c'
vc6_gen_lib
debug="yes"
libname="libboost_regex-${subdir}-sgd-${boost_version}"
opts='/nologo /MLd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_DEBUG /D_MBCS /D_LIB /FD '"$debug_extra"' /c '
vc6_gen_lib
libname="libboost_regex-${subdir}-mt-sgd-${boost_version}"
opts='/nologo /MTd /W3 /Gm /GX /Zi /Od /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB /FD '"$debug_extra"' /c'
vc6_gen_lib
libname="boost_regex-${subdir}-mt-gd-${boost_version}"
opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /D_DEBUG /DBOOST_REGEX_DYN_LINK /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD '"$debug_extra"' /c'
vc6_gen_dll
debug="no"
opts='/nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD '"$release_extra"' /c'
libname="boost_regex-${subdir}-mt-${boost_version}"
vc6_gen_dll
debug="no"
opts='/nologo /MD /W3 /GX /O2 /GB /GF /Gy /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL /FD '"$release_extra"' /c'
libname="libboost_regex-${subdir}-mt-${boost_version}"
vc6_gen_lib
debug="yes"
libname="libboost_regex-${subdir}-mt-gd-${boost_version}"
opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL /FD '"$debug_extra"' /c'
vc6_gen_lib
cat > $out << EOF
#
# auto generated makefile for VC6 compiler
#
# usage:
# make
# brings libraries up to date
# make install
# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
#
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
XLFLAGS=
#
# add additional static-library creation flags here:
#
XSFLAGS=
!IF "\$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "\$(MSVCDIR)" == ""
!ERROR Variable MSVCDIR not set.
!ENDIF
EOF
echo "" >> $out
echo "ALL_HEADER=$header" >> $out
echo "" >> $out
echo "all : $all_dep" >> $out
echo >> $out
echo "clean : $all_clean" >> $out
echo >> $out
echo "install : all" >> $out
cat $iout >> $out
echo >> $out
echo main_dir : >> $out
echo " @if not exist \"$subdir$stlport_suffix\\\$(NULL)\" mkdir $subdir$stlport_suffix" >> $out
echo "" >> $out
cat $tout >> $out
}
function vc6_stlp_gen()
{
debug="no"
tout="temp"
iout="temp_install"
all_dep="main_dir"
all_clean=""
echo > $out
echo > $tout
rm -f $iout
stlport_suffix="-stlport"
libname="libboost_regex-${subdir}-mt-sp-${boost_version}"
opts='/nologo /MT /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I..\..\..\ /D_MT /DWIN32 /DNDEBUG /D_MBCS /D_LIB '"$release_extra"' /c'
vc6_gen_lib
debug="true"
libname="libboost_regex-${subdir}-mt-sgdp-${boost_version}"
opts='/nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB '"$debug_extra"' /c'
#vc6_gen_lib
libname="boost_regex-${subdir}-mt-gdp-${boost_version}"
opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' /c'
#vc6_gen_dll
debug="no"
opts='/nologo /MD /W3 /GX /O2 /GB /GF /I$(STLPORT_PATH)\stlport /Gy /I../../../ /DBOOST_REGEX_DYN_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL '"$release_extra"' /c'
libname="boost_regex-${subdir}-mt-p-${boost_version}"
vc6_gen_dll
debug="no"
opts='/nologo /MD /W3 /GX /O2 /GB /GF /Gy /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /DNDEBUG /DWIN32 /D_WINDOWS /D_MBCS /D_USRDLL '"$release_extra"' /c'
libname="libboost_regex-${subdir}-mt-p-${boost_version}"
vc6_gen_lib
debug="true"
libname="libboost_regex-${subdir}-mt-gdp-${boost_version}"
opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' /c'
#vc6_gen_lib
# debug STLPort mode:
debug="yes"
opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_DYN_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' /c'
libname="boost_regex-${subdir}-mt-gdp-${boost_version}"
vc6_gen_dll
libname="libboost_regex-${subdir}-mt-sgdp-${boost_version}"
opts='/nologo /MTd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I..\..\..\ /D__STL_DEBUG /D_STLP_DEBUG /DWIN32 /D_MT /D_DEBUG /D_MBCS /D_LIB '"$debug_extra"' /c'
vc6_gen_lib
opts='/nologo /MDd /W3 /Gm /GX /Zi /Od /I$(STLPORT_PATH)\stlport /I../../../ /DBOOST_REGEX_STATIC_LINK /D__STL_DEBUG /D_STLP_DEBUG /D_DEBUG /DWIN32 /D_WINDOWS /D_MBCS /DUSRDLL '"$debug_extra"' /c'
libname="libboost_regex-${subdir}-mt-gdp-${boost_version}"
vc6_gen_lib
cat > $out << EOF
#
# auto generated makefile for VC6+STLPort
#
# usage:
# make
# brings libraries up to date
# make install
# brings libraries up to date and copies binaries to your VC6 /lib and /bin directories (recomended)
#
#
# Add additional compiler options here:
#
CXXFLAGS=
#
# Add additional include directories here:
#
INCLUDES=
#
# add additional linker flags here:
#
XLFLAGS=
#
# add additional static-library creation flags here:
#
XSFLAGS=
!IF "\$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "\$(MSVCDIR)" == ""
!ERROR Variable MSVCDIR not set.
!ENDIF
!IF "\$(STLPORT_PATH)" == ""
!ERROR Variable STLPORT_PATH not set.
!ENDIF
EOF
echo "" >> $out
echo "ALL_HEADER=$header" >> $out
echo "" >> $out
echo "all : $all_dep" >> $out
echo >> $out
echo "clean : $all_clean" >> $out
echo >> $out
echo "install : stlport_check all" >> $out
cat $iout >> $out
echo >> $out
echo main_dir : >> $out
echo " @if not exist \"$subdir$stlport_suffix\\\$(NULL)\" mkdir $subdir$stlport_suffix" >> $out
echo "" >> $out
echo 'stlport_check : $(STLPORT_PATH)\stlport\string' >> $out
echo " echo" >> $out
echo "" >> $out
cat $tout >> $out
}
. common.sh
#
# generate vc6 makefile:
debug_extra="/GX"
out="vc6.mak"
subdir="vc6"
vc6_gen
#
# generate vc6-stlport makefile:
is_stlport="yes"
out="vc6-stlport.mak"
no_single="yes"
subdir="vc6"
vc6_stlp_gen
#
# generate vc7 makefile:
debug_extra="/GX /RTC1 /Zc:wchar_t"
release_extra="/Zc:wchar_t"
is_stlport="no"
out="vc7.mak"
no_single="no"
subdir="vc7"
vc6_gen
#
# generate vc7-stlport makefile:
is_stlport="yes"
out="vc7-stlport.mak"
no_single="yes"
subdir="vc7"
vc6_stlp_gen
#
# generate vc71 makefile:
is_stlport="no"
out="vc71.mak"
no_single="no"
subdir="vc71"
vc6_gen
#
# generate vc71-stlport makefile:
is_stlport="yes"
out="vc71-stlport.mak"
no_single="yes"
subdir="vc71"
vc6_stlp_gen
#
# remove tmep files;
rm -f $tout $iout

View File

@ -1,77 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: bad_expression</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">class bad_expression</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Synopsis</h3>
<p>#include &lt;<a href="../../../boost/regex/pattern_except.hpp">boost/pattern_except.hpp</a>&gt;</p>
<p>The class <code>bad_expression</code> defines the type of objects thrown as
exceptions to report errors during the conversion from a string representing a
regular expression to a finite state machine.&nbsp;&nbsp;</p>
<pre>
<b>namespace</b> boost{
<b>class</b> bad_pattern : <b>public</b> std::runtime_error
{
<b>public</b>:
<b>explicit</b> bad_pattern(<b>const</b> std::string&amp; s) : std::runtime_error(s){};
};
<b>class</b> bad_expression : <b>public</b> bad_pattern
{
<b>public</b>:
bad_expression(<b>const</b> std::string&amp; s) : bad_pattern(s) {}
};
} // namespace boost
</pre>
<h3>Description</h3>
<pre>
bad_expression(const string&amp; what_arg);
</pre>
<p><b>Effects:</b> Constructs an object of class <code>bad_expression</code>.</p>
<b></b>
<p><b>Postcondition:</b> <code>strcmp(what(), what_arg.c_str()) == 0</code>.</p>
<p>Footnotes: the class <i>bad_pattern</i> forms the base class for all
pattern-matching exceptions, of which <i>bad_expression</i> is one. The choice
of <i>std::runtime_error</i> as the base class for <i>bad_pattern</i> is moot;
depending upon how the library is used exceptions may be either logic errors
(programmer supplied expressions) or run time errors (user supplied
expressions).</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,914 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: basic_regex</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">basic_regex</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Synopsis</h3>
<pre>
#include &lt;<a href="../../../boost/regex.hpp">boost/regex.hpp</a>&gt;
</pre>
<p>The template class <em>basic_regex</em> encapsulates regular expression parsing
and compilation. The class takes three template parameters:</p>
<p><b><i>charT</i></b>: determines the character type, i.e. either char or
wchar_t.</p>
<p><b><i>traits</i></b>: determines the behavior of the character type, for
example which character class names are recognized. A default traits class is
provided: <a href="regex_traits.html">regex_traits&lt;charT&gt;</a>.</p>
<p><b><i>Allocator</i></b>: the allocator class used to allocate memory by the
class.</p>
<p>For ease of use there are two typedefs that define the two standard <i>basic_regex</i>
instances, unless you want to use custom traits classes or allocators, you
won't need to use anything other than these:</p>
<pre>
<b>namespace</b> boost{
<b>template</b> &lt;<b>class</b> charT, <b>class</b> traits = regex_traits&lt;charT&gt;, <b>class</b> Allocator = std::allocator&lt;charT&gt; &gt;
<b>class</b> basic_regex;
<b>typedef</b> basic_regex&lt;<b>char</b>&gt; regex;
<b>typedef</b> basic_regex&lt;<b>wchar_t&gt;</b> wregex;
}
</pre>
<p>The definition of <i>basic_regex</i> follows: it is based very closely on class
basic_string, and fulfils the requirements for a constant-container of <i>charT</i>.</p>
<pre>
namespace boost{
template &lt;class charT,
class traits = regex_traits&lt;charT&gt;,
class Allocator = allocator&lt;charT&gt; &gt;
class basic_regex
{
public:
// types:
typedef charT value_type;
typedef implementation defined const_iterator;
typedef const_iterator iterator;
typedef typename Allocator::reference reference;
typedef typename Allocator::const_reference const_reference;
typedef typename Allocator::difference_type difference_type;
typedef typename Allocator::size_type size_type;
typedef Allocator allocator_type;
typedef regex_constants::syntax_option_type flag_type;
typedef typename traits::locale_type locale_type;
// constants:
static const regex_constants::syntax_option_type normal = regex_constants::normal;
static const regex_constants::syntax_option_type icase = regex_constants::icase;
static const regex_constants::syntax_option_type nosubs = regex_constants::nosubs;
static const regex_constants::syntax_option_type optimize = regex_constants::optimize;
static const regex_constants::syntax_option_type collate = regex_constants::collate;
static const regex_constants::syntax_option_type ECMAScript = normal;
static const regex_constants::syntax_option_type JavaScript = normal;
static const regex_constants::syntax_option_type JScript = normal;
// these flags are optional, if the functionality is supported
// then the flags shall take these names.
static const regex_constants::syntax_option_type basic = regex_constants::basic;
static const regex_constants::syntax_option_type extended = regex_constants::extended;
static const regex_constants::syntax_option_type awk = regex_constants::awk;
static const regex_constants::syntax_option_type grep = regex_constants::grep;
static const regex_constants::syntax_option_type egrep = regex_constants::egrep;
static const regex_constants::syntax_option_type sed = basic = regex_constants::sed;
static const regex_constants::syntax_option_type perl = regex_constants::perl;
// construct/copy/destroy:
explicit <A href="#c1">basic_regex</A>(const Allocator&amp; a = Allocator());
explicit <A href="#c2">basic_regex</A>(const charT* p, flag_type f = regex_constants::normal,
const Allocator&amp; a = Allocator());
<A href="#c3">basic_regex</A>(const charT* p1, const charT* p2, flag_type f = regex_constants::normal,
const Allocator&amp; a = Allocator());
<A href="#c4">basic_regex</A>(const charT* p, size_type len, flag_type f,
const Allocator&amp; a = Allocator());
<A href="#c5">basic_regex</A>(const basic_regex&amp;);
template &lt;class ST, class SA&gt;
explicit <A href="#c6">basic_regex</A>(const basic_string&lt;charT, ST, SA&gt;&amp; p,
flag_type f = regex_constants::normal,
const Allocator&amp; a = Allocator());
template &lt;class InputIterator&gt;
<A href="#c7">basic_regex</A>(InputIterator first, inputIterator last,
flag_type f = regex_constants::normal,
const Allocator&amp; a = Allocator());
~basic_regex();
basic_regex&amp; <A href="#o1">operator</A>=(const basic_regex&amp;);
basic_regex&amp; <A href="#o2">operator</A>= (const charT* ptr);
template &lt;class ST, class SA&gt;
basic_regex&amp; <A href="#o3">operator</A>= (const basic_string&lt;charT, ST, SA&gt;&amp; p);
// iterators:
const_iterator <A href="#m1">begin</A>() const;
const_iterator <A href="#m2">end</A>() const;
// capacity:
size_type <A href="#m3">size</A>() const;
size_type <A href="#m4">max_size</A>() const;
bool <A href="#m5">empty</A>() const;
unsigned <A href="#m6">mark_count</A>()const;
//
// modifiers:
basic_regex&amp; <A href="#a1">assign</A>(const basic_regex&amp; that);
basic_regex&amp; <A href="#a2">assign</A>(const charT* ptr, flag_type f = regex_constants::normal);
basic_regex&amp; <A href="#a3">assign</A>(const charT* ptr, unsigned int len, flag_type f);
template &lt;class string_traits, class A&gt;
basic_regex&amp; <A href="#a4">assign</A>(const basic_string&lt;charT, string_traits, A&gt;&amp; s,
flag_type f = regex_constants::normal);
template &lt;class InputIterator&gt;
basic_regex&amp; <A href="#a5">assign</A>(InputIterator first, InputIterator last,
flag_type f = regex_constants::normal);
// const operations:
Allocator <A href="#m7">get_allocator</A>() const;
flag_type <A href="#m8">flags</A>() const;
basic_string&lt;charT&gt; <A href="#m9">str</A>() const;
int <A href="#m10">compare</A>(basic_regex&amp;) const;
// locale:
locale_type <A href="#m11">imbue</A>(locale_type loc);
locale_type <A href="#m12">getloc</A>() const;
// swap
void <A href="#m13">swap</A>(basic_regex&amp;) throw();
};
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o4">operator</A> == (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o5">operator</A> != (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o7">operator</A> &lt; (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o8">operator</A> &lt;= (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o9">operator</A> &gt;= (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o10">operator</A> &gt; (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class io_traits, class re_traits, class Allocator&gt;
basic_ostream&lt;charT, io_traits&gt;&amp;
<A href="#o11">operator</A> &lt;&lt; (basic_ostream&lt;charT, io_traits&gt;&amp; os,
const basic_regex&lt;charT, re_traits, Allocator&gt;&amp; e);
template &lt;class charT, class traits, class Allocator&gt;
void <A href="#o12">swap</A>(basic_regex&lt;charT, traits, Allocator&gt;&amp; e1,
basic_regex&lt;charT, traits, Allocator&gt;&amp; e2);
typedef basic_regex&lt;char&gt; regex;
typedef basic_regex&lt;wchar_t&gt; wregex;
} // namespace boost
</pre>
<h3>Description</h3>
<p>Class&nbsp;<em>basic_regex</em> has the following public member functions:</p>
<h4>basic_regex constants</h4>
<pre>
static const regex_constants::syntax_option_type normal = regex_constants::normal;
static const regex_constants::syntax_option_type icase = regex_constants::icase;
static const regex_constants::syntax_option_type nosubs = regex_constants::nosubs;
static const regex_constants::syntax_option_type optimize = regex_constants::optimize;
static const regex_constants::syntax_option_type collate = regex_constants::collate;
static const regex_constants::syntax_option_type ECMAScript = normal;
static const regex_constants::syntax_option_type JavaScript = normal;
static const regex_constants::syntax_option_type JScript = normal;
static const regex_constants::syntax_option_type basic = regex_constants::basic;
static const regex_constants::syntax_option_type extended = regex_constants::extended;
static const regex_constants::syntax_option_type awk = regex_constants::awk;
static const regex_constants::syntax_option_type grep = regex_constants::grep;
static const regex_constants::syntax_option_type egrep = regex_constants::egrep;
static const regex_constants::syntax_option_type sed = basic = regex_constants::sed;
static const regex_constants::syntax_option_type perl = regex_constants::perl;
</pre>
<p>The static constant members are provided as synonyms for the constants declared
in namespace <code>boost::regex_constants</code>; for each constant of type <code><A href="syntax_option_type.html">
syntax_option_type</A></code> declared in namespace <code>boost::regex_constants</code>
then a constant with the same name, type and value is declared within the scope
of <code>basic_regex</code>.</p>
<h4>basic_regex constructors</h4>
<p>In all <code>basic_regex</code> constructors, a copy of the <code>Allocator</code>
argument is used for any memory allocation performed by the constructor or
member functions during the lifetime of the object.</p>
<pre>
basic_regex(const Allocator&amp; a = Allocator());
</pre>
<P><b>Effects:</b> Constructs an object of class <code>basic_regex</code>. The
postconditions of this function are indicated in the table:</P>
<div align="center">
<center>
<table id="Table2" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>true</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>0</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;()</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre> <A name=c2></A>basic_regex(const charT* p, flag_type f = regex_constants::normal, const Allocator&amp; a = Allocator());
</pre>
<P><b>Requires:</b> <i>p</i> shall not be a null pointer.</P>
<p><b>Throws:</b> <code>bad_expression</code> if <i>p</i> is not a valid regular
expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the null-terminated string <i>p</i>, and interpreted
according to the <a href="syntax_option_type.html">option flags</a>&nbsp;specified
in <i>f</i>. The postconditions of this function are indicated in the table:</p>
<div align="center">
<center>
<table id="Table3" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>char_traits&lt;charT&gt;::length(p)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;(p)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<PRE><A name=c3></A>basic_regex(const charT* p1, const charT* p2, flag_type f = regex_constants::normal, const Allocator&amp; a = Allocator());</PRE>
<p><b>Requires:</b> <i>p1</i> and <i>p2</i> are not null pointers, <code>p1 &lt; p2</code>.</p>
<p><b>Throws:</b> <code>bad_expression</code> if [p1,p2) is not a valid regular
expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the sequence of characters [p1,p2), and interpreted
according the <a href="syntax_option_type.html">option flags</a> specified in <i>f</i>.
The postconditions of this function are indicated in the table:</p>
<div align="center">
<center>
<table id="Table4" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>std::distance(p1,p2)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;(p1,p2)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre><A name=c4></A>
basic_regex(const charT* p, size_type len, flag_type f, const Allocator&amp; a = Allocator());
</pre>
<p><b>Requires:</b> <i>p</i> shall not be a null pointer, <code>len &lt; max_size()</code>.</p>
<p><b>Throws:</b> <code>bad_expression</code> if <i>p</i> is not a valid regular
expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the sequence of characters [p, p+len), and interpreted
according the <a href="syntax_option_type.html">option flags</a> specified in <i>f</i>.
The postconditions of this function are indicated in the table:</p>
<div align="center">
<center>
<table id="Table5" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>len</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;(p, len)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre><A name=c5></A>
basic_regex(const basic_regex&amp; e);
</pre>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code> as a
copy of the object <i>e</i>. The postconditions of this function are indicated
in the table:</p>
<div align="center">
<center>
<table id="Table6" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>e.empty()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>e.size()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>e.str()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>e.flags()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>e.mark_count()</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre>
template &lt;class ST, class SA&gt;
<A name=c6></A>
basic_regex(const basic_string&lt;charT, ST, SA&gt;&amp; s,
flag_type f = regex_constants::normal, const Allocator&amp; a = Allocator());
</pre>
<p><b>Throws:</b> <code>bad_expression</code> if <i>s</i> is not a valid regular
expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the string <i>s</i>, and interpreted according to the <a href="syntax_option_type.html">
option flags</a> specified in <i>f</i>. The postconditions of this function
are indicated in the table:</p>
<div align="center">
<center>
<table id="Table7" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>s.size()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>s</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre>
template &lt;class ForwardIterator&gt;
<A name=c7></A>
basic_regex(ForwardIterator first, ForwardIterator last,
flag_type f = regex_constants::normal, const Allocator&amp; a = Allocator());
</pre>
<p><b>Throws:</b> <code>bad_expression</code> if the sequence <i>[first, last)</i>
is not a valid regular expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the sequence of characters [first, last), and
interpreted according to the <a href="syntax_option_type.html">option flags</a>
specified in <i>f</i>. The postconditions of this function are indicated in the
table:</p>
<div align="center">
<center>
<table id="Table8" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>distance(first,last)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;(first,last)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre><A name=o1></A>
basic_regex&amp; operator=(const basic_regex&amp; e);
</pre>
<p><b>Effects:</b> Returns the result of <code>assign(e.str(), e.flags())</code>.</p>
<pre><A name=o2></A>
basic_regex&amp; operator=(const charT* ptr);
</pre>
<p><b>Requires:</b> <i>p</i> shall not be a null pointer.</p>
<p><b>Effects:</b> Returns the result of <code>assign(ptr)</code>.</p>
<pre><A name=o3></A>
template &lt;class ST, class SA&gt;
basic_regex&amp; operator=(const basic_string&lt;charT, ST, SA&gt;&amp; p);
</pre>
<p><b>Effects:</b> Returns the result of <code>assign(p)</code>.</p>
<h4>basic_regex iterators</h4>
<pre><A name=m1></A>
const_iterator begin() const;
</pre>
<p><b>Effects:</b> Returns a starting iterator to a sequence of characters
representing the regular expression.</p>
<pre><A name=m2></A>
const_iterator end() const;
</pre>
<p><b>Effects:</b> Returns termination iterator to a sequence of characters
representing the regular expression.</p>
<h4>basic_regex capacity</h4>
<pre><A name=m3></A>
size_type size() const;
</pre>
<p><b>Effects:</b> Returns the length of the sequence of characters representing
the regular expression.</p>
<pre><A name=m4></A>
size_type max_size() const;
</pre>
<p><b>Effects:</b> Returns the maximum length of the sequence of characters
representing the regular expression.</p>
<pre><A name=m5></A>
bool empty() const;
</pre>
<p><b>Effects:</b> Returns <b>true</b> if the object does not contain a valid
regular expression, otherwise <b>false</b>.</p>
<pre><A name=m6></A>unsigned mark_count() const;
</pre>
<p><b>Effects:</b> Returns the number of marked sub-expressions within the regular
expresion.</p>
<h4>basic_regex assign</h4>
<pre><A name=a1></A>
basic_regex&amp; assign(const basic_regex&amp; that);
</pre>
<p><b>Effects:</b> Returns <code>assign(that.str(), that.flags())</code>.</p>
<pre><A name=a2></A>
basic_regex&amp; assign(const charT* ptr, flag_type f = regex_constants::normal);
</pre>
<p><b>Effects:</b> Returns <code>assign(string_type(ptr), f)</code>.</p>
<PRE><A name=a3></A><A name=a3></A>basic_regex&amp; assign(const charT* ptr, unsigned int len, flag_type f);</PRE>
<P><B>Effects:</B> Returns <CODE>assign(string_type(ptr, len), f)</CODE>.</P>
<PRE><A name=a4></A>template &lt;class string_traits, class A&gt;
<A name=a6></A>basic_regex&amp; assign(const basic_string&lt;charT, string_traits, A&gt;&amp; s,
flag_type f = regex_constants::normal);
</PRE>
<p><b>Throws:</b> <code>bad_expression</code> if <i>s</i> is not a valid regular
expression.</p>
<p><b>Returns:</b> <code>*this</code>.</p>
<p><b>Effects:</b> Assigns the regular expression contained in the string <i>s</i>,
interpreted according the <a href="syntax_option_type.html">option flags</a> specified
in <i>f</i>. The postconditions of this function are indicated in the table:</p>
<div align="center">
<center>
<table id="Table9" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>s.size()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>s</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre><A name=a5></A>template &lt;class InputIterator&gt;
basic_regex&amp; assign(InputIterator first, InputIterator last,
flag_type f = regex_constants::normal);
</pre>
<p><b>Requires:</b> The type InputIterator corresponds to the Input Iterator
requirements (24.1.1).</p>
<p><b>Effects:</b> Returns <code>assign(string_type(first, last), f)</code>.</p>
<h4>basic_regex constant operations</h4>
<pre><A name=m7></A>Allocator get_allocator() const;
</pre>
<p><b>Effects:</b> Returns a copy of the Allocator that was passed to the object's
constructor.</p>
<pre><A name=m8></A>flag_type flags() const;
</pre>
<p><b>Effects:</b> Returns a copy of the regular expression syntax flags that were
passed to the object's constructor, or the last call to <code>assign.</code></p>
<pre><A name=m9></A>basic_string&lt;charT&gt; str() const;
</pre>
<p><b>Effects:</b> Returns a copy of the character sequence passed to the object's
constructor, or the last call to <code>assign.</code></p>
<pre><A name=m10></A>int compare(basic_regex&amp; e)const;
</pre>
<p><b>Effects:</b> If <code>flags() == e.flags()</code> then returns <code>str().compare(e.str())</code>,
otherwise returns <code>flags() - e.flags()</code>.</p>
<h4>basic_regex locale</h4>
<pre><A name=m11></A>locale_type imbue(locale_type l);
</pre>
<p><b>Effects:</b> Returns the result of <code>traits_inst.imbue(l)</code> where <code>
traits_inst</code> is a (default initialized) instance of the template
parameter <code>traits</code> stored within the object. Calls to imbue
invalidate any currently contained regular expression.</p>
<p><b>Postcondition:</b> <code>empty() == true</code>.</p>
<pre><A name=m12></A>
locale_type getloc() const;
</pre>
<p><b>Effects:</b> Returns the result of <code>traits_inst.getloc()</code> where <code>
traits_inst</code> is a (default initialized) instance of the template
parameter <code>traits</code> stored within the object.</p>
<h4>basic_regex swap</h4>
<pre><A name=m13></A>
void swap(basic_regex&amp; e) throw();
</pre>
<p><b>Effects:</b> Swaps the contents of the two regular expressions.</p>
<p><b>Postcondition:</b> <code>*this</code> contains the characters that were in <i>e</i>,
<i>e</i> contains the regular expression that was in <code>*this</code>.</p>
<p><b>Complexity:</b> constant time.</p>
<h4>basic_regex non-member functions</h4>
<h5>basic_regex non-member comparison operators&nbsp;</h5>
<P>Comparisons between basic_regex objects are provided on an experimental basis:
please note that these are likely to be removed from the standard library
proposal, so use with care if you are writing portable code.</P>
<pre><A name=o4></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator == (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) == 0</code>.</p>
<pre><A name=o5></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator != (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) != 0</code>.</p>
<pre><A name=o7></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator &lt; (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) &lt; 0</code>.</p>
<pre><A name=o8></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator &lt;= (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) &lt;= 0</code>.</p>
<pre><A name=o9></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator &gt;= (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) &gt;= 0</code>.</p>
<pre><A name=o10></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator &gt; (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) &gt; 0</code>.</p>
<h5>basic_regex inserter.</h5>
<P>The basic_regex stream inserter is provided on an experimental basis, and
outputs the textual representation of the expression to the stream:</P>
<pre><A name=o11></A>
template &lt;class charT, class io_traits, class re_traits, class Allocator&gt;
basic_ostream&lt;charT, io_traits&gt;&amp;
operator &lt;&lt; (basic_ostream&lt;charT, io_traits&gt;&amp; os
const basic_regex&lt;charT, re_traits, Allocator&gt;&amp; e);
</pre>
<p><b>Effects:</b> Returns (os &lt;&lt; e.str()).</p>
<h5>basic_regex non-member swap</h5>
<pre><A name=o12></A>
template &lt;class charT, class traits, class Allocator&gt;
void swap(basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> calls <code>lhs.swap(rhs)</code>.</p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,250 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Understanding Captures</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<H2>Marked sub-expressions</H2>
<P>Every time a Perl regular expression contains a parenthesis group (), it spits
out an extra field, known as a marked sub-expression, for example the
expression:</P>
<PRE>(\w+)\W+(\w+)</PRE>
<P>
Has two marked sub-expressions (known as $1 and $2 respectively), in addition
the complete match is known as $&amp;, everything before the first match as $`,
and everything after the match as $'.&nbsp; So if the above expression is
searched for within "@abc def--", then we obtain:</P>
<BLOCKQUOTE dir="ltr" style="MARGIN-RIGHT: 0px">
<P>
<TABLE id="Table2" cellSpacing="1" cellPadding="1" width="300" border="0">
<TR>
<TD>
<P dir="ltr" style="MARGIN-RIGHT: 0px">$`</P>
</TD>
<TD>"@"</TD>
</TR>
<TR>
<TD>$&amp;</TD>
<TD>"abc def"</TD>
</TR>
<TR>
<TD>$1</TD>
<TD>"abc"</TD>
</TR>
<TR>
<TD>$2</TD>
<TD>"def"</TD>
</TR>
<TR>
<TD>$'</TD>
<TD>"--"</TD>
</TR>
</TABLE>
</P>
</BLOCKQUOTE>
<P>In Boost.regex all these are accessible via the <A href="match_results.html">match_results</A>
class that gets filled in when calling one of the matching algorithms (<A href="regex_search.html">regex_search</A>,
<A href="regex_match.html">regex_match</A>, or <A href="regex_iterator.html">regex_iterator</A>).&nbsp;
So given:</P>
<PRE>boost::match_results&lt;IteratorType&gt; m;</PRE>
<P>The Perl and Boost.Regex equivalents are as follows:</P>
<BLOCKQUOTE dir="ltr" style="MARGIN-RIGHT: 0px">
<P>
<TABLE id="Table3" cellSpacing="1" cellPadding="1" width="300" border="0">
<TR>
<TD><STRONG>Perl</STRONG></TD>
<TD><STRONG>Boost.Regex</STRONG></TD>
</TR>
<TR>
<TD>$`</TD>
<TD>m.prefix()</TD>
</TR>
<TR>
<TD>$&amp;</TD>
<TD>m[0]</TD>
</TR>
<TR>
<TD>$n</TD>
<TD>m[n]</TD>
</TR>
<TR>
<TD>$'</TD>
<TD>m.suffix()</TD>
</TR>
</TABLE>
</P>
</BLOCKQUOTE>
<P>
<P>In Boost.Regex each sub-expression match is represented by a <A href="sub_match.html">
sub_match</A> object, this is basically just a pair of iterators denoting
the start and end possition of the sub-expression match, but there are some
additional operators provided so that objects of type sub_match behave a lot
like a std::basic_string: for example they are implicitly <A href="sub_match.html#m3">
convertible to a basic_string</A>, they can be <A href="sub_match.html#o21">compared
to a string</A>, <A href="sub_match.html#o81">added to a string</A>, or <A href="sub_match.html#oi">
streamed out to an output stream</A>.</P>
<H2>Unmatched Sub-Expressions</H2>
<P>When a regular expression match is found there is no need for all of the marked
sub-expressions to have participated in the match, for example the expression:</P>
<P>(abc)|(def)</P>
<P>can match either $1 or $2, but never both at the same time.&nbsp; In
Boost.Regex you can determine which sub-expressions matched by accessing the <A href="sub_match.html#m1">
sub_match::matched</A> data member.</P>
<H2>Repeated Captures</H2>
<P>When a marked sub-expression is repeated, then the sub-expression gets
"captured" multiple times, however normally only the final capture is
available, for example if</P>
<PRE>(?:(\w+)\W+)+</PRE>
<P>is matched against</P>
<PRE>one fine day</PRE>
<P>Then $1 will contain the string "day", and all the previous captures will have
been forgotten.</P>
<P>However, Boost.Regex has an experimental feature that allows all the capture
information to be retained - this is accessed either via the <A href="match_results.html#m17">
match_results::captures</A> member function or the <A href="sub_match.html#m8">sub_match::captures</A>
member function.&nbsp; These functions return a container that contains a
sequence of all the captures obtained during the regular expression
matching.&nbsp; The following example program shows how this information may be
used:</P>
<PRE>#include &lt;boost/regex.hpp&gt;
#include &lt;iostream&gt;
void print_captures(const std::string&amp; regx, const std::string&amp; text)
{
boost::regex e(regx);
boost::smatch what;
std::cout &lt;&lt; "Expression: \"" &lt;&lt; regx &lt;&lt; "\"\n";
std::cout &lt;&lt; "Text: \"" &lt;&lt; text &lt;&lt; "\"\n";
if(boost::regex_match(text, what, e, boost::match_extra))
{
unsigned i, j;
std::cout &lt;&lt; "** Match found **\n Sub-Expressions:\n";
for(i = 0; i &lt; what.size(); ++i)
std::cout &lt;&lt; " $" &lt;&lt; i &lt;&lt; " = \"" &lt;&lt; what[i] &lt;&lt; "\"\n";
std::cout &lt;&lt; " Captures:\n";
for(i = 0; i &lt; what.size(); ++i)
{
std::cout &lt;&lt; " $" &lt;&lt; i &lt;&lt; " = {";
for(j = 0; j &lt; what.captures(i).size(); ++j)
{
if(j)
std::cout &lt;&lt; ", ";
else
std::cout &lt;&lt; " ";
std::cout &lt;&lt; "\"" &lt;&lt; what.captures(i)[j] &lt;&lt; "\"";
}
std::cout &lt;&lt; " }\n";
}
}
else
{
std::cout &lt;&lt; "** No Match found **\n";
}
}
int main(int , char* [])
{
print_captures("(([[:lower:]]+)|([[:upper:]]+))+", "aBBcccDDDDDeeeeeeee");
print_captures("(.*)bar|(.*)bah", "abcbar");
print_captures("(.*)bar|(.*)bah", "abcbah");
print_captures("^(?:(\\w+)|(?&gt;\\W+))*$", "now is the time for all good men to come to the aid of the party");
return 0;
}</PRE>
<P>Which produces the following output:</P>
<PRE>Expression: "(([[:lower:]]+)|([[:upper:]]+))+"
Text: "aBBcccDDDDDeeeeeeee"
** Match found **
Sub-Expressions:
$0 = "aBBcccDDDDDeeeeeeee"
$1 = "eeeeeeee"
$2 = "eeeeeeee"
$3 = "DDDDD"
Captures:
$0 = { "aBBcccDDDDDeeeeeeee" }
$1 = { "a", "BB", "ccc", "DDDDD", "eeeeeeee" }
$2 = { "a", "ccc", "eeeeeeee" }
$3 = { "BB", "DDDDD" }
Expression: "(.*)bar|(.*)bah"
Text: "abcbar"
** Match found **
Sub-Expressions:
$0 = "abcbar"
$1 = "abc"
$2 = ""
Captures:
$0 = { "abcbar" }
$1 = { "abc" }
$2 = { }
Expression: "(.*)bar|(.*)bah"
Text: "abcbah"
** Match found **
Sub-Expressions:
$0 = "abcbah"
$1 = ""
$2 = "abc"
Captures:
$0 = { "abcbah" }
$1 = { }
$2 = { "abc" }
Expression: "^(?:(\w+)|(?&gt;\W+))*$"
Text: "now is the time for all good men to come to the aid of the party"
** Match found **
Sub-Expressions:
$0 = "now is the time for all good men to come to the aid of the party"
$1 = "party"
Captures:
$0 = { "now is the time for all good men to come to the aid of the party" }
$1 = { "now", "is", "the", "time", "for", "all", "good", "men", "to", "come", "to", "the", "aid", "of", "the", "party" }
</PRE>
<P>Unfortunately enabling this feature has an impact on performance (even if you
don't use it), and a much bigger impact if you do use it, therefore to use this
feature you need to:</P>
<UL>
<LI>
Define BOOST_REGEX_MATCH_EXTRA for all translation units including the library
source (the best way to do this is to uncomment this define in <A href="../../../boost/regex/user.hpp">
boost/regex/user.hpp</A>
and then rebuild everything.
<LI>
Pass the <A href="match_flag_type.html">match_extra flag</A> to the particular
algorithms where you actually need the captures information (<A href="regex_search.html">regex_search</A>,
<A href="regex_match.html">regex_match</A>, or <A href="regex_iterator.html">regex_iterator</A>).
</LI>
</UL>
<P>
<HR>
<P></P>
<P></P>
<p>Revised&nbsp;
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
12&nbsp;Dec 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,225 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Configuration and setup</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Configuration and setup</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h2>Contents</h2>
<dl class="index">
<dt><a href="#compiler">Compiler setup</a></dt>
<dt><a href="#locale">Locale and traits class selection</a></dt>
<dt><a href="#linkage">Linkage Options</a></dt>
<dt><a href="#algorithm">Algorithm Selection</a></dt>
<dt><a href="#tuning">Algorithm Tuning</a></dt>
</dl>
<h3><a name="compiler"></a>Compiler setup.</h3>
<p>You shouldn't need to do anything special to configure
boost.regex for use with your compiler - the <a href="../../config/index.html">boost.config</a> subsystem should already
take care of it, if you do have problems (or you are using a
particularly obscure compiler or platform) then <a href="../../config/index.html">boost.config</a>&nbsp;has a&nbsp;<a href="../../config/config.htm#config_script">configure</a> script.</p>
<h3><a name="locale"></a>Locale and traits class selection.</h3>
<p>The following macros (see <a href="../../../boost/regex/user.hpp">user.hpp</a>) control how
boost.regex interacts with the user's locale:</p>
<table id="Table2" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td width="265">BOOST_REGEX_USE_C_LOCALE</td>
<td>Forces boost.regex to use the global C locale in its traits
class support: this is the default behavior on non-windows
platforms, but MS Windows platforms normally use the Win32 API for
locale support.</td>
</tr>
<tr>
<td width="265">BOOST_REGEX_USE_CPP_LOCALE</td>
<td>Forces boost.regex to use std::locale in it's default traits
class, regular expressions can then be imbued with an
instance&nbsp;specific locale.</td>
</tr>
<tr>
<td width="265">BOOST_REGEX_NO_W32</td>
<td>Tells boost.regex not to use any Win32 API's even when
available (implies BOOST_REGEX_USE_C_LOCALE unless
BOOST_REGEX_USE_CPP_LOCALE is set).</td>
</tr>
</table>
<br>
<br>
<h3><a name="linkage"></a>Linkage Options</h3>
<table id="Table3" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td>BOOST_REGEX_DYN_LINK</td>
<td>For Microsoft and Borland C++ builds, this tells boost.regex
that it should link to the dll build of the boost.regex.&nbsp; By
default boost.regex will link to its static library build, even if
the dynamic C runtime library is in use.</td>
</tr>
<tr>
<td>BOOST_REGEX_NO_LIB</td>
<td>For Microsoft and Borland C++ builds, this tells boost.regex
that it should not automatically select the library to link
to.</td>
</tr>
</table>
<br>
<br>
<h3><a name="algorithm"></a>Algorithm Selection</h3>
<table id="Table4" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td width="253">BOOST_REGEX_V3</td>
<td>Tells boost.regex to use the boost-1.30.0 matching algorithm,
define only if you need maximum compatibility with previous
behavior.</td>
</tr>
<tr>
<td width="253">BOOST_REGEX_RECURSIVE</td>
<td>Tells boost.regex to use a stack-recursive matching
algorithm.&nbsp; This is generally the fastest option (although
there is very little in it), but can cause stack overflow in
extreme cases, on Win32 this can be handled safely, but this is not
the case on other platforms.</td>
</tr>
<tr>
<td width="253">BOOST_REGEX_NON_RECURSIVE</td>
<td>Tells boost.regex to use a non-stack recursive matching
algorithm, this can be slightly slower than the alternative, but is
always safe no matter how pathological the regular
expression.&nbsp; This is the default on non-Win32 platforms.</td>
</tr>
</table>
<br>
<br>
<h3><a name="tuning"></a>Algorithm Tuning</h3>
<p>The following option applies only if BOOST_REGEX_RECURSIVE is
set.</p>
<table id="Table6" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td>BOOST_REGEX_HAS_MS_STACK_GUARD</td>
<td>Tells boost.regex that Microsoft style __try - __except blocks
are supported, and can be used to safely trap stack overflow.</td>
</tr>
</table>
<br>
<br>
<p>The following options apply only if BOOST_REGEX_NON_RECURSIVE is
set.</p>
<table id="Table5" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td>BOOST_REGEX_BLOCKSIZE</td>
<td>In non-recursive mode, boost.regex uses largish blocks of
memory to act as a stack for the state machine, the larger the
block size then the fewer allocations that will take place.&nbsp;
This defaults to 4096 bytes, which is large enough to match the
vast majority of regular expressions&nbsp;without further
allocations, however, you can choose smaller or larger values
depending upon your platforms characteristics.</td>
</tr>
<tr>
<td>BOOST_REGEX_MAX_BLOCKS</td>
<td>Tells boost.regex how many blocks of size BOOST_REGEX_BLOCKSIZE
it is permitted to use.&nbsp; If this value is exceeded then
boost.regex will stop trying to find a match and throw a
std::runtime_error.&nbsp; Defaults to 1024, don't forget to tweek
this value if you alter BOOST_REGEX_BLOCKSIZE by much.</td>
</tr>
<tr>
<td>BOOST_REGEX_MAX_CACHE_BLOCKS</td>
<td>Tells boost.regex how many memory blocks to store in it's
internal cache - memory blocks are taken from this cache rather
than by calling ::operator new.&nbsp; Generally speeking this can
be an order of magnitude faster than calling ::opertator new each
time a memory block is required, but has the downside that
boost.regex can end up caching a large chunk of memory (by default
up to 16 blocks each of BOOST_REGEX_BLOCKSIZE size).&nbsp; If
memory is tight then try defining this to 0 (disables all caching),
or if that is too slow, then a value of 1 or 2, may be
sufficient.&nbsp; On the other hand, on large multi-processor,
multi-threaded systems, you may find that a higher value is in
order.</td>
</tr>
</table>
<br>
<br>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,81 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Contacts</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Contacts and Acknowledgements</h2>
</td>
<td width="50">
<h3><a href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></a></h3>
</td>
</tr>
</table>
<BR>
<BR>
<HR>
<P>The author can be contacted at john@johnmaddock.co.uk;&nbsp;the
home page for this library is at <A href="http://www.boost.org">www.boost.org</A>.</P>
<P>I am indebted to Robert Sedgewick's "Algorithms in C++" for forcing me to think
about algorithms and their performance, and to the folks at boost for forcing
me to <I>think</I>, period. The following people have all contributed useful
comments or fixes: Dave Abrahams, Mike Allison, Edan Ayal, Jayashree
Balasubramanian, Jan B<>lsche, Beman Dawes, Paul Baxter, David Bergman, David
Dennerline, Edward Diener, Peter Dimov, Robert Dunn, Fabio Forno, Tobias
Gabrielsson, Rob Gillen, Marc Gregoire, Chris Hecker, Nick Hodapp, Jesse Jones,
Martin Jost, Boris Krasnovskiy, Jan Hermelink, Max Leung, Wei-hao Lin, Jens
Maurer, Richard Peters, Heiko Schmidt, Jason Shirk, Gerald Slacik, Scobie
Smith, Mike Smyth, Alexander Sokolovsky, Herv<72> Poirier, Michael Raykh, Marc
Recht, Scott VanCamp, Bruno Voigt, Alexey Voinov, Jerry Waldorf, Rob Ward,
Lealon Watts, Thomas Witt and Yuval Yosef. I am also grateful to the manuals
supplied with the Henry Spencer, Perl and GNU regular expression libraries -
wherever possible I have tried to maintain compatibility with these libraries
and with the POSIX standard - the code however is entirely my own, including
any bugs! I can absolutely guarantee that I will not fix any bugs I don't know
about, so if you have any comments or spot any bugs, please get in touch.</P>
<P>Useful further information can be found at:</P>
<P>Short&nbsp;tutorials on regular expressions can be <A href="http://etext.lib.virginia.edu/helpsheets/regex.html">
found here</A> and&nbsp;<A href="http://www.devshed.com/Server_Side/Administration/RegExp/page1.html">here</A>.</P>
<P>The main book on regular expressions is <A href="http://www.oreilly.com/catalog/regex/">
Mastering Regular Expressions, published by O'Reilly</A>.</P>
<P>Information on the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
Boost.regex standardization proposal</A>, along with other <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1475.html">
standard library extension proposals</A> can be found on the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/">
C++ Committees web pages</A>.</P>
<P>The<a href="http://www.opengroup.org/onlinepubs/7908799/toc.htm">Open Unix
Specification</a> contains a wealth of useful material, including the
regular expression syntax, and specifications for <a href="http://www.opengroup.org/onlinepubs/7908799/xsh/regex.h.html">
&lt;regex.h&gt;</a> and <a href="http://www.opengroup.org/onlinepubs/7908799/xsh/nl_types.h.html">
&lt;nl_types.h&gt;</a>.</P>
<p>The <a href="http://www.cs.ucr.edu/~stelo/pattern.html">Pattern Matching Pointers</a>
site is a "must visit" resource for anyone interested in pattern matching.</p>
<p><a href="http://glimpse.cs.arizona.edu/">Glimpse and Agrep</a>, use a
simplified regular expression syntax to achieve faster search times.</p>
<p><a href="http://glimpse.cs.arizona.edu/udi.html">Udi Manber</a> and <a href="http://www.dcc.uchile.cl/~rbaeza/">
Ricardo Baeza-Yates</a> both have a selection of useful pattern matching
papers available from their respective web sites.</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,95 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Examples</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Examples</h2>
</td>
<td width="50">
<h3><a href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></a></h3>
</td>
</tr>
</table>
<BR>
<BR>
<HR>
<P>There are three demo applications that ship with this library, they all come
with makefiles for Borland, Microsoft and gcc compilers, otherwise you will
have to create your own makefiles.</P>
<H5>regress.exe:</H5>
<P>A regression test application that gives the matching/searching algorithms a
full workout. The presence of this program is your guarantee that the library
will behave as claimed - at least as far as those items tested are concerned -
if anyone spots anything that isn't being tested I'd be glad to hear about it.</P>
<P>Files: <A href="../test/regress/parse.cpp">parse.cpp</A>, <A href="../test/regress/regress.cpp">
regress.cpp</A>, <A href="../test/regress/tests.cpp">tests.cpp</A>.</P>
<H5>jgrep.exe</H5>
<P>A simple grep implementation, run with no command line options to find out its
usage. Look at <A href="../src/fileiter.cpp">fileiter.cpp</A>/fileiter.hpp and
the mapfile class to see an example of a "smart" bidirectional iterator that
can be used with boost.regex or any other STL algorithm.</P>
<P>Files: <A href="../example/jgrep/jgrep.cpp">jgrep.cpp</A>, <A href="../example/jgrep/main.cpp">
main.cpp</A>.</P>
<H5>timer.exe</H5>
<P>A simple interactive expression matching application, the results of all
matches are timed, allowing the programmer to optimize their regular
expressions where performance is critical.</P>
<P>Files: <A href="../example/timer/regex_timer.cpp">regex_timer.cpp</A>.</P>
<H5>Code snippets</H5>
<P>The snippets examples contain the code examples used in the documentation:</P>
<P><A href="../example/snippets/credit_card_example.cpp">credit_card_example.cpp</A>:
Credit card number formatting code.</P>
<P><A href="../example/snippets/partial_regex_grep.cpp">partial_regex_grep.cpp</A>:
Search example using partial matches.</P>
<P><A href="../example/snippets/partial_regex_match.cpp">partial_regex_match.cpp</A>:
regex_match example using partial matches.</P>
<P><A href="../example/snippets/regex_grep_example_1.cpp">regex_grep_example_1.cpp</A>:
regex_grep example 1: searches a cpp file for class definitions.</P>
<P><A href="../example/snippets/regex_grep_example_2.cpp">regex_grep_example_2.cpp</A>:
regex_grep example 2: searches a cpp file for class definitions, using a global
callback function.</P>
<P><A href="../example/snippets/regex_grep_example_3.cpp">regex_grep_example_3.cpp</A>:
regex_grep example 2: searches a cpp file for class definitions, using a bound
member function callback.</P>
<P><A href="../example/snippets/regex_grep_example_4.cpp">regex_grep_example_4.cpp</A>:
regex_grep example 2: searches a cpp file for class definitions, using a C++
Builder closure as a callback.</P>
<P><A href="../example/snippets/regex_match_example.cpp">regex_match_example.cpp</A>:
ftp based regex_match example.</P>
<P><A href="../example/snippets/regex_merge_example.cpp">regex_merge_example.cpp</A>:
regex_merge example: converts a C++ file to syntax highlighted HTML.</P>
<P><A href="../example/snippets/regex_replace_example.cpp">regex_replace_example.cpp</A>:
regex_replace example: converts a C++ file to syntax highlighted HTML</P>
<P><A href="../example/snippets/regex_search_example.cpp">regex_search_example.cpp</A>:
regex_search example: searches a cpp file for class definitions.</P>
<P><A href="../example/snippets/regex_split_example_1.cpp">regex_split_example_1.cpp</A>:
regex_split example: split a string into tokens.</P>
<P><A href="../example/snippets/regex_split_example_2.cpp">regex_split_example_2.cpp</A>
: regex_split example: spit out linked URL's.</P>
<P></P>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: FAQ</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">FAQ</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<font color="#ff0000"><font color="#ff0000"></font></font>
<p><font color="#ff0000"><font color="#ff0000"><font color=
"#ff0000">&nbsp;Q. Why can't I use the "convenience" versions of
regex_match / regex_search / regex_grep / regex_format /
regex_merge?</font></font></font></p>
<p>A. These versions may or may not be available depending upon the
capabilities of your compiler, the rules determining the format of
these functions are quite complex - and only the versions visible
to a standard compliant compiler are given in the help. To find out
what your compiler supports, run &lt;boost/regex.hpp&gt; through
your C++ pre-processor, and search the output file for the function
that you are interested in.<font color="#ff0000"><font color=
"#ff0000"></font></font></p>
<p><font color="#ff0000"><font color="#ff0000">Q. I can't get
regex++ to work with escape characters, what's going
on?</font></font></p>
<p>A. If you embed regular expressions in C++ code, then remember
that escape characters are processed twice: once by the C++
compiler, and once by the regex++ expression compiler, so to pass
the regular expression \d+ to regex++, you need to embed "\\d+" in
your code. Likewise to match a literal backslash you will need to
embed "\\\\" in your code. <font color="#ff0000"></font></p>
<p><font color="#ff0000">Q. Why does using parenthesis in a POSIX
regular expression change the result of a match?</font></p>
<p>For POSIX (extended and basic) regular expressions, but not for
perl regexes, parentheses don't only mark; they determine what the
best match is as well. When the expression is compiled as a POSIX
basic or extended regex then Boost.regex follows the POSIX standard
leftmost longest rule for determining what matched. So if there is
more than one possible match after considering the whole
expression, it looks next at the first sub-expression and then the
second sub-expression and so on. So...</p>
<pre>
"(0*)([0-9]*)" against "00123" would produce
$1 = "00"
$2 = "123"
</pre>
<p>where as</p>
<pre>
"0*([0-9)*" against "00123" would produce
$1 = "00123"
</pre>
<p>If you think about it, had $1 only matched the "123", this would
be "less good" than the match "00123" which is both further to the
left and longer. If you want $1 to match only the "123" part, then
you need to use something like:</p>
<pre>
"0*([1-9][0-9]*)"
</pre>
<p>as the expression.</p>
<p><font color="#ff0000">Q. Why don't character ranges work
properly (POSIX mode only)?</font><br>
A. The POSIX standard specifies that character range expressions
are locale sensitive - so for example the expression [A-Z] will
match any collating element that collates between 'A' and 'Z'. That
means that for most locales other than "C" or "POSIX", [A-Z] would
match the single character 't' for example, which is not what most
people expect - or at least not what most people have come to
expect from regular expression engines. For this reason, the
default behaviour of boost.regex (perl mode) is to turn locale
sensitive collation off by not setting the regex_constants::collate
compile time flag. However if you set a non-default compile time
flag - for example regex_constants::extended or
regex_constants::basic, then locale dependent collation will be
enabled, this also applies to the POSIX API functions which use
either regex_constants::extended or regex_constants::basic
internally. <i>[Note - when regex_constants::nocollate in effect,
the library behaves "as if" the LC_COLLATE locale category were
always "C", regardless of what its actually set to - end
note</i>].</p>
<p><font color="#ff0000">Q. Why are there no throw specifications
on any of the functions? What exceptions can the library
throw?</font></p>
<p>A. Not all compilers support (or honor) throw specifications,
others support them but with reduced efficiency. Throw
specifications may be added at a later date as compilers begin to
handle this better. The library should throw only three types of
exception: boost::bad_expression can be thrown by basic_regex when
compiling a regular expression, std::runtime_error can be thrown
when a call to basic_regex::imbue tries to open a message catalogue
that doesn't exist, or when a call to regex_search or regex_match
results in an "everlasting" search,&nbsp;or when a call to
RegEx::GrepFiles or RegEx::FindFiles tries to open a file that
cannot be opened, finally std::bad_alloc can be thrown by just
about any of the functions in this library.</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,263 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: Format String Syntax</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Format String Syntax</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>Format strings are used by the algorithm <a href="regex_replace.html">regex_replace</a>&nbsp;and by <a
href="match_results.html">match_results::format</a>, and are used
to transform one string into another.</p>
<p>There are three kind of format string: sed, Perl and extended,
the extended syntax is a superset of the others so this is covered
first.</p>
<p><b><i>Extended format syntax</i></b></p>
<p>In format strings, all characters are treated as literals
except: ()$\?:</p>
<p>To use any of these as literals you must prefix them with the
escape character \</p>
<p>The following special sequences are recognized:&nbsp;<br>
&nbsp;<br>
<i>Grouping:</i></p>
<p>Use the parenthesis characters ( and ) to group sub-expressions
within the format string, use \( and \) to represent literal '('
and ')'.&nbsp;<br>
&nbsp;<br>
<i>Sub-expression expansions:</i></p>
<p>The following Perl like expressions expand to a particular
matched sub-expression:<br>
&nbsp;</p>
<p></p>
<table id="Table2" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$`</td>
<td valign="top" width="43%">Expands to all the text from the end
of the previous match to the start of the current match, if there
was no previous match in the current operation, then everything
from the start of the input string to the start of the match.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$'</td>
<td valign="top" width="43%">Expands to all the text from the end
of the match to the end of the input string.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$&amp;</td>
<td valign="top" width="43%">Expands to all of the current
match.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$0</td>
<td valign="top" width="43%">Expands to all of the current
match.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$N</td>
<td valign="top" width="43%">Expands to the text that matched
sub-expression <i>N</i>.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
</table>
<br>
<br>
<p><i>Conditional expressions:</i></p>
<p>Conditional expressions allow two different format strings to be
selected dependent upon whether a sub-expression participated in
the match or not:</p>
<p>?Ntrue_expression:false_expression</p>
<p>Executes true_expression if sub-expression <i>N</i> participated
in the match, otherwise executes false_expression.</p>
<p>Example: suppose we search for "(while)|(for)" then the format
string "?1WHILE:FOR" would output what matched, but in upper
case.&nbsp;<br>
&nbsp;<br>
<i>Escape sequences:</i></p>
<p>The following escape sequences are also allowed:<br>
</p>
<p></p>
<table id="Table3" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\a</td>
<td valign="top" width="43%">The bell character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\f</td>
<td valign="top" width="43%">The form feed character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\n</td>
<td valign="top" width="43%">The newline character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\r</td>
<td valign="top" width="43%">The carriage return character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\t</td>
<td valign="top" width="43%">The tab character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\v</td>
<td valign="top" width="43%">A vertical tab character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\x</td>
<td valign="top" width="43%">A hexadecimal character - for example
\x0D.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\x{}</td>
<td valign="top" width="43%">A possible Unicode hexadecimal
character - for example \x{1A0}</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\cx</td>
<td valign="top" width="43%">The ASCII escape character x, for
example \c@ is equivalent to escape-@.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\e</td>
<td valign="top" width="43%">The ASCII escape character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\dd</td>
<td valign="top" width="43%">An octal character constant, for
example \10.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
</table>
<br>
<br>
<p><b><i>Perl format strings</i></b></p>
<p>Perl format strings are the same as the default syntax except
that the characters ()?: have no special meaning.</p>
<p><b><i>Sed format strings</i></b></p>
<p>Sed format strings use only the characters \ and &amp; as
special characters.</p>
<p>\n where n is a digit, is expanded to the nth
sub-expression.</p>
<p>&amp; is expanded to the whole of the match (equivalent to
\0).</p>
<p>Other escape sequences are expanded as per the default
syntax.</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,50 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Headers</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Headers</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>There are two main headers used by this library: &lt;boost/regex.hpp&gt;
provides full access to the entire library, while &lt;boost/cregex.hpp&gt;
provides access to just the high level class RegEx, and the POSIX API
functions.
</P>
<P>There is also a header containing only forward declarations
&lt;boost/regex_fwd.hpp&gt; for use when an interface is dependent upon
boost::basic_regex, but otherwise does not need the full definitions.</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,68 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: History</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">History</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Boost 1.31.0.</P>
<UL>
<LI>
Completely rewritten pattern matching code - it is now up to 10 times faster
than before.
<LI>
Reorganized documentation.
<LI>
Deprecated all interfaces that are not part of the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</A>.
<LI>
Added <A href="regex_iterator.html">regex_iterator</A> and <A href="regex_token_iterator.html">
regex_token_iterator</A>
.
<LI>
Added support for Perl style independent sub-expressions.
<LI>
Added non-member operators to the<A href="sub_match.html"> sub_match class</A>,
so that you can compare sub_match's with strings, or add them to a string to
produce a new string.
<LI>
Added experimental support for <A href="captures.html">extended capture
information</A>.
<LI>
Changed the match flags so that they are a distinct type (not an integer), if
you try to pass the match flags as an integer rather than<A href="match_flag_type.html">
match_flag_type</A> to the regex algorithms then you will now get a compiler
error.</LI></UL>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
22 Dec 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,43 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Implementation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Implementation</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Todo.</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,235 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Installation</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<P>When you extract the library from its zip file, you must preserve its internal
directory structure (for example by using the -d option when extracting). If
you didn't do that when extracting, then you'd better stop reading this, delete
the files you just extracted, and try again!
</P>
<P>This library should not need configuring before use; most popular
compilers/standard libraries/platforms are already supported "as is". If you do
experience configuration problems, or just want to test the configuration with
your compiler, then the process is the same as for all of boost; see the <A href="../../config/config.htm">
configuration library documentation</A>.</P>
<P>The library will encase all code inside namespace boost.
</P>
<P>Unlike some other template libraries, this library consists of a mixture of
template code (in the headers) and static code and data (in cpp files).
Consequently it is necessary to build the library's support code into a library
or archive file before you can use it, instructions for specific platforms are
as follows:
</P>
<P><B><A name="bcb"></A>Borland C++ Builder:</B>
</P>
<UL>
<LI>
Open up a console window and change to the &lt;boost&gt;\libs\regex\build
directory.
<LI>
Select the appropriate makefile (bcb4.mak for C++ Builder 4, bcb5.mak for C++
Builder 5, and bcb6.mak for C++ Builder 6).
<LI>
Invoke the makefile (pass the full path to your version of make if you have
more than one version installed, the makefile relies on the path to make to
obtain your C++ Builder installation directory and tools) for example:
</LI>
</UL>
<PRE>make -fbcb5.mak</PRE>
<P>The build process will build a variety of .lib and .dll files (the exact number
depends upon the version of Borland's tools you are using) the .lib and dll
files will be in a sub-directory called bcb4 or bcb5 depending upon the
makefile used. To install the libraries into your development system use:</P>
<PRE>make -fbcb5.mak install</PRE>
<P>library files will be copied to &lt;BCROOT&gt;/lib and the dll's to
&lt;BCROOT&gt;/bin, where &lt;BCROOT&gt; corresponds to the install path of
your Borland C++ tools.
</P>
<P>You may also remove temporary files created during the build process (excluding
lib and dll files) by using:</P>
<PRE>make -fbcb5.mak clean</PRE>
<P>Finally when you use regex++ it is only necessary for you to add the
&lt;boost&gt; root director to your list of include directories for that
project. It is not necessary for you to manually add a .lib file to the
project; the headers will automatically select the correct .lib file for your
build mode and tell the linker to include it. There is one caveat however: the
library can not tell the difference between VCL and non-VCL enabled builds when
building a GUI application from the command line, if you build from the command
line with the 5.5 command line tools then you must define the pre-processor
symbol _NO_VCL in order to ensure that the correct link libraries are selected:
the C++ Builder IDE normally sets this automatically. Hint, users of the 5.5
command line tools may want to add a -D_NO_VCL to bcc32.cfg in order to set
this option permanently.
</P>
<P>If you would prefer to do a dynamic link to the regex libraries when using the
dll runtime then define BOOST_REGEX_DYN_LINK (you must do this if you want to
use boost.regex in multiple dll's), otherwise Boost.regex will be staically
linked by default.&nbsp;</P>
<P>If you want to suppress automatic linking altogether (and supply your own
custom build of the lib) then define BOOST_REGEX_NO_LIB.</P>
<P>If you are building with C++ Builder 6, you will find that
&lt;boost/regex.hpp&gt; can not be used in a pre-compiled header (the actual
problem is in &lt;locale&gt; which gets included by &lt;boost/regex.hpp&gt;),
if this causes problems for you, then try defining BOOST_NO_STD_LOCALE when
building, this will disable some features throughout boost, but may save you a
lot in compile times!</P>
<P><B><A name="vc"></A>Microsoft Visual C++ 6</B><STRONG> and 7</STRONG></P>
<P>You need version 6 of MSVC to build this library. If you are using VC5 then you
may want to look at one of the previous releases of this <A href="http://ourworld.compuserve.com/homepages/john_maddock/regexpp.htm">
library</A>
</P>
<P>Open up a command prompt, which has the necessary MSVC environment variables
defined (for example by using the batch file Vcvars32.bat installed by the
Visual Studio installation), and change to the &lt;boost&gt;\libs\regex\build
directory.
</P>
<P>Select the correct makefile - vc6.mak for "vanilla" Visual C++ 6 or
vc6-stlport.mak if you are using STLPort.</P>
<P>Invoke the makefile like this:</P>
<PRE>nmake -fvc6.mak</PRE>
<P>You will now have a collection of lib and dll files in a "vc6" subdirectory, to
install these into your development system use:</P>
<PRE>nmake -fvc6.mak install</PRE>
<P>The lib files will be copied to your &lt;VC6&gt;\lib directory and the dll
files to &lt;VC6&gt;\bin, where &lt;VC6&gt; is the root of your Visual C++ 6
installation.</P>
<P>You can delete all the temporary files created during the build (excluding lib
and dll files) using:</P>
<PRE>nmake -fvc6.mak clean </PRE>
<P>Finally when you use regex++ it is only necessary for you to add the
&lt;boost&gt; root directory to your list of include directories for that
project. It is not necessary for you to manually add a .lib file to the
project; the headers will automatically select the correct .lib file for your
build mode and tell the linker to include it.
</P>
<P>
Note that if you want to dynamically link to the regex library when using the
dynamic C++ runtime, define BOOST_REGEX_DYN_LINK when building your project.</P>
<P>If you want to add the source directly to your project then define
BOOST_REGEX_NO_LIB to disable automatic library selection.</P>
<P>There are several important caveats to remember when using boost.regex with
Microsoft's Compiler:</P>
<UL>
<LI>
There have been some reports of compiler-optimization bugs affecting this
library, (particularly with VC6 versions prior to service patch 5) the
workaround is to build the library using /Oityb1 rather than /O2. That is to
use all optimization settings except /Oa. This problem is reported to affect
some standard library code as well (in fact I'm not sure if the problem is with
the regex code or the underlying standard library), so it's probably worthwhile
applying this workaround in normal practice in any case.</LI>
<LI>
If you have replaced the C++ standard library that comes with VC6, then when
you build the library you must ensure that the environment variables "INCLUDE"
and "LIB" have been updated to reflect the include and library paths for the
new library - see vcvars32.bat (part of your Visual Studio installation) for
more details.
</LI>
<LI>
If you are building with the full STLPort v4.x, then use the vc6-stlport.mak
file provided and set the environment variable STLPORT_PATH to point to the
location of your STLPort installation (Note that the full STLPort libraries
appear not to support single-thread static builds).</LI>
<LI>
If you are building your application with /Zc:wchar_t then you will need to
modify the makefile to add /Zc:wchar_t before building the library.
</LI>
</UL>
<P><B><A name="gcc"></A>GCC(2.95 and 3.x)</B>
</P>
<P>You can build with gcc using the normal boost Jamfile in
&lt;boost&gt;/libs/regex/build, alternatively there is a conservative makefile
for the g++ compiler. From the command prompt change to the
&lt;boost&gt;/libs/regex/build directory and type:
</P>
<PRE>make -fgcc.mak </PRE>
<P>At the end of the build process you should have a gcc sub-directory containing
release and debug versions of the library (libboost_regex.a and
libboost_regex_debug.a). When you build projects that use regex++, you will
need to add the boost install directory to your list of include paths and add
&lt;boost&gt;/libs/regex/build/gcc/libboost_regex.a to your list of library
files.
</P>
<P>There is also a makefile to build the library as a shared library:</P>
<PRE>make -fgcc-shared.mak</PRE>
<P>which will build libboost_regex.so and libboost_regex_debug.so.</P>
<P>Both of the these makefiles support the following environment variables:</P>
<P>CXXFLAGS: extra compiler options - note that this applies to both the debug and
release builds.</P>
<P>INCLUDES: additional include directories.</P>
<P>LDFLAGS: additional linker options.</P>
<P>LIBS: additional library files.</P>
<P>For the more adventurous there is a configure script in
&lt;boost&gt;/libs/config; see the <A href="../../config/config.htm">config library
documentation</A>.</P>
<P><B><A name="sun"></A>Sun Workshop 6.1</B></P>
<P>There is a makefile for the sun (6.1) compiler (C++ version 3.12). From the
command prompt change to the &lt;boost&gt;/libs/regex/build directory and type:
</P>
<PRE>dmake -f sunpro.mak </PRE>
<P>At the end of the build process you should have a sunpro sub-directory
containing single and multithread versions of the library (libboost_regex.a,
libboost_regex.so, libboost_regex_mt.a and libboost_regex_mt.so). When you
build projects that use regex++, you will need to add the boost install
directory to your list of include paths and add
&lt;boost&gt;/libs/regex/build/sunpro/ to your library search path.
</P>
<P>Both of the these makefiles support the following environment variables:</P>
<P>CXXFLAGS: extra compiler options - note that this applies to both the single
and multithreaded builds.</P>
<P>INCLUDES: additional include directories.</P>
<P>LDFLAGS: additional linker options.</P>
<P>LIBS: additional library files.</P>
<P>LIBSUFFIX: a suffix to mangle the library name with (defaults to nothing).</P>
<P>This makefile does not set any architecture specific options like -xarch=v9,
you can set these by defining the appropriate macros, for example:</P>
<PRE>dmake CXXFLAGS="-xarch=v9" LDFLAGS="-xarch=v9" LIBSUFFIX="_v9" -f sunpro.mak</PRE>
<P>will build v9 variants of the regex library named libboost_regex_v9.a etc.</P>
<P><B><A name="other"></A>Other compilers:</B>
</P>
<P>There is a generic makefile (<A href="../build/generic.mak">generic.mak</A>
) provided in &lt;boost-root&gt;/libs/regex/build - see that makefile for
details of environment variables that need to be set before use.
<P>
Alternatively you can using the <A href="../../../tools/build/index.html">Jam based
build system</A>: cd into &lt;boost&gt;/libs/regex/build and run:<PRE>bjam -sTOOLS=mytoolset</PRE>
<P>
If you need to configure the library for your platform, then refer to the <A href="../../config/config.htm">
config library documentation</A>
.
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,181 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Introduction</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Introduction</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Regular expressions are a form of pattern-matching that are often used in text
processing; many users will be familiar with the Unix utilities <I>grep</I>, <I>sed</I>
and <I>awk</I>, and the programming language <I>Perl</I>, each of which make
extensive use of regular expressions. Traditionally C++ users have been limited
to the POSIX C API's for manipulating regular expressions, and while regex++
does provide these API's, they do not represent the best way to use the
library. For example regex++ can cope with wide character strings, or search
and replace operations (in a manner analogous to either sed or Perl), something
that traditional C libraries can not do.</P>
<P>The class <A href="basic_regex.html">boost::basic_regex</A> is the key class in
this library; it represents a "machine readable" regular expression, and is
very closely modeled on std::basic_string, think of it as a string plus the
actual state-machine required by the regular expression algorithms. Like
std::basic_string there are two typedefs that are almost always the means by
which this class is referenced:</P>
<pre><B>namespace </B>boost{
<B>template</B> &lt;<B>class</B> charT,
<B> class</B> traits = regex_traits&lt;charT&gt;,
<B>class</B> Allocator = std::allocator&lt;charT&gt; &gt;
<B>class</B> basic_regex;
<B>typedef</B> basic_regex&lt;<B>char</B>&gt; regex;
<B>typedef</B> basic_regex&lt;<B>wchar_t&gt;</B> wregex;
}</pre>
<P>To see how this library can be used, imagine that we are writing a credit card
processing application. Credit card numbers generally come as a string of
16-digits, separated into groups of 4-digits, and separated by either a space
or a hyphen. Before storing a credit card number in a database (not necessarily
something your customers will appreciate!), we may want to verify that the
number is in the correct format. To match any digit we could use the regular
expression [0-9], however ranges of characters like this are actually locale
dependent. Instead we should use the POSIX standard form [[:digit:]], or the
regex++ and Perl shorthand for this \d (note that many older libraries tended
to be hard-coded to the C-locale, consequently this was not an issue for them).
That leaves us with the following regular expression to validate credit card
number formats:</P>
<PRE>(\d{4}[- ]){3}\d{4}</PRE>
<P>Here the parenthesis act to group (and mark for future reference)
sub-expressions, and the {4} means "repeat exactly 4 times". This is an example
of the extended regular expression syntax used by Perl, awk and egrep. Regex++
also supports the older "basic" syntax used by sed and grep, but this is
generally less useful, unless you already have some basic regular expressions
that you need to reuse.</P>
<P>Now let's take that expression and place it in some C++ code to validate the
format of a credit card number:</P>
<PRE><B>bool</B> validate_card_format(<B>const</B> std::string s)
{
<B>static</B> <B>const</B> <A href="basic_regex.html">boost::regex</A> e("(\\d{4}[- ]){3}\\d{4}");
<B>return</B> <A href="regex_match.html">regex_match</A>(s, e);
}</PRE>
<P>Note how we had to add some extra escapes to the expression: remember that the
escape is seen once by the C++ compiler, before it gets to be seen by the
regular expression engine, consequently escapes in regular expressions have to
be doubled up when embedding them in C/C++ code. Also note that all the
examples assume that your compiler supports Koenig lookup, if yours doesn't
(for example VC6), then you will have to add some boost:: prefixes to some of
the function calls in the examples.</P>
<P>Those of you who are familiar with credit card processing, will have realized
that while the format used above is suitable for human readable card numbers,
it does not represent the format required by online credit card systems; these
require the number as a string of 16 (or possibly 15) digits, without any
intervening spaces. What we need is a means to convert easily between the two
formats, and this is where search and replace comes in. Those who are familiar
with the utilities <I>sed</I> and <I>Perl</I> will already be ahead here; we
need two strings - one a regular expression - the other a "<A href="format_syntax.html">format
string</A>" that provides a description of the text to replace the match
with. In regex++ this search and replace operation is performed with the
algorithm<A href="regex_replace.html"> regex_replace</A>, for our credit card
example we can write two algorithms like this to provide the format
conversions:</P>
<PRE><I>// match any format with the regular expression:
</I><B>const</B> boost::regex e("\\A(\\d{3,4})[- ]?(\\d{4})[- ]?(\\d{4})[- ]?(\\d{4})\\z");
<B>const</B> std::string machine_format("\\1\\2\\3\\4");
<B>const</B> std::string human_format("\\1-\\2-\\3-\\4");
std::string machine_readable_card_number(<B>const</B> std::string s)
{
<B>return</B> <A href="regex_replace.html">regex_replace</A>(s, e, machine_format, boost::match_default | boost::format_sed);
}
std::string human_readable_card_number(<B>const</B> std::string s)
{
<B>return</B> <A href="regex_replace.html">regex_replace</A>(s, e, human_format, boost::match_default | boost::format_sed);
}</PRE>
<P>Here we've used marked sub-expressions in the regular expression to split out
the four parts of the card number as separate fields, the format string then
uses the sed-like syntax to replace the matched text with the reformatted
version.</P>
<P>In the examples above, we haven't directly manipulated the results of a regular
expression match, however in general the result of a match contains a number of
sub-expression matches in addition to the overall match. When the library needs
to report a regular expression match it does so using an instance of the class <A href="match_results.html">
match_results</A>, as before there are typedefs of this class for the most
common cases:
</P>
<PRE><B>namespace </B>boost{
<B>typedef</B> match_results&lt;<B>const</B> <B>char</B>*&gt; cmatch;
<B>typedef</B> match_results&lt;<B>const</B> <B>wchar_t</B>*&gt; wcmatch;
<STRONG>typedef</STRONG> match_results&lt;std::string::const_iterator&gt; smatch;
<STRONG>typedef</STRONG> match_results&lt;std::wstring::const_iterator&gt; wsmatch;
}</PRE>
<P>The algorithms <A href="regex_search.html">regex_search</A> and&nbsp;<A href="regex_match.html">regex_match</A>
make use of match_results to report what matched; the difference between these
algorithms is that <A href="regex_match.html">regex_match</A> will only find
matches that consume <EM>all</EM> of the input text, where as <A href="regex_search.html">
regex_search</A> will <EM>search</EM> for a match anywhere within the text
being matched.</P>
<P>Note that these algorithms are not restricted to searching regular C-strings,
any bidirectional iterator type can be searched, allowing for the possibility
of seamlessly searching almost any kind of data.
</P>
<P>For search and replace operations, in addition to the algorithm <A href="regex_replace.html">
regex_replace</A> that we have already seen, the <A href="match_results.html">match_results</A>
class has a format member that takes the result of a match and a format string,
and produces a new string by merging the two.</P>
<P>For iterating through all occurences of an expression within a text, there are
two iterator types: <A href="regex_iterator.html">regex_iterator</A> will
enumerate over the <A href="match_results.html">match_results</A> objects
found, while <A href="regex_token_iterator.html">regex_token_iterator</A> will
enumerate a series of strings (similar to perl style split operations).</P>
<P>For those that dislike templates, there is a high level wrapper class RegEx
that is an encapsulation of the lower level template code - it provides a
simplified interface for those that don't need the full power of the library,
and supports only narrow characters, and the "extended" regular expression
syntax. This class is now deprecated as it does not form part of the regular
expressions C++ standard library proposal.
</P>
<P>The <A href="posix_api.html">POSIX API</A> functions: regcomp, regexec, regfree
and regerror, are available in both narrow character and Unicode versions, and
are provided for those who need compatibility with these API's.
</P>
<P>Finally, note that the library now has run-time <A href="localisation.html">localization</A>
support, and recognizes the full POSIX regular expression syntax - including
advanced features like multi-character collating elements and equivalence
classes - as well as providing compatibility with other regular expression
libraries including GNU and BSD4 regex packages, and to a more limited extent
Perl 5.
</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -1,282 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: match_flag_type</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">match_flag_type</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Synopsis</h3>
<p>The type <code>match_flag_type</code> is an implementation defined bitmask type
(17.3.2.1.2) that controls how a regular expression is matched against a
character sequence.&nbsp; The behavior of the format flags is descibed in more
detail in the <A href="format_syntax.html">format syntax guide</A>.</p>
<pre>
namespace std{ namespace regex_constants{
typedef bitmask_type match_flag_type;
static const match_flag_type match_default = 0;
static const match_flag_type match_not_bob;
static const match_flag_type match_not_eob;
static const match_flag_type match_not_bol;
static const match_flag_type match_not_eol;
static const match_flag_type match_not_bow;
static const match_flag_type match_not_eow;
static const match_flag_type match_any;
static const match_flag_type match_not_null;
static const match_flag_type match_continuous;
static const match_flag_type match_partial;
static const match_flag_type match_single_line;
static const match_flag_type match_prev_avail;
static const match_flag_type match_not_dot_newline;
static const match_flag_type match_not_dot_null;
static const match_flag_type format_default = 0;
static const match_flag_type format_sed;
static const match_flag_type format_perl;
static const match_flag_type format_no_copy;
static const match_flag_type format_first_only;
static const match_flag_type format_all;
} // namespace regex_constants
} // namespace std
</pre>
<h3>Description</h3>
<p>The type <code>match_flag_type</code> is an implementation defined bitmask type
(17.3.2.1.2). When matching a regular expression against a sequence of
characters [first, last) then setting its elements has the effects listed in
the table below:</p>
<p></p>
<table id="Table2" cellspacing="1" cellpadding="7" width="100%" border="0">
<tr>
<td valign="top" width="50%">
<p>Element</p>
</td>
<td valign="top" width="50%">
<p>Effect if set</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_default</p>
</td>
<td valign="top" width="50%">
<p>Specifies that matching of regular expressions proceeds without any
modification of the normal rules used in ECMA-262, ECMAScript Language
Specification, Chapter 15 part 10, RegExp (Regular Expression) Objects (FWD.1)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">match_not_bob</td>
<td valign="top" width="50%">Specifies that the expression "\A" should not match
against the sub-sequence [first,first).</td>
</tr>
<tr>
<td valign="top" width="50%">match_not_eob</td>
<td valign="top" width="50%">Specifies that the expressions "\z" and
"\Z"&nbsp;should not match against the sub-sequence [last,last).</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_bol</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression "^" should not be matched against the
sub-sequence [first,first).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_eol</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression "$" should not be matched against the
sub-sequence [last,last).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_bow</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression "\b" should not be matched against the
sub-sequence [first,first).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_eow</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression "\b" should not be matched against the
sub-sequence [last,last).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_any</p>
</td>
<td valign="top" width="50%">
<p>Specifies that if more than one match is possible then any match is an
acceptable result.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_null</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression can not be matched against an empty sequence.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_continuous</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression must match a sub-sequence that begins at <i>first</i>.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_partial</p>
</td>
<td valign="top" width="50%">
<p>Specifies that if no match can be found, then it is acceptable to return a
match [from, last) where from!=last, if there exists some sequence of
characters [from,to) of which [from,last) is a prefix, and which would result
in a full match.</p>
</td>
</tr>
<TR>
<TD vAlign="top" width="50%">match_extra</TD>
<TD vAlign="top" width="50%">Instructs the matching engine to retain all available <A href="captures.html">
capture</A> information; if a capturing group is repeated then information
about every repeat is available via <A href="match_results.html#m17">match_results::captures()</A>
or <A href="sub_match.html#m8">sub_match_captures().</A></TD>
</TR>
<TR>
<TD vAlign="top" width="50%">match_single_line</TD>
<TD vAlign="top" width="50%">Equivalent to Perl's s/ modifier; prevents ^ from
matching after an embedded newline character (so that it only matches at the
start of the text being matched), and $ from matching before an embedded
newline (so that it only matches at the end of the text being matched).</TD>
</TR>
<tr>
<td valign="top" width="50%">
<p>match_prev_avail</p>
</td>
<td valign="top" width="50%">
<p>Specifies that <code>--first</code> is a valid iterator position, when this
flag is set then the flags <code>match_not_bol</code> and <code>match_not_bow</code>
are ignored by the regular expression algorithms (RE.7) and iterators (RE.8).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">match_not_dot_newline</td>
<td valign="top" width="50%">Specifies that the expression "." does not match a
newline character.</td>
</tr>
<tr>
<td valign="top" width="50%">match_not_dot_null</td>
<td valign="top" width="50%">Specified that the expression "." does not match a
character null '\0'.</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_default</p>
</td>
<td valign="top" width="50%">
<p>Specifies that when a regular expression match is to be replaced by a new
string, that the new string is constructed using the rules used by the
ECMAScript replace function in ECMA-262, ECMAScript Language Specification,
Chapter 15 part 5.4.11 String.prototype.replace. (FWD.1). In addition during
search and replace operations then all non-overlapping occurrences of the
regular expression are located and replaced, and sections of the input that did
not match the expression, are copied unchanged to the output string.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_sed</p>
</td>
<td valign="top" width="50%">
<p>Specifies that when a regular expression match is to be replaced by a new
string, that the new string is constructed using the rules used by the Unix sed
utility in IEEE Std 1003.1-2001, Portable Operating SystemInterface (POSIX ),
Shells and Utilities..</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_perl</p>
</td>
<td valign="top" width="50%">
<p>
Specifies that when a regular expression match is to be replaced by a new
string, that the new string is constructed using the same rules as Perl 5.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%" height="32">format_all</td>
<td valign="top" width="50%" height="32">Specifies that all syntax extensions are
enabled, including conditional (?ddexpression1:expression2) replacements: see
the <A href="format_syntax.html">format string guide</A> for more details.</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_no_copy</p>
</td>
<td valign="top" width="50%">
<p>When specified during a search and replace operation, then sections of the
character container sequence being searched that do match the regular
expression, are not copied to the output string.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_first_only</p>
</td>
<td valign="top" width="50%">
<p>When specified during a search and replace operation, then only the first
occurrence of the regular expression is replaced.</p>
</td>
</tr>
</table>
<br>
<br>
<p></p>
<hr>
<br>
<br>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,458 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: class match_results</title>
<meta content="HTML Tidy, see www.w3.org" name="generator">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<p></p>
<table id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<tr>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">class match_results</h2>
</td>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Contents</h3>
<dl class="index">
<dt><A href="#synopsis">Synopsis</A> <dt><A href="#description">Description</A> </dt>
</dl>
<h3><a name="synopsis"></a>Synopsis</h3>
<p>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt;</p>
<p>Regular expressions are different from many simple pattern-matching algorithms
in that as well as finding an overall match they can also produce
sub-expression matches: each sub-expression being delimited in the pattern by a
pair of parenthesis (...). There has to be some method for reporting
sub-expression matches back to the user: this is achieved this by defining a
class <i>match_results</i> that acts as an indexed collection of sub-expression
matches, each sub-expression match being contained in an object of type <i><A href="sub_match.html">
sub_match</A></i> .</p>
<p>Template class match_results denotes a collection of character sequences
representing the result of a regular expression match. Objects of type
match_results are passed to the algorithms <A href="regex_match.html">regex_match</A>
and <A href="regex_search.html">regex_search</A>, and are returned by the
iterator <A href="regex_iterator.html">regex_iterator</A> .&nbsp; Storage for
the collection is allocated and freed as necessary by the member functions of
class match_results.</p>
<p>The template class match_results conforms to the requirements of a Sequence, as
specified in (lib.sequence.reqmts), except that only operations defined for
const-qualified Sequences are supported.</p>
<p>Class template match_results is most commonly used as one of the typedefs
cmatch, wcmatch, smatch, or wsmatch:</p>
<pre>template &lt;class BidirectionalIterator,
class Allocator = allocator&lt;sub_match&lt;BidirectionalIterator&gt; &gt;
class match_results;
typedef match_results&lt;const char*&gt; cmatch;
typedef match_results&lt;const wchar_t*&gt; wcmatch;
typedef match_results&lt;string::const_iterator&gt; smatch;
typedef match_results&lt;wstring::const_iterator&gt; wsmatch;
template &lt;class BidirectionalIterator,
class Allocator = allocator&lt;sub_match&lt;BidirectionalIterator&gt; &gt;
class match_results
{
public:
typedef sub_match&lt;BidirectionalIterator&gt; value_type;
typedef const value_type&amp; const_reference;
typedef const_reference reference;
typedef implementation defined const_iterator;
typedef const_iterator iterator;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::difference_type difference_type;
typedef typename Allocator::size_type size_type;
typedef Allocator allocator_type;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::value_type char_type;
typedef basic_string&lt;char_type&gt; string_type;
// construct/copy/destroy:
explicit <A href="#c1" >match_results</A>(const Allocator&amp; a = Allocator());
<A href="#c2" >match_results</A>(const match_results&amp; m);
<A href="#c3" >match_results</A>&amp; <A href="#c3" >operator</A>=(const match_results&amp; m);
~match_results();
// size:
size_type <A href="#m1" >size</A>() const;
size_type <A href="#m2" >max_size</A>() const;
bool <A href="#m3" >empty</A>() const;
// element access:
difference_type <A href="#m4" >length</A>(int sub = 0) const;
difference_type <A href="#m5" >position</A>(unsigned int sub = 0) const;
string_type <A href="#m6" >str</A>(int sub = 0) const;
const_reference <A href="#m7" >operator</A>[](int n) const;
const_reference <A href="#m8" >prefix</A>() const;
const_reference <A href="#m9" >suffix</A>() const;
const_iterator <A href="#m10" >begin</A>() const;
const_iterator <A href="#m11" >end</A>() const;
// format:
template &lt;class OutputIterator&gt;
OutputIterator <A href="#m12" >format</A>(OutputIterator out,
const string_type&amp; fmt,
match_flag_type flags = format_default) const;
string_type <A href="#m13" >format</A>(const string_type&amp; fmt,
match_flag_type flags = format_default) const;
allocator_type <A href="#m14" >get_allocator</A>() const;
void <A href="#m15" >swap</A>(match_results&amp; that);
#ifdef BOOST_REGEX_MATCH_EXTRA
typedef typename value_type::capture_sequence_type <A href="#m16" >capture_sequence_type</A>;
const capture_sequence_type&amp; <A href="#m17" >captures</A>(std::size_t i)const;
#endif
};
template &lt;class BidirectionalIterator, class Allocator&gt;
bool <A href="#n1" >operator</A> == (const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);
template &lt;class BidirectionalIterator, class Allocator&gt;
bool <A href="#n2" >operator</A> != (const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);
template &lt;class charT, class traits, class BidirectionalIterator, class Allocator&gt;
basic_ostream&lt;charT, traits&gt;&amp;
<A href="#n3" >operator</A> &lt;&lt; (basic_ostream&lt;charT, traits&gt;&amp; os,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m);
template &lt;class BidirectionalIterator, class Allocator&gt;
void <A href="#n4" >swap</A>(match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);
</pre>
<h3><a name="description"></a>Description</h3>
<h4>match_results constructors</h4>
<p>In all <code>match_results</code> constructors, a copy of the Allocator
argument is used for any memory allocation performed by the constructor or
member functions during the lifetime of the object.</p>
<pre><A name=c1></A>
match_results(const Allocator&amp; a = Allocator());
</pre>
<b></b>
<p><b>Effects:</b> Constructs an object of class match_results. The postconditions
of this function are indicated in the table:</p>
<p align="center"></p>
<center>
<table id="Table2" cellSpacing="1" cellPadding="7" width="624" border="1">
<tbody>
<tr>
<td vAlign="top" width="50%"><b></b>
<p><b>Element</b></p>
</td>
<td vAlign="top" width="50%"><b></b>
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>empty()</p>
</td>
<td vAlign="top" width="50%">
<p>true</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>size()</p>
</td>
<td vAlign="top" width="50%">
<p>0</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>str()</p>
</td>
<td vAlign="top" width="50%">
<p>basic_string&lt;charT&gt;()</p>
</td>
</tr>
</tbody></table>
</center>
<p>&nbsp;</p>
<pre><A name=c2></A>
match_results(const match_results&amp; m);
</pre>
<b></b>
<p><b>Effects:</b> Constructs an object of class match_results, as a copy of m.</p>
<pre><A name=c3></A>
match_results&amp; operator=(const match_results&amp; m);
</pre>
<b></b>
<p><b>Effects:</b> Assigns m to *this. The postconditions of this function are
indicated in the table:</p>
<p align="center"></p>
<center>
<table id="Table3" cellSpacing="1" cellPadding="7" width="624" border="1">
<tbody>
<tr>
<td vAlign="top" width="50%"><b></b>
<p><b>Element</b></p>
</td>
<td vAlign="top" width="50%"><b></b>
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>empty()</p>
</td>
<td vAlign="top" width="50%">
<p>m.empty().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>size()</p>
</td>
<td vAlign="top" width="50%">
<p>m.size().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>str(n)</p>
</td>
<td vAlign="top" width="50%">
<p>m.str(n) for all integers n &lt; m.size().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>prefix()</p>
</td>
<td vAlign="top" width="50%">
<p>m.prefix().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>suffix()</p>
</td>
<td vAlign="top" width="50%">
<p>m.suffix().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>(*this)[n]</p>
</td>
<td vAlign="top" width="50%">
<p>m[n] for all integers n &lt; m.size().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>length(n)</p>
</td>
<td vAlign="top" width="50%">
<p>m.length(n) for all integers n &lt; m.size().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>position(n)</p>
</td>
<td vAlign="top" width="50%">
<p>m.position(n) for all integers n &lt; m.size().</p>
</td>
</tr>
</tbody></table>
</center>
<h4>match_results size</h4>
<pre><A name=m1></A>
size_type size()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns the number of sub_match elements stored in *this; that
is the number of marked sub-expressions in the regular expression that was
matched plus one.</p>
<pre><A name=m2></A>
size_type max_size()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns the maximum number of sub_match elements that can be
stored in *this.</p>
<pre><A name=m3></A>
bool empty()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns <code>size() == 0</code>.</p>
<h4>match_results element access</h4>
<pre><A name=m4></A>
difference_type length(int sub = 0)const;
</pre>
<b></b>
<p><b>Effects:</b> Returns the length of sub-expression <EM>sub</EM>, that is to
say: <code>(*this)[sub].length()</code>.</p>
<pre><A name=m5></A>
difference_type position(unsigned int sub = 0)const;
</pre>
<b></b>
<p><b>Effects:</b> Returns the starting location of sub-expression <EM>sub</EM>,
or -1 if <EM>sub</EM> was not matched <code>.</code></p>
<pre><A name=m6></A>
string_type str(int sub = 0)const;
</pre>
<b></b>
<p><b>Effects:</b> Returns sub-expression <EM>sub</EM> as a string:&nbsp; <code>string_type((*this)[sub]).</code></p>
<pre><A name=m7></A>
const_reference operator[](int n) const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a reference to the <code>sub_match</code> object
representing the character sequence that matched marked sub-expression <i>n</i>.
If <code>n == 0</code> then returns a reference to a <code>sub_match</code> object
representing the character sequence that matched the whole regular
expression.&nbsp; If <EM>n</EM> is out of range, or if <EM>n</EM> is an
unmatched sub-expression, then returns a sub_match object whose <EM>matched</EM>
member is <EM>false</EM>.</p>
<pre><A name=m8></A>
const_reference prefix()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a reference to the <code>sub_match</code> object
representing the character sequence from the start of the string being
matched/searched, to the start of the match found.</p>
<pre><A name=m9></A>
const_reference suffix()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a reference to the <code>sub_match</code> object
representing the character sequence from the end of the match found to the end
of the string being matched/searched.</p>
<pre><A name=m10></A>
const_iterator begin()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a starting iterator that enumerates over all the marked
sub-expression matches stored in *this.</p>
<pre><A name=m11></A>
const_iterator end()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a terminating iterator that enumerates over all the
marked sub-expression matches stored in *this.</p>
<h4><A name="format"></A>match_results reformatting</h4>
<pre>template &lt;class OutputIterator&gt;
OutputIterator format(OutputIterator out,
const string_type&amp; fmt,
<A href="match_flag_type.html" >match_flag_type</A> flags = format_default);
</pre>
<b></b>
<p><b>Requires:</b> The type OutputIterator conforms to the Output Iterator
requirements (24.1.2).</p>
<b></b>
<p><b>Effects:</b> Copies the character sequence <i>[fmt.begin(), fmt.end())</i> to
OutputIterator <i>out</i>. For each format specifier or escape sequence in <i>fmt</i>,
replace that sequence with either the character(s) it represents, or the
sequence of characters within *this to which it refers. The bitmasks specified
in <i><A href="match_flag_type.html">flags</A></i> determines what <A href="format_syntax.html">
format specifiers or escape sequences are recognized</A>, by default this is
the format used by ECMA-262, ECMAScript Language Specification, Chapter 15 part
5.4.11 String.prototype.replace.</p>
<b></b>
<p><b>Returns:</b> <i>out</i>.</p>
<pre><A name=m13></A>
string_type format(const string_type&amp; fmt,
<A href="match_flag_type.html" >match_flag_type</A> flags = format_default);
</pre>
<b></b>
<p><b>Effects:</b> Returns a copy of the string <i>fmt</i>. For each format
specifier or escape sequence in <i>fmt</i>, replace that sequence with either
the character(s) it represents, or the sequence of characters within *this to
which it refers. The bitmasks specified in <i><A href="match_flag_type.html">flags</A></i>
determines what <A href="format_syntax.html">format specifiers or escape sequences
are recognized</A>, by default this is the format used by ECMA-262,
ECMAScript Language Specification, Chapter 15 part 5.4.11
String.prototype.replace.</p>
<H4>Allocator access</H4>
<pre>allocator_type get_allocator()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a copy of the Allocator that was passed to the object's
constructor.</p>
<H4><A name="m15"></A>Swap</H4>
<PRE>void swap(match_results&amp; that);
</PRE>
<b></b>
<p><b>Effects:</b> Swaps the contents of the two sequences.</p>
<b></b>
<p><b>Postcondition:</b> <code>*this</code> contains the sequence of matched
sub-expressions that were in <code>that</code>, <code>that</code> contains the
sequence of matched sub-expressions that were in <code>*this</code>.</p>
<b></b>
<p><b>Complexity:</b> constant time.</p>
<H4>Captures</H4>
<PRE><A name=m16></A>typedef typename value_type::capture_sequence_type capture_sequence_type;</PRE>
<P>Defines an implementation-specific type that&nbsp;satisfies the requirements of
a standard library Sequence (21.1.1 including the optional Table 68
operations),&nbsp;whose value_type is a <EM>sub_match&lt;BidirectionalIterator&gt;</EM>.&nbsp;This
type happens to be <EM>std::vector&lt;sub_match&lt;BidirectionalIterator&gt; &gt;</EM>,
but you shouldn't actually rely on that.</P>
<PRE><A name=m17></A>const capture_sequence_type&amp; <A href="#m8" >captures</A>(std::size_t i)const; </PRE>
<P><STRONG>Effects:</STRONG> returns a sequence containing all the captures
obtained for sub-expression <EM>i</EM>.</P>
<P><STRONG>Returns:</STRONG> <code>(*this)[i].captures();</code></P>
<P><STRONG>Preconditions:</STRONG> the library must be built and used with
BOOST_REGEX_MATCH_EXTRA defined, and you must pass the flag <A href="match_flag_type.html">
match_extra</A> to the regex matching functions (<A href="regex_match.html">regex_match</A>,
<A href="regex_search.html">regex_search</A>, <A href="regex_iterator.html">regex_iterator</A>
or <A href="regex_token_iterator.html">regex_token_iterator</A>) in order for
this member function to be defined and return useful information.</P>
<P><STRONG>Rationale:</STRONG> Enabling this feature has several consequences:
</P>
<UL>
<LI>
sub_match occupies more memory resulting in complex expressions running out of
memory or stack space more quickly during matching.
<LI>
The matching algorithms are less efficient at handling some features
(independent sub-expressions for example), even when match_extra is not used.
<LI>
The matching algorithms are much less efficient (i.e. slower), when match_extra
is used.&nbsp; Mostly this is down to the extra memory allocations that have to
take place.</LI></UL>
<h4>match_results non-members</h4>
<PRE><A name=n1></A>template &lt;class BidirectionalIterator, class Allocator&gt;
bool operator == (const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);</PRE>
<P><B>Effects:</B> Compares the two sequences for equality.</P>
<PRE><A name=n2></A>template &lt;class BidirectionalIterator, class Allocator&gt;
bool operator != (const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);</PRE>
<P><B>Effects:</B> Compares the two sequences for inequality.</P>
<PRE><A name=n3></A>template &lt;class charT, class traits, class BidirectionalIterator, class Allocator&gt;
basic_ostream&lt;charT, traits&gt;&amp;
operator &lt;&lt; (basic_ostream&lt;charT, traits&gt;&amp; os,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m);</PRE>
<P><B>Effects:</B> Writes the contents of <EM>m</EM> to the stream <EM>os</EM> as
if by calling <code>os &lt;&lt; m.str();</code> Returns <EM>os</EM>..</P>
<PRE><A name=n4></A>template &lt;class BidirectionalIterator, class Allocator&gt;
void swap(match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);</PRE>
<P><B>Effects:</B> Swaps the contents of the two sequences.</P>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,182 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Partial Matches</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Partial Matches</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>The <A href="match_flag_type.html">match-flag</A> <CODE>match_partial</CODE> can
be passed to the following algorithms: <A href="regex_match.html">regex_match</A>,
<A href="regex_search.html">regex_search</A>, and <A href="regex_grep.html">regex_grep</A>.
When used it indicates that partial as well as full matches should be found. A
partial match is one that matched one or more characters at the end of the text
input, but did not match all of the regular expression (although it may have
done so had more input been available). Partial matches are typically used when
either validating data input (checking each character as it is entered on the
keyboard), or when searching texts that are either too long to load into memory
(or even into a memory mapped file), or are of indeterminate length (for
example the source may be a socket or similar). Partial and full matches can be
differentiated as shown in the following table (the variable M represents an
instance of <A href="match_results.html">match_results&lt;&gt;</A> as filled in
by regex_match, regex_search or regex_grep):<BR>
</P>
<P>
<TABLE id="Table2" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD vAlign="top" width="20%">&nbsp;</TD>
<TD vAlign="top" width="20%">Result</TD>
<TD vAlign="top" width="20%">M[0].matched</TD>
<TD vAlign="top" width="20%">M[0].first</TD>
<TD vAlign="top" width="20%">M[0].second</TD>
</TR>
<TR>
<TD vAlign="top" width="20%">No match</TD>
<TD vAlign="top" width="20%">False</TD>
<TD vAlign="top" width="20%">Undefined</TD>
<TD vAlign="top" width="20%">Undefined</TD>
<TD vAlign="top" width="20%">Undefined</TD>
</TR>
<TR>
<TD vAlign="top" width="20%">Partial match</TD>
<TD vAlign="top" width="20%">True</TD>
<TD vAlign="top" width="20%">False</TD>
<TD vAlign="top" width="20%">Start of partial match.</TD>
<TD vAlign="top" width="20%">End of partial match (end of text).</TD>
</TR>
<TR>
<TD vAlign="top" width="20%">Full match</TD>
<TD vAlign="top" width="20%">True</TD>
<TD vAlign="top" width="20%">True</TD>
<TD vAlign="top" width="20%">Start of full match.</TD>
<TD vAlign="top" width="20%">End of full match.</TD>
</TR>
</TABLE>
</P>
<P>The following <A href="../example/snippets/partial_regex_match.cpp">example</A>
tests to see whether the text could be a valid credit card number, as the user
presses a key, the character entered would be added to the string being built
up, and passed to <CODE>is_possible_card_number</CODE>. If this returns true
then the text could be a valid card number, so the user interface's OK button
would be enabled. If it returns false, then this is not yet a valid card
number, but could be with more input, so the user interface would disable the
OK button. Finally, if the procedure throws an exception the input could never
become a valid number, and the inputted character must be discarded, and a
suitable error indication displayed to the user.</P>
<PRE>#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;boost/regex.hpp&gt;
boost::regex e("(\\d{3,4})[- ]?(\\d{4})[- ]?(\\d{4})[- ]?(\\d{4})");
bool is_possible_card_number(const std::string&amp; input)
{
//
// return false for partial match, true for full match, or throw for
// impossible match based on what we have so far...
boost::match_results&lt;std::string::const_iterator&gt; what;
if(0 == boost::regex_match(input, what, e, boost::match_default | boost::match_partial))
{
// the input so far could not possibly be valid so reject it:
throw std::runtime_error("Invalid data entered - this could not possibly be a valid card number");
}
// OK so far so good, but have we finished?
if(what[0].matched)
{
// excellent, we have a result:
return true;
}
// what we have so far is only a partial match...
return false;
}</PRE>
<P>In the following <A href="../example/snippets/partial_regex_grep.cpp">example</A>,
text input is taken from a stream containing an unknown amount of text; this
example simply counts the number of html tags encountered in the stream. The
text is loaded into a buffer and searched a part at a time, if a partial match
was encountered, then the partial match gets searched a second time as the
start of the next batch of text:</P>
<PRE>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sstream&gt;
#include &lt;string&gt;
#include &lt;boost/regex.hpp&gt;
// match some kind of html tag:
boost::regex e("&lt;[^&gt;]*&gt;");
// count how many:
unsigned int tags = 0;
// saved position of partial match:
char* next_pos = 0;
bool grep_callback(const boost::match_results&lt;char*&gt;&amp; m)
{
if(m[0].matched == false)
{
// save position and return:
next_pos = m[0].first;
}
else
++tags;
return true;
}
void search(std::istream&amp; is)
{
char buf[4096];
next_pos = buf + sizeof(buf);
bool have_more = true;
while(have_more)
{
// how much do we copy forward from last try:
unsigned leftover = (buf + sizeof(buf)) - next_pos;
// and how much is left to fill:
unsigned size = next_pos - buf;
// copy forward whatever we have left:
memcpy(buf, next_pos, leftover);
// fill the rest from the stream:
unsigned read = is.readsome(buf + leftover, size);
// check to see if we've run out of text:
have_more = read == size;
// reset next_pos:
next_pos = buf + sizeof(buf);
// and then grep:
boost::regex_grep(grep_callback,
buf,
buf + read + leftover,
e,
boost::match_default | boost::match_partial);
}
}</PRE>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,52 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Performance</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Performance</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>The performance of Boost.regex in both recursive and non-recursive modes should
be broadly comparable to other regular expression libraries: recursive mode is
slightly faster (especially where memory allocation requires thread
synchronisation), but not by much.&nbsp; The following pages compare
Boost.regex with various other regular expression libraries for the following
compilers:</P>
<P><A href="vc71-performance.html">Visual Studio.Net 2003 (recursive Boost.regex
implementation)</A>.</P>
<P><A href="gcc-performance.html">Gcc 3.2 (cygwin) (non-recursive Boost.regex
implementation).</A></P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,286 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: POSIX API Compatibility Functions</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">POSIX API Compatibility Functions</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<PRE>#include &lt;boost/cregex.hpp&gt;
<I>or</I>:
#include &lt;boost/regex.h&gt;</PRE>
<P>The following functions are available for users who need a POSIX compatible C
library, they are available in both Unicode and narrow character versions, the
standard POSIX API names are macros that expand to one version or the other
depending upon whether UNICODE is defined or not.
</P>
<P><B>Important</B>: Note that all the symbols defined here are enclosed inside
namespace <I>boost</I> when used in C++ programs, unless you use #include
&lt;boost/regex.h&gt; instead - in which case the symbols are still defined in
namespace boost, but are made available in the global namespace as well.</P>
<P>The functions are defined as:
</P>
<PRE>extern "C" {
<B>int</B> regcompA(regex_tA*, <B>const</B> <B>char</B>*, <B>int</B>);
<B>unsigned</B> <B>int</B> regerrorA(<B>int</B>, <B>const</B> regex_tA*, <B>char</B>*, <B>unsigned</B> <B>int</B>);
<B>int</B> regexecA(<B>const</B> regex_tA*, <B>const</B> <B>char</B>*, <B>unsigned</B> <B>int</B>, regmatch_t*, <B>int</B>);
<B>void</B> regfreeA(regex_tA*);
<B>int</B> regcompW(regex_tW*, <B>const</B> <B>wchar_t</B>*, <B>int</B>);
<B>unsigned</B> <B>int</B> regerrorW(<B>int</B>, <B>const</B> regex_tW*, <B>wchar_t</B>*, <B>unsigned</B> <B>int</B>);
<B>int</B> regexecW(<B>const</B> regex_tW*, <B>const</B> <B>wchar_t</B>*, <B>unsigned</B> <B>int</B>, regmatch_t*, <B>int</B>);
<B>void</B> regfreeW(regex_tW*);
#ifdef UNICODE
#define regcomp regcompW
#define regerror regerrorW
#define regexec regexecW
#define regfree regfreeW
#define regex_t regex_tW
#else
#define regcomp regcompA
#define regerror regerrorA
#define regexec regexecA
#define regfree regfreeA
#define regex_t regex_tA
#endif
}</PRE>
<P>All the functions operate on structure <B>regex_t</B>, which exposes two public
members:
</P>
<P><B>unsigned int re_nsub</B> this is filled in by <B>regcomp</B> and indicates
the number of sub-expressions contained in the regular expression.
</P>
<P><B>const TCHAR* re_endp</B> points to the end of the expression to compile when
the flag REG_PEND is set.
</P>
<P><I>Footnote: regex_t is actually a #define - it is either regex_tA or regex_tW
depending upon whether UNICODE is defined or not, TCHAR is either char or
wchar_t again depending upon the macro UNICODE.</I>
</P>
<H3>regcomp</H3>
<P><B>regcomp</B> takes a pointer to a <B>regex_t</B>, a pointer to the expression
to compile and a flags parameter which can be a combination of:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table2" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_EXTENDED</TD>
<TD vAlign="top" width="45%">Compiles modern regular expressions. Equivalent to
regbase::char_classes | regbase::intervals | regbase::bk_refs.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_BASIC</TD>
<TD vAlign="top" width="45%">Compiles basic (obsolete) regular expression syntax.
Equivalent to regbase::char_classes | regbase::intervals | regbase::limited_ops
| regbase::bk_braces | regbase::bk_parens | regbase::bk_refs.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NOSPEC</TD>
<TD vAlign="top" width="45%">All characters are ordinary, the expression is a
literal string.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_ICASE</TD>
<TD vAlign="top" width="45%">Compiles for matching that ignores character case.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NOSUB</TD>
<TD vAlign="top" width="45%">Has no effect in this library.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NEWLINE</TD>
<TD vAlign="top" width="45%">When this flag is set a dot does not match the
newline character.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_PEND</TD>
<TD vAlign="top" width="45%">When this flag is set the re_endp parameter of the
regex_t structure must point to the end of the regular expression to compile.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NOCOLLATE</TD>
<TD vAlign="top" width="45%">When this flag is set then locale dependent collation
for character ranges is turned off.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_ESCAPE_IN_LISTS<BR>
, , ,
</TD>
<TD vAlign="top" width="45%">When this flag is set, then escape sequences are
permitted in bracket expressions (character sets).</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NEWLINE_ALT&nbsp;</TD>
<TD vAlign="top" width="45%">When this flag is set then the newline character is
equivalent to the alternation operator |.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_PERL&nbsp;</TD>
<TD vAlign="top" width="45%">Compiles Perl like regular expressions.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_AWK</TD>
<TD vAlign="top" width="45%">A shortcut for awk-like behavior: REG_EXTENDED |
REG_ESCAPE_IN_LISTS</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_GREP</TD>
<TD vAlign="top" width="45%">A shortcut for grep like behavior: REG_BASIC |
REG_NEWLINE_ALT</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_EGREP</TD>
<TD vAlign="top" width="45%">&nbsp;A shortcut for egrep like behavior:
REG_EXTENDED | REG_NEWLINE_ALT</TD>
<TD width="5%">&nbsp;</TD>
</TR>
</TABLE>
</P>
<H3>regerror</H3>
<P>regerror takes the following parameters, it maps an error code to a human
readable string:
<BR>
</P>
<P>
<TABLE id="Table3" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="50%">int code</TD>
<TD vAlign="top" width="50%">The error code.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">const regex_t* e</TD>
<TD vAlign="top" width="50%">The regular expression (can be null).</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">char* buf</TD>
<TD vAlign="top" width="50%">The buffer to fill in with the error message.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">unsigned int buf_size</TD>
<TD vAlign="top" width="50%">The length of buf.</TD>
<TD>&nbsp;</TD>
</TR>
</TABLE>
</P>
<P>If the error code is OR'ed with REG_ITOA then the message that results is the
printable name of the code rather than a message, for example "REG_BADPAT". If
the code is REG_ATIO then <B>e</B> must not be null and <B>e-&gt;re_pend</B> must
point to the printable name of an error code, the return value is then the
value of the error code. For any other value of <B>code</B>, the return value
is the number of characters in the error message, if the return value is
greater than or equal to <B>buf_size</B> then <B>regerror</B> will have to be
called again with a larger buffer.</P>
<H3>regexec</H3>
<P><B>regexec</B> finds the first occurrence of expression <B>e</B> within string <B>buf</B>.
If <B>len</B> is non-zero then *<B>m</B> is filled in with what matched the
regular expression, <B>m[0]</B> contains what matched the whole string, <B>m[1] </B>
the first sub-expression etc, see <B>regmatch_t</B> in the header file
declaration for more details. The <B>eflags</B> parameter can be a combination
of:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table4" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="50%">REG_NOTBOL</TD>
<TD vAlign="top" width="50%">Parameter <B>buf </B>does not represent the start of
a line.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">REG_NOTEOL</TD>
<TD vAlign="top" width="50%">Parameter <B>buf</B> does not terminate at the end of
a line.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">REG_STARTEND</TD>
<TD vAlign="top" width="50%">The string searched starts at buf + pmatch[0].rm_so
and ends at buf + pmatch[0].rm_eo.</TD>
<TD>&nbsp;</TD>
</TR>
</TABLE>
</P>
<H3>regfree</H3>
<P>Finally <B>regfree</B> frees all the memory that was allocated by regcomp.
</P>
<P><I>Footnote: this is an abridged reference to the POSIX API functions, it is
provided for compatibility with other libraries, rather than an API to be used
in new code (unless you need access from a language other than C++). This
version of these functions should also happily coexist with other versions, as
the names used are macros that expand to the actual function names.</I>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,84 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Redistributables and Library Names</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Redistributables and Library Names</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>If you are using Microsoft or Borland C++ and link to a dll version of the run
time library, then you can choose to also link to a dll version of boost.regex
by defining the symbol BOOST_REGEX_DYN_LINK when you compile your code. While
these dll's are redistributable, there are no "standard" versions, so when
installing on the users PC, you should place these in a directory private to
your application, and not in the PC's directory path. Note that if you link to
a static version of your run time library, then you will also link to a static
version of boost.regex and no dll's will need to be distributed. The possible
boost.regex dll and library names are computed according to the following
formula:<BR>
</P>
<P></P>
<P>BOOST_LIB_PREFIX<BR>
+ "boost_regex_"<BR>
+ BOOST_LIB_TOOLSET<BR>
+ "_"<BR>
+ BOOST_LIB_THREAD_OPT<BR>
+ BOOST_LIB_RT_OPT<BR>
+ BOOST_LIB_DEBUG_OPT<BR>
<BR>
These are defined as:</P>
<P>BOOST_LIB_PREFIX: Either "lib" if this is a static link library,
or&nbsp;nothing for dynamic / shared&nbsp;libraries.<BR>
<BR>
BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).<BR>
<BR>
BOOST_LIB_THREAD_OPT: "s" for single thread builds,<BR>
"m" for multithread builds.<BR>
<BR>
BOOST_LIB_RT_OPT: "s" for static runtime,<BR>
"d" for dynamic runtime.<BR>
<BR>
BOOST_LIB_LINK_OPT: "s" for static link,<BR>
"i" for dynamic link.<BR>
<BR>
BOOST_LIB_DEBUG_OPT: nothing for release builds,<BR>
"d" for debug builds,<BR>
"dd" for debug-diagnostic builds (_STLP_DEBUG).</P>
<P>
Note: you can disable automatic library selection by defining the symbol
BOOST_REGEX_NO_LIB when compiling, this is useful if you want to statically
link even though you're using the dll version of your run time library, or if
you need to debug boost.regex.
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,44 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Class reg_expression (deprecated)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Class reg_expression (deprecated)</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>The use of class template reg_expression is deprecated: use <A href="basic_regex.html">
basic_regex</A> instead.</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,82 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: regbase</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">regbase</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>Use of the type <code>boost::regbase</code> is now deprecated,
and the type does not form a part of the <a href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</a>.&nbsp; This type
still exists as a base class of <code>boost::basic_regex</code>,
and you can still refer to <code>
boost::regbase::constant_name</code> in your code, however for
maximum portability to other std regex implementations you should
instead use either:</p>
<pre>
boost::regex_constants::constant_name
</pre>
<p>or</p>
<pre>
boost::regex::constant_name
</pre>
<p>or</p>
<pre>
boost::wregex::constant_name
</pre>
<p></p>
<hr>
<br>
<br>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,611 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: class RegEx (deprecated)</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">class RegEx (deprecated)</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>The high level wrapper class RegEx is now deprecated and does
not form a part of the <a href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</a>.&nbsp; This type
still exists, and existing code will continue to compile, however
the following documentation is unlikely to be further updated.</p>
<pre>
#include &lt;boost/cregex.hpp&gt;
</pre>
<p>The class RegEx provides a high level simplified interface to
the regular expression library, this class only handles narrow
character strings, and regular expressions always follow the
"normal" syntax - that is the same as the perl / ECMAScript
synatx.</p>
<pre>
<b>typedef</b> <b>bool</b> (*GrepCallback)(<b>const</b> RegEx&amp; expression);
<b>typedef</b> <b>bool</b> (*GrepFileCallback)(<b>const</b> <b>char</b>* file, <b>const</b> RegEx&amp; expression);
<b>typedef</b> <b>bool</b> (*FindFilesCallback)(<b>const</b> <b>char</b>* file);
<b>class</b> RegEx
{
<b>public</b>:
RegEx();
RegEx(<b>const</b> RegEx&amp; o);
~RegEx();
RegEx(<b>const</b> <b>char</b>* c, <b>bool</b> icase = <b>false</b>);
<strong>explicit</strong> RegEx(<b>const</b> std::string&amp; s, <b>bool</b> icase = <b>false</b>);
RegEx&amp; <b>operator</b>=(<b>const</b> RegEx&amp; o);
RegEx&amp; <b>operator</b>=(<b>const</b> <b>char</b>* p);
RegEx&amp; <b>operator</b>=(<b>const</b> std::string&amp; s);
<b>unsigned</b> <b>int</b> SetExpression(<b>const</b> <b>char</b>* p, <b>bool</b> icase = <b>false</b>);
<b>unsigned</b> <b>int</b> SetExpression(<b>const</b> std::string&amp; s, <b>bool</b> icase = <b>false</b>);
std::string Expression()<b>const</b>;
<font color="#000080"><i>//
</i> <i>// now matching operators:</i>
<i>//</i></font>
<b>bool</b> Match(<b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>bool</b> Match(<b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>bool</b> Search(<b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>bool</b> Search(<b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(GrepCallback cb, <b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(GrepCallback cb, <b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(std::vector&lt;std::string&gt;&amp; v, <b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(std::vector&lt;std::string&gt;&amp; v, <b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(std::vector&lt;<b>unsigned</b> <b>int</b>&gt;&amp; v, <b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(std::vector&lt;<b>unsigned</b> <b>int</b>&gt;&amp; v, <b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> GrepFiles(GrepFileCallback cb, <b>const</b> <b>char</b>* files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> GrepFiles(GrepFileCallback cb, <b>const</b> std::string&amp; files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> FindFiles(FindFilesCallback cb, <b>const</b> <b>char</b>* files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> FindFiles(FindFilesCallback cb, <b>const</b> std::string&amp; files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags = match_default);
std::string Merge(<b>const</b> std::string&amp; in, <b>const</b> std::string&amp; fmt, <b>bool</b> copy = <b>true</b>, <b>unsigned</b> <b>int</b> flags = match_default);
std::string Merge(<b>const</b> char* in, <b>const</b> char* fmt, <b>bool</b> copy = <b>true</b>, <b>unsigned int</b> flags = match_default);
<b>unsigned</b> Split(std::vector&lt;std::string&gt;&amp; v, std::string&amp; s, <b>unsigned</b> flags = match_default, <b>unsigned</b> max_count = ~0);
<font color="#000080"><i>//
</i> <i>// now operators for returning what matched in more detail:
</i> <i>//
</i></font> <b>unsigned</b> <b>int</b> Position(<b>int</b> i = 0)<b>const</b>;
<b>unsigned</b> <b>int</b> Length(<b>int</b> i = 0)<b>const</b>;
<strong>bool</strong> Matched(<strong>int</strong> i = 0)<strong>const</strong>;
<b>unsigned</b> <b>int</b> Line()<b>const</b>;
<b>unsigned int</b> Marks() const;
std::string What(<b>int</b> i)<b>const</b>;
std::string <b>operator</b>[](<b>int</b> i)<b>const</b> ;
<strong>static const unsigned int</strong> npos;
};
</pre>
<p>Member functions for class RegEx are defined as follows:<br>
&nbsp;</p>
<p></p>
<table id="Table2" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx();</td>
<td valign="top" width="42%">Default constructor, constructs an
instance of RegEx without any valid expression.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx(<b>const</b> RegEx&amp; o);</td>
<td valign="top" width="42%">Copy constructor, all the properties
of parameter <i>o</i> are copied.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx(<b>const</b> <b>char</b>* c, <b>
bool</b> icase = <b>false</b>);</td>
<td valign="top" width="42%">Constructs an instance of RegEx,
setting the expression to <i>c</i>, if <i>icase</i> is <i>true</i>
then matching is insensitive to case, otherwise it is sensitive to
case. Throws <i>bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx(<b>const</b> std::string&amp; s,
<b>bool</b> icase = <b>false</b>);</td>
<td valign="top" width="42%">Constructs an instance of RegEx,
setting the expression to <i>s</i>, if <i>icase</i> is <i>true</i>
then matching is insensitive to case, otherwise it is sensitive to
case. Throws <i>bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx&amp; <b>
operator</b>=(<b>const</b> RegEx&amp; o);</td>
<td valign="top" width="42%">Default assignment operator.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx&amp; <b>
operator</b>=(<b>const</b> <b>char</b>* p);</td>
<td valign="top" width="42%">Assignment operator, equivalent to
calling <i>SetExpression(p, false).</i> Throws <i>
bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx&amp; <b>
operator</b>=(<b>const</b> std::string&amp; s);</td>
<td valign="top" width="42%">Assignment operator, equivalent to
calling <i>SetExpression(s, false).</i> Throws <i>
bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
SetExpression(<b>constchar</b>* p, <b>bool</b> icase = <b>
false</b>);</td>
<td valign="top" width="42%">Sets the current expression to <i>
p</i>, if <i>icase</i> is <i>true</i> then matching is insensitive
to case, otherwise it is sensitive to case. Throws <i>
bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
SetExpression(<b>const</b> std::string&amp; s, <b>bool</b> icase =
<b>false</b>);</td>
<td valign="top" width="42%">Sets the current expression to <i>
s</i>, if <i>icase</i> is <i>true</i> then matching is insensitive
to case, otherwise it is sensitive to case. Throws <i>
bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string
Expression()<b>const</b>;</td>
<td valign="top" width="42%">Returns a copy of the current regular
expression.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>bool</b> Match(<b>const</b> <b>
char</b>* p, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Attempts to match the current
expression against the text <i>p</i> using the match flags <i>
flags</i> - see <a href="match_flag_type.html">match flags</a>.
Returns <i>true</i> if the expression matches the whole of the
input string.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>bool</b> Match(<b>const</b>
std::string&amp; s, <b>unsigned</b> <b>int</b> flags =
match_default) ;</td>
<td valign="top" width="42%">Attempts to match the current
expression against the text <i>s</i> using the match flags <i>
flags</i> - see <a href="match_flag_type.html">match flags</a>.
Returns <i>true</i> if the expression matches the whole of the
input string.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>bool</b> Search(<b>const</b> <b>
char</b>* p, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Attempts to find a match for the
current expression somewhere in the text <i>p</i> using the match
flags <i>flags</i> - see <a href="match_flag_type.html">match
flags</a>. Returns <i>true</i> if the match succeeds.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>bool</b> Search(<b>const</b>
std::string&amp; s, <b>unsigned</b> <b>int</b> flags =
match_default) ;</td>
<td valign="top" width="42%">Attempts to find a match for the
current expression somewhere in the text <i>s</i> using the match
flags <i>flags</i> - see <a href="match_flag_type.html">match
flags</a>. Returns <i>true</i> if the match succeeds.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(GrepCallback cb, <b>const</b> <b>char</b>* p, <b>unsigned</b>
<b>int</b> flags = match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>p</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match found calls the call-back function <i>cb</i> as: cb(*this);
<p>If at any stage the call-back function returns false then the
grep operation terminates, otherwise continues until no further
matches are found. Returns the number of matches found.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(GrepCallback cb, <b>const</b> std::string&amp; s, <b>
unsigned</b> <b>int</b> flags = match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>s</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match found calls the call-back function <i>cb</i> as: cb(*this);
<p>If at any stage the call-back function returns false then the
grep operation terminates, otherwise continues until no further
matches are found. Returns the number of matches found.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(std::vector&lt;std::string&gt;&amp; v, <b>const</b> <b>
char</b>* p, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>p</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match pushes a copy of what matched onto <i>v</i>. Returns the
number of matches found.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(std::vector&lt;std::string&gt;&amp; v, <b>const</b>
std::string&amp; s, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>s</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match pushes a copy of what matched onto <i>v</i>. Returns the
number of matches found.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(std::vector&lt;<b>unsigned int</b>&gt;&amp; v, <b>const</b>
<b>char</b>* p, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>p</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match pushes the starting index of what matched onto <i>v</i>.
Returns the number of matches found.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(std::vector&lt;<b>unsigned int</b>&gt;&amp; v, <b>const</b>
std::string&amp; s, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>s</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match pushes the starting index of what matched onto <i>v</i>.
Returns the number of matches found.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
GrepFiles(GrepFileCallback cb, <b>const</b> <b>char</b>* files, <b>
bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the files <i>files</i> using the match flags <i>
flags</i> - see <a href="match_flag_type.html">match flags</a>. For
each match calls the call-back function cb.&nbsp;
<p>If the call-back returns false then the algorithm returns
without considering further matches in the current file, or any
further files.&nbsp;</p>
<p>The parameter <i>files</i> can include wild card characters '*'
and '?', if the parameter <i>recurse</i> is true then searches
sub-directories for matching file names.&nbsp;</p>
<p>Returns the total number of matches found.</p>
<p>May throw an exception derived from std::runtime_error if file
io fails.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
GrepFiles(GrepFileCallback cb, <b>const</b> std::string&amp; files,
<b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b>
flags = match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the files <i>files</i> using the match flags <i>
flags</i> - see <a href="match_flag_type.html">match flags</a>. For
each match calls the call-back function cb.&nbsp;
<p>If the call-back returns false then the algorithm returns
without considering further matches in the current file, or any
further files.&nbsp;</p>
<p>The parameter <i>files</i> can include wild card characters '*'
and '?', if the parameter <i>recurse</i> is true then searches
sub-directories for matching file names.&nbsp;</p>
<p>Returns the total number of matches found.</p>
<p>May throw an exception derived from std::runtime_error if file
io fails.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
FindFiles(FindFilesCallback cb, <b>const</b> <b>char</b>* files,
<b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b>
flags = match_default);</td>
<td valign="top" width="42%">Searches <i>files</i> to find all
those which contain at least one match of the current expression
using the match flags <i>flags</i> - see <a href="match_flag_type.html">match flags</a>. For each matching file
calls the call-back function cb.&nbsp;
<p>If the call-back returns false then the algorithm returns
without considering any further files.&nbsp;</p>
<p>The parameter <i>files</i> can include wild card characters '*'
and '?', if the parameter <i>recurse</i> is true then searches
sub-directories for matching file names.&nbsp;</p>
<p>Returns the total number of files found.</p>
<p>May throw an exception derived from std::runtime_error if file
io fails.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
FindFiles(FindFilesCallback cb, <b>const</b> std::string&amp;
files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>
int</b> flags = match_default);</td>
<td valign="top" width="42%">Searches <i>files</i> to find all
those which contain at least one match of the current expression
using the match flags <i>flags</i> - see <a href="match_flag_type.html">match flags</a>. For each matching file
calls the call-back function cb.&nbsp;
<p>If the call-back returns false then the algorithm returns
without considering any further files.&nbsp;</p>
<p>The parameter <i>files</i> can include wild card characters '*'
and '?', if the parameter <i>recurse</i> is true then searches
sub-directories for matching file names.&nbsp;</p>
<p>Returns the total number of files found.</p>
<p>May throw an exception derived from std::runtime_error if file
io fails.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string Merge(<b>const</b>
std::string&amp; in, <b>const</b> std::string&amp; fmt, <b>bool</b>
copy = <b>true</b>, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Performs a search and replace
operation: searches through the string <i>in</i> for all
occurrences of the current expression, for each occurrence replaces
the match with the format string <i>fmt</i>. Uses <i>flags</i> to
determine what gets matched, and how the format string should be
treated. If <i>copy</i> is true then all unmatched sections of
input are copied unchanged to output, if the flag <em>
format_first_only</em> is set then only the first occurance of the
pattern found is replaced. Returns the new string. See <a href="format_syntax.html">also format string syntax</a>, <a href="match_flag_type.html">match flags</a> and <a href="match_flag_type.html">format flags</a>.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string Merge(<b>const</b> char*
in, <b>const</b> char* fmt, <b>bool</b> copy = <b>true</b>, <b>
unsigned int</b> flags = match_default);</td>
<td valign="top" width="42%">Performs a search and replace
operation: searches through the string <i>in</i> for all
occurrences of the current expression, for each occurrence replaces
the match with the format string <i>fmt</i>. Uses <i>flags</i> to
determine what gets matched, and how the format string should be
treated. If <i>copy</i> is true then all unmatched sections of
input are copied unchanged to output, if the flag <em>
format_first_only</em> is set then only the first occurance of the
pattern found is replaced. Returns the new string. See <a href="format_syntax.html">also format string syntax</a>, <a href="match_flag_type.html">match flags</a> and <a href="match_flag_type.html">format flags</a>.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top"><b>unsigned</b>
Split(std::vector&lt;std::string&gt;&amp; v, std::string&amp; s,
<b>unsigned</b> flags = match_default, <b>unsigned</b> max_count =
~0);</td>
<td valign="top">Splits the input string and pushes each one onto
the vector. If the expression contains no marked sub-expressions,
then one string is outputted for each section of the input that
does not match the expression. If the expression does contain
marked sub-expressions, then outputs one string for each marked
sub-expression each time a match occurs. Outputs no more than <i>
max_count</i> strings. Before returning, deletes from the input
string <i>s</i> all of the input that has been processed (all of
the string if <i>max_count</i> was not reached). Returns the number
of strings pushed onto the vector.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Position(<b>int</b> i = 0)<b>const</b>;</td>
<td valign="top" width="42%">Returns the position of what matched
sub-expression <i>i</i>. If <i>i = 0</i> then returns the position
of the whole match. Returns RegEx::npos if the supplied index is
invalid, or if the specified sub-expression did not participate in
the match.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Length(<b>int</b> i = 0)<b>const</b>;</td>
<td valign="top" width="42%">Returns the length of what matched
sub-expression <i>i</i>. If <i>i = 0</i> then returns the length of
the whole match. Returns RegEx::npos if the supplied index is
invalid, or if the specified sub-expression did not participate in
the match.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><strong>bool</strong> Matched(<strong>int</strong> i =
0)<strong>const</strong>;</td>
<td>Returns true if sub-expression <em>i</em> was matched, false
otherwise.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Line()<b>const</b>;</td>
<td valign="top" width="42%">Returns the line on which the match
occurred, indexes start from 1 not zero, if no match occurred then
returns RegEx::npos.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned int</b> Marks()
const;</td>
<td valign="top" width="42%">Returns the number of marked
sub-expressions contained in the expression. Note that this
includes the whole match (sub-expression zero), so the value
returned is always &gt;= 1.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string What(<b>int</b>
i)<b>const</b>;</td>
<td valign="top" width="42%">Returns a copy of what matched
sub-expression <i>i</i>. If <i>i = 0</i> then returns a copy of the
whole match. Returns a null string if the index is invalid or if
the specified sub-expression did not participate in a match.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string <b>
operator</b>[](<b>int</b> i)<b>const</b> ;</td>
<td valign="top" width="42%">Returns <i>what(i);</i>
<p>Can be used to simplify access to sub-expression matches, and
make usage more perl-like.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
</table>
<br>
<br>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,204 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: Algorithm regex_format (deprecated)</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Algorithm regex_format (deprecated)</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>The algorithm regex_format is deprecated; new code should use
match_results::format instead.&nbsp; Existing code will continue to
compile, the following documentation is taken from the previous
version of boost.regex and will not be further updated:</p>
<h3>Algorithm regex_format</h3>
<pre>
#include &lt;<a href="../../../boost/regex.hpp">boost/regex.hpp</a>&gt;
</pre>
<p>The algorithm regex_format takes the results of a match and
creates a new string based upon a <a href="format_syntax.html">
format string</a>, regex_format can be used for search and replace
operations:</p>
<pre>
<b>template</b> &lt;<b>class</b> OutputIterator, <b>class</b> iterator, <b>class</b> Allocator, <b>class</b> charT&gt;
OutputIterator regex_format(OutputIterator out,
<b>const</b> match_results&lt;iterator, Allocator&gt;&amp; m,
<b>const</b> charT* fmt,
match_flag_type flags = 0);
<b>template</b> &lt;<b>class</b> OutputIterator, <b>class</b> iterator, <b>class</b> Allocator, <b>class</b> charT&gt;
OutputIterator regex_format(OutputIterator out,
<b>const</b> match_results&lt;iterator, Allocator&gt;&amp; m,
<b>const</b> std::basic_string&lt;charT&gt;&amp; fmt,
match_flag_type flags = 0);
</pre>
<p>The library also defines the following convenience variation of
regex_format, which returns the result directly as a string, rather
than outputting to an iterator [note - this version may not be
available, or may be available in a more limited form, depending
upon your compilers capabilities]:</p>
<pre>
<b>template</b> &lt;<b>class</b> iterator, <b>class</b> Allocator, <b>class</b> charT&gt;
std::basic_string&lt;charT&gt; regex_format
(<b>const</b> match_results&lt;iterator, Allocator&gt;&amp; m,
<b>const</b> charT* fmt,
match_flag_type flags = 0);
<b>template</b> &lt;<b>class</b> iterator, <b>class</b> Allocator, <b>class</b> charT&gt;
std::basic_string&lt;charT&gt; regex_format
(<b>const</b> match_results&lt;iterator, Allocator&gt;&amp; m,
<b>const</b> std::basic_string&lt;charT&gt;&amp; fmt,
match_flag_type flags = 0);
</pre>
<p>Parameters to the main version of the function are passed as
follows:</p>
<p></p>
<table id="Table2" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">OutputIterator out</td>
<td valign="top" width="44%">An output iterator type, the output
string is sent to this iterator. Typically this would be a
std::ostream_iterator.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%"><b>const</b>
match_results&lt;iterator, Allocator&gt;&amp; m</td>
<td valign="top" width="44%">An instance of match_results&lt;&gt;
obtained from one of the matching algorithms above, and denoting
what matched.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%"><b>const</b> charT* fmt</td>
<td valign="top" width="44%">A format string that determines how
the match is transformed into the new string.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%"><b>unsigned</b> flags</td>
<td valign="top" width="44%">Optional flags which describe how the
format string is to be interpreted.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
</table>
<br>
<br>
<p><a name="format_flags"></a>Format flags are defined as
follows:</p>
<p></p>
<table id="Table3" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">format_all</td>
<td valign="top" width="43%">Enables all syntax options (perl-like
plus extentions).</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">format_sed</td>
<td valign="top" width="43%">Allows only a sed-like syntax.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">format_perl</td>
<td valign="top" width="43%">Allows only a perl-like syntax.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">format_no_copy</td>
<td valign="top" width="43%">Disables copying of unmatched sections
to the output string during <a href="regex_merge.html">
regex_merge</a> operations.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>format_first_only</td>
<td>When this flag is set only the first occurance will be replaced
(applies to regex_merge only).</td>
<td>&nbsp;</td>
</tr>
</table>
<br>
<br>
<p>The format string syntax (and available options) is described
more fully under <a href="format_syntax.html">format strings</a>
.</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,382 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_grep (deprecated)</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Algorithm regex_grep (deprecated)</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>The algorithm regex_grep is deprecated in favor of <a href="regex_iterator.html">regex_iterator</a>
which provides a more convenient and standard library friendly interface.</p>
<p>The following documentation is taken unchanged from the previous boost release,
and will not be updated in future.</p>
<hr>
<pre>
#include &lt;<a href="../../../boost/regex.hpp">boost/regex.hpp</a>&gt;
</pre>
<p>regex_grep allows you to search through a bidirectional-iterator range and
locate all the (non-overlapping) matches with a given regular expression. The
function is declared as:</p>
<pre>
<b>template</b> &lt;<b>class</b> Predicate, <b>class</b> iterator, <b>class</b> charT, <b>class</b> traits, <b>class</b> Allocator&gt;
<b>unsigned</b> <b>int</b> regex_grep(Predicate foo,
iterator first,
iterator last,
<b>const</b> basic_regex&lt;charT, traits, Allocator&gt;&amp; e,
<b>unsigned</b> flags = match_default)
</pre>
<p>The library also defines the following convenience versions, which take either
a const charT*, or a const std::basic_string&lt;&gt;&amp; in place of a pair of
iterators [note - these versions may not be available, or may be available in a
more limited form, depending upon your compilers capabilities]:</p>
<pre>
<b>template</b> &lt;<b>class</b> Predicate, <b>class</b> charT, <b>class</b> Allocator, <b>class</b> traits&gt;
<b>unsigned</b> <b>int</b> regex_grep(Predicate foo,
<b>const</b> charT* str,
<b>const</b> basic_regex&lt;charT, traits, Allocator&gt;&amp; e,
<b>unsigned</b> flags = match_default);
<b>template</b> &lt;<b>class</b> Predicate, <b>class</b> ST, <b>class</b> SA, <b>class</b> Allocator, <b>class</b> charT, <b>class</b> traits&gt;
<b>unsigned</b> <b>int</b> regex_grep(Predicate foo,
<b>const</b> std::basic_string&lt;charT, ST, SA&gt;&amp; s,
<b>const</b> basic_regex&lt;charT, traits, Allocator&gt;&amp; e,
<b>unsigned</b> flags = match_default);
</pre>
<p>The parameters for the primary version of regex_grep have the following
meanings:&nbsp;</p>
<p></p>
<table id="Table2" cellspacing="0" cellpadding="7" width="624" border="0">
<tr>
<td width="5%">&nbsp;</td>
<td valign="top" width="50%">foo</td>
<td valign="top" width="50%">A predicate function object or function pointer, see
below for more information.</td>
<td width="5%">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top" width="50%">first</td>
<td valign="top" width="50%">The start of the range to search.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top" width="50%">last</td>
<td valign="top" width="50%">The end of the range to search.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top" width="50%">e</td>
<td valign="top" width="50%">The regular expression to search for.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top" width="50%">flags</td>
<td valign="top" width="50%">The flags that determine how matching is carried out,
one of the <a href="#match_type">match_flags</a> enumerators.</td>
<td>&nbsp;</td>
</tr>
</table>
<br>
<br>
<p>The algorithm finds all of the non-overlapping matches of the expression e, for
each match it fills a <a href="#reg_match">match_results</a>&lt;iterator,
Allocator&gt; structure, which contains information on what matched, and calls
the predicate foo, passing the match_results&lt;iterator, Allocator&gt; as a
single argument. If the predicate returns true, then the grep operation
continues, otherwise it terminates without searching for further matches. The
function returns the number of matches found.</p>
<p>The general form of the predicate is:</p>
<pre>
<b>struct</b> grep_predicate
{
<b> bool</b> <b>operator</b>()(<b>const</b> match_results&lt;iterator_type, typename expression_type::alloc_type::template rebind&lt;sub_match&lt;BidirectionalIterator&gt; &gt;::other&gt;&amp; m);
};
</pre>
<p>Note that in almost every case the allocator parameter can be omitted, when
specifying the <a href="match_results.html">match_results</a> type,
alternatively one of the typedefs cmatch, wcmatch, smatch or wsmatch can be
used.</p>
<p>For example the regular expression "a*b" would find one match in the string
"aaaaab" and two in the string "aaabb".</p>
<p>Remember this algorithm can be used for a lot more than implementing a version
of grep, the predicate can be and do anything that you want, grep utilities
would output the results to the screen, another program could index a file
based on a regular expression and store a set of bookmarks in a list, or a text
file conversion utility would output to file. The results of one regex_grep can
even be chained into another regex_grep to create recursive parsers.</p>
<P>The algorithm may throw&nbsp;<CODE>std::runtime_error</CODE> if the complexity
of matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<p><a href="../example/snippets/regex_grep_example_1.cpp"> Example</a>: convert
the example from <i>regex_search</i> to use <i>regex_grep</i> instead:</p>
<pre>
<font color="#008000">#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
</font><font color="#000080"><i>// IndexClasses:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</i></font><b>typedef</b> std::map&lt;std::string, <b>int</b>, std::less&lt;std::string&gt; &gt; map_type;
const char* re =
// possibly leading whitespace:
"^[[:space:]]*"
// possible template declaration:
"(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"
// class or struct:
"(class|struct)[[:space:]]*"
// leading declspec macros etc:
"("
"\\&lt;\\w+\\&gt;"
"("
"[[:blank:]]*\\([^)]*\\)"
")?"
"[[:space:]]*"
")*"
// the class name
"(\\&lt;\\w*\\&gt;)[[:space:]]*"
// template specialisation parameters
"(&lt;[^;:{]+&gt;)?[[:space:]]*"
// terminate in { or :
"(\\{|:[^;\\{()]*\\{)";
boost::regex expression(re);
<b>class</b> IndexClassesPred
{
map_type&amp; m;
std::string::const_iterator base;
<b>public</b>:
IndexClassesPred(map_type&amp; a, std::string::const_iterator b) : m(a), base(b) {}
<b>bool</b> <b>operator</b>()(<b>const</b> smatch&amp; what)
{
<font color=
#000080> <i>// what[0] contains the whole string
</i> <i>// what[5] contains the class name.
</i> <i>// what[6] contains the template specialisation if any.
</i> <i>// add class name and position to map:
</i></font> m[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =
what[5].first - base;
<b>return</b> <b>true</b>;
}
};
<b>void</b> IndexClasses(map_type&amp; m, <b>const</b> std::string&amp; file)
{
std::string::const_iterator start, end;
start = file.begin();
end = file.end();
regex_grep(IndexClassesPred(m, start), start, end, expression);
}
</pre>
<p><a href="../example/snippets/regex_grep_example_2.cpp"> Example</a>: Use
regex_grep to call a global callback function:</p>
<pre>
<font color="#008000">#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
</font><font color="#000080"><i>// purpose:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</i></font><b>typedef</b> std::map&lt;std::string, <b>int</b>, std::less&lt;std::string&gt; &gt; map_type;
const char* re =
// possibly leading whitespace:
"^[[:space:]]*"
// possible template declaration:
"(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"
// class or struct:
"(class|struct)[[:space:]]*"
// leading declspec macros etc:
"("
"\\&lt;\\w+\\&gt;"
"("
"[[:blank:]]*\\([^)]*\\)"
")?"
"[[:space:]]*"
")*"
// the class name
"(\\&lt;\\w*\\&gt;)[[:space:]]*"
// template specialisation parameters
"(&lt;[^;:{]+&gt;)?[[:space:]]*"
// terminate in { or :
"(\\{|:[^;\\{()]*\\{)";
boost::regex expression(re);
map_type class_index;
std::string::const_iterator base;
<b>bool</b> grep_callback(<b>const</b> boost::smatch&amp; what)
{
<font color="#000080"> <i>// what[0] contains the whole string
</i> <i>// what[5] contains the class name.
</i> <i>// what[6] contains the template specialisation if any.
</i> <i>// add class name and position to map:
</i></font> class_index[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =
what[5].first - base;
<b>return</b> <b>true</b>;
}
<b>void</b> IndexClasses(<b>const</b> std::string&amp; file)
{
std::string::const_iterator start, end;
start = file.begin();
end = file.end();
base = start;
regex_grep(grep_callback, start, end, expression, match_default);
}
</pre>
<p><a href="../example/snippets/regex_grep_example_3.cpp"> Example</a>: use
regex_grep to call a class member function, use the standard library adapters <i>std::mem_fun</i>
and <i>std::bind1st</i> to convert the member function into a predicate:</p>
<pre>
<font color="#008000">#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
#include &lt;functional&gt;
</font><font color="#000080"><i>// purpose:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</i></font><b>typedef</b> std::map&lt;std::string, <b>int</b>, std::less&lt;std::string&gt; &gt; map_type;
<b>class</b> class_index
{
boost::regex expression;
map_type index;
std::string::const_iterator base;
<b>bool</b> grep_callback(boost::smatch what);
<b>public</b>:
<b> void</b> IndexClasses(<b>const</b> std::string&amp; file);
class_index()
: index(),
expression(<font color=
#000080>"^(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"
"(class|struct)[[:space:]]*(\\&lt;\\w+\\&gt;([[:blank:]]*\\([^)]*\\))?"
"[[:space:]]*)*(\\&lt;\\w*\\&gt;)[[:space:]]*(&lt;[^;:{]+&gt;[[:space:]]*)?"
"(\\{|:[^;\\{()]*\\{)"
</font> ){}
};
<b>bool</b> class_index::grep_callback(boost::smatch what)
{
<font color="#000080"> <i>// what[0] contains the whole string
</i> <i>// what[5] contains the class name.
</i> <i>// what[6] contains the template specialisation if any.
</i> <i>// add class name and position to map:
</i></font> index[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =
what[5].first - base;
<b>return</b> <b>true</b>;
}
<b>void</b> class_index::IndexClasses(<b>const</b> std::string&amp; file)
{
std::string::const_iterator start, end;
start = file.begin();
end = file.end();
base = start;
regex_grep(std::bind1st(std::mem_fun(&amp;class_index::grep_callback), <b>this</b>),
start,
end,
expression);
}
</pre>
<p><a href="../example/snippets/regex_grep_example_4.cpp"> Finally</a>, C++
Builder users can use C++ Builder's closure type as a callback argument:</p>
<pre>
<font color="#008000">#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
#include &lt;functional&gt;
</font><font color="#000080"><i>// purpose:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</i></font><b>typedef</b> std::map&lt;std::string, <b>int</b>, std::less&lt;std::string&gt; &gt; map_type;
<b>class</b> class_index
{
boost::regex expression;
map_type index;
std::string::const_iterator base;
<b>typedef</b> boost::smatch arg_type;
<b>bool</b> grep_callback(<b>const</b> arg_type&amp; what);
<b>public</b>:
<b>typedef</b> <b>bool</b> (<b>__closure</b>* grep_callback_type)(<b>const</b> arg_type&amp;);
<b>void</b> IndexClasses(<b>const</b> std::string&amp; file);
class_index()
: index(),
expression(<font color=
#000080>"^(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"
"(class|struct)[[:space:]]*(\\&lt;\\w+\\&gt;([[:blank:]]*\\([^)]*\\))?"
"[[:space:]]*)*(\\&lt;\\w*\\&gt;)[[:space:]]*(&lt;[^;:{]+&gt;[[:space:]]*)?"
"(\\{|:[^;\\{()]*\\{)"
</font> ){}
};
<b>bool</b> class_index::grep_callback(<b>const</b> arg_type&amp; what)
{
<font color=
#000080> <i>// what[0] contains the whole string</i>
<i>// what[5] contains the class name.</i>
<i>// what[6] contains the template specialisation if any.</i>
<i>// add class name and position to map:</i></font>
index[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =
what[5].first - base;
<b>return</b> <b>true</b>;
}
<b>void</b> class_index::IndexClasses(<b>const</b> std::string&amp; file)
{
std::string::const_iterator start, end;
start = file.begin();
end = file.end();
base = start;
class_index::grep_callback_type cl = &amp;(<b>this</b>-&gt;grep_callback);
regex_grep(cl,
start,
end,
expression);
}
</pre>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,432 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: regex_iterator</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../../../boost.css" type="text/css" rel="stylesheet">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">regex_iterator</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Contents</h3>
<dl class="index">
<dt><a href="#synopsis">Synopsis</a> <dt><a href="#description">Description</a> <dt><a href="#examples">
Examples</a></dt>
</dl>
<h3><a name="synopsis"></a>Synopsis</h3>
<p>The iterator type regex_iterator will enumerate all of the regular expression
matches found in some sequence: dereferencing a regex_iterator yields a
reference to a&nbsp;<a href="match_results.html">match_results</a> object.</p>
<pre>
template &lt;class BidirectionalIterator,
class charT = iterator_traits&lt;BidirectionalIterator&gt;::value_type,
class traits = regex_traits&lt;charT&gt;,
class Allocator = allocator&lt;charT&gt; &gt;
class regex_iterator
{
public:
typedef <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt; regex_type;
typedef <A href="match_results.html">match_results</A>&lt;BidirectionalIterator&gt; value_type;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::difference_type difference_type;
typedef const value_type* pointer;
typedef const value_type&amp; reference;
typedef std::forward_iterator_tag iterator_category;
<A href="#c1">regex_iterator</A>();
<A href="#c2">regex_iterator</A>(BidirectionalIterator a, BidirectionalIterator b,
const regex_type&amp; re,
<A href="match_flag_type.html">match_flag_type</A> m = match_default);
<A href="#c3">regex_iterator</A>(const regex_iterator&amp;);
regex_iterator&amp; <A href="#o1">operator</A>=(const regex_iterator&amp;);
bool <A href="#o2">operator</A>==(const regex_iterator&amp;)const;
bool <A href="#o3">operator</A>!=(const regex_iterator&amp;)const;
const value_type&amp; <A href="#o4">operator</A>*()const;
const value_type* <A href="#o5">operator</A>-&gt;()const;
regex_iterator&amp; <A href="#o6">operator</A>++();
regex_iterator <A href="#o7">operator</A>++(int);
};
typedef regex_iterator&lt;const char*&gt; cregex_iterator;
typedef regex_iterator&lt;std::string::const_iterator&gt; sregex_iterator;
#ifndef BOOST_NO_WREGEX
typedef regex_iterator&lt;const wchar_t*&gt; wcregex_iterator;
typedef regex_iterator&lt;std::wstring::const_iterator&gt; wsregex_iterator;
#endif
</pre>
<h3><a name="description"></a>Description</h3>
<p>A regex_iterator is constructed from a pair of iterators, and enumerates all
occurrences of a regular expression within that iterator range.</p>
<pre><A name=c1></A>
regex_iterator();
</pre>
<b></b>
<p><b>Effects:</b> constructs an end of sequence regex_iterator.</p>
<pre><A name=c2></A>regex_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type&amp; re,
<A href="match_flag_type.html">match_flag_type</A> m = match_default);
</pre>
<b></b>
<p><b>Effects:</b> constructs a regex_iterator that will enumerate all occurrences
of the expression <em>re</em>, within the sequence <em>[a,b)</em>, and found
using match flags <em>m</em>.&nbsp; The object <em>re</em> must exist for the
lifetime of the regex_iterator.</p>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<pre><A name=c3></A>
regex_iterator(const regex_iterator&amp; that);
</pre>
<b></b>
<p><b>Effects:</b> constructs a copy of <code>that</code>.</p>
<b></b>
<p><b>Postconditions:</b> <code>*this == that</code>.</p>
<pre><A name=o1></A>
regex_iterator&amp; operator=(const regex_iterator&amp;);
</pre>
<b></b>
<p><b>Effects:</b> sets&nbsp;<code>*this</code> equal to those in <code>that</code>.</p>
<b></b>
<p><b>Postconditions:</b> <code>*this == that</code>.</p>
<pre><A name=o2></A>
bool operator==(const regex_iterator&amp; that)const;
</pre>
<b></b>
<p><b>Effects:</b> returns true if *this is equal to that.</p>
<pre><A name=o3></A>
bool operator!=(const regex_iterator&amp;)const;
</pre>
<b></b>
<p><b>Effects:</b> returns <code>!(*this == that)</code>.</p>
<pre><A name=o4></A>
const value_type&amp; operator*()const;
</pre>
<p><b>Effects:</b> dereferencing a regex_iterator object <em>it</em> yields a
const reference to a <a href="match_results.html">match_results</a> object,
whose members are set as follows:</p>
<p></p>
<table id="Table2" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%"><b></b>
<p><b>Element</b></p>
</td>
<td valign="top" width="50%"><b></b>
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).size()</p>
</td>
<td valign="top" width="50%">
<p>re.mark_count()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).prefix().first</p>
</td>
<td valign="top" width="50%">
<p>The end of the last match found, or the start of the underlying sequence if
this is the first match enumerated</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).prefix().last</p>
</td>
<td valign="top" width="50%">
<p>The same as the start of the match found:<BR>
(*it)[0].first</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).prefix().matched</p>
</td>
<td valign="top" width="50%">
<p>True if the prefix did not match an empty string:<BR>
(*it).prefix().first != (*it).prefix().second</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).suffix().first</p>
</td>
<td valign="top" width="50%">
<p>The same as the end of the match found:<BR>
(*it)[0].second</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).suffix().last</p>
</td>
<td valign="top" width="50%">
<p>The end of the underlying sequence.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).suffix().matched</p>
</td>
<td valign="top" width="50%">
<p>True if the suffix did not match an empty string:<BR>
(*it).suffix().first != (*it).suffix().second</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[0].first</p>
</td>
<td valign="top" width="50%">
<p>The start of the sequence of characters that matched the regular expression</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[0].second</p>
</td>
<td valign="top" width="50%">
<p>The end of the sequence of characters that matched the regular expression</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[0].matched</p>
</td>
<td valign="top" width="50%">
<p><code>true</code> if a full match was found, and <code>false</code> if it was a
partial match (found as a result of the <code>match_partial</code> flag being
set).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[n].first</p>
</td>
<td valign="top" width="50%">
<p>For all integers n &lt; (*it).size(), the start of the sequence that matched
sub-expression <i>n</i>. Alternatively, if sub-expression n did not participate
in the match, then <i>last</i>.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[n].second</p>
</td>
<td valign="top" width="50%">
<p>For all integers n &lt; (*it).size(), the end of the sequence that matched
sub-expression <i>n</i>. Alternatively, if sub-expression n did not participate
in the match, then <i>last</i>.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[n].matched</p>
</td>
<td valign="top" width="50%">
<p>For all integers n &lt; (*it).size(), true if sub-expression <i>n</i> participated
in the match, false otherwise.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">(*it).position(n)</td>
<td valign="top" width="50%">For all integers n &lt; (*it).size(), then the
distance from the start of the underlying sequence to the start of
sub-expression match <em>n</em>.</td>
</tr>
</tbody>
</table>
<br>
<br>
<pre><A name=o5></A>
const value_type* operator-&gt;()const;
</pre>
<b></b>
<p><b>Effects:</b> returns <code>&amp;(*this)</code>.</p>
<pre><A name=o6></A>
regex_iterator&amp; operator++();
</pre>
<p><strong>Effects:</strong> moves the iterator to the next match in the
underlying sequence, or the end of sequence iterator if none if found.
&nbsp;When the last match found matched a zero length string, then the
regex_iterator will find the next match as follows: if there exists a non-zero
length match that starts at the same location as the last one, then returns it,
otherwise starts looking for the next (possibly zero length) match from one
position to the right of the last match.</p>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<b></b>
<p><b>Returns:</b> <code>*this</code>.</p>
<pre><A name=o7></A>
regex_iterator operator++(int);
</pre>
<b></b>
<p><b>Effects:</b> constructs a copy <code>result</code> of <code>*this</code>,
then calls <code>++(*this)</code>.</p>
<b></b>
<p><b>Returns:</b> <code>result</code>.</p>
<h3>Examples</h3>
<p>The following <a href="../example/snippets/regex_iterator_example.cpp">example</a>
takes a C++ source file and builds up an index of class names, and the location
of that class in the file.</p>
<pre>
<font color="#008040">#include &lt;string&gt;</font>
<font color="#008040">#include &lt;map&gt;</font>
<font color="#008040">#include &lt;fstream&gt;</font>
<font color="#008040">#include &lt;iostream&gt;</font>
<font color="#008040">#include &lt;boost/regex.hpp&gt;</font>
<b>using</b> <b>namespace</b> std;
<i><font color="#000080">// purpose:</font></i>
<i><font color=
#000080>// takes the contents of a file in the form of a string</font></i>
<i><font color=
#000080>// and searches for all the C++ class definitions, storing</font></i>
<i><font color=
#000080>// their locations in a map of strings/int's</font></i>
<b>typedef</b> std::map&lt;std::string, std::string::difference_type, std::less&lt;std::string&gt; &gt; map_type;
<b>const</b> <b>char</b>* re =
<i><font color=
#000080>// possibly leading whitespace: </font></i>
<font color="#0000ff">"^[[:space:]]*"</font>
<i><font color=
#000080>// possible template declaration:</font></i>
<font color=
#0000ff>"(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"</font>
<i><font color="#000080">// class or struct:</font></i>
<font color="#0000ff">"(class|struct)[[:space:]]*"</font>
<i><font color=
#000080>// leading declspec macros etc:</font></i>
<font color="#0000ff">"("</font>
<font color="#0000ff">"\\&lt;\\w+\\&gt;"</font>
<font color="#0000ff">"("</font>
<font color="#0000ff">"[[:blank:]]*\\([^)]*\\)"</font>
<font color="#0000ff">")?"</font>
<font color="#0000ff">"[[:space:]]*"</font>
<font color="#0000ff">")*"</font>
<i><font color="#000080">// the class name</font></i>
<font color="#0000ff">"(\\&lt;\\w*\\&gt;)[[:space:]]*"</font>
<i><font color=
#000080>// template specialisation parameters</font></i>
<font color="#0000ff">"(&lt;[^;:{]+&gt;)?[[:space:]]*"</font>
<i><font color="#000080">// terminate in { or :</font></i>
<font color="#0000ff">"(\\{|:[^;\\{()]*\\{)"</font>;
boost::regex expression(re);
map_type class_index;
<b>bool</b> regex_callback(<b>const</b> boost::match_results&lt;std::string::const_iterator&gt;&amp; what)
{
<i><font color=
#000080>// what[0] contains the whole string</font></i>
<i><font color=
#000080>// what[5] contains the class name.</font></i>
<i><font color=
#000080>// what[6] contains the template specialisation if any.</font></i>
<i><font color=
#000080>// add class name and position to map:</font></i>
class_index[what[<font color=
#0000a0>5</font>].str() + what[<font color=
#0000a0>6</font>].str()] = what.position(<font color=
#0000a0>5</font>);
<b>return</b> <b>true</b>;
}
<b>void</b> load_file(std::string&amp; s, std::istream&amp; is)
{
s.erase();
s.reserve(is.rdbuf()-&gt;in_avail());
<b>char</b> c;
<b>while</b>(is.get(c))
{
<b>if</b>(s.capacity() == s.size())
s.reserve(s.capacity() * <font color="#0000a0">3</font>);
s.append(<font color="#0000a0">1</font>, c);
}
}
<b>int</b> main(<b>int</b> argc, <b>const</b> <b>char</b>** argv)
{
std::string text;
<b>for</b>(<b>int</b> i = <font color=
#0000a0>1</font>; i &lt; argc; ++i)
{
cout &lt;&lt; <font color=
#0000ff>"Processing file "</font> &lt;&lt; argv[i] &lt;&lt; endl;
std::ifstream fs(argv[i]);
load_file(text, fs);
<i><font color=
#000080>// construct our iterators:</font></i>
boost::sregex_iterator m1(text.begin(), text.end(), expression);
boost::sregex_iterator m2;
std::for_each(m1, m2, &amp;regex_callback);
<i><font color="#000080">// copy results:</font></i>
cout &lt;&lt; class_index.size() &lt;&lt; <font color=
#0000ff>" matches found"</font> &lt;&lt; endl;
map_type::iterator c, d;
c = class_index.begin();
d = class_index.end();
<b>while</b>(c != d)
{
cout &lt;&lt; <font color=
#0000ff>"class \""</font> &lt;&lt; (*c).first &lt;&lt; <font
color=
#0000ff>"\" found at index: "</font> &lt;&lt; (*c).second &lt;&lt; endl;
++c;
}
class_index.erase(class_index.begin(), class_index.end());
}
<b>return</b> <font color="#0000a0">0</font>;
}
</pre>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,321 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_match</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_match</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<H3>Contents</H3>
<dl class="index">
<dt><a href="#synopsis">Synopsis</a> <dt><a href="#description">Description</a> <dt><a href="#examples">
Examples</a></dt>
</dl>
<H3><A name="synopsis"></A>Synopsis</H3>
<PRE><A name=query_match></A>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt; </PRE>
<P>
The algorithm regex _match determines whether a given regular expression
matches all of a given character sequence denoted by a pair of
bidirectional-iterators, the algorithm is defined as follows, the main use of
this function is data input validation.
<P><STRONG>Note that the result is true only if the expression matches the whole of
the input sequence.&nbsp;</STRONG> If you want to search for an expression
somewhere within the sequence then use <A href="regex_search.html">regex_search</A>.&nbsp;
If you want to match a prefix of the character string then use <A href="regex_search.html">
regex_search</A> with the flag <A href="match_flag_type.html">match_continuous</A>
set.
<PRE>template &lt;class BidirectionalIterator, class Allocator, class charT,
class traits, class Allocator2&gt;
bool <A href="#f1">regex_match</A>(BidirectionalIterator first, BidirectionalIterator last,
<A href="match_results.html">match_results</A>&lt;BidirectionalIterator, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class BidirectionalIterator, class charT, class traits, class Allocator2&gt;
bool <A href="#f2">regex_match</A>(BidirectionalIterator first, BidirectionalIterator last,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class charT, class Allocator, class traits, class Allocator2&gt;
bool <A href="#f3">regex_match</A>(const charT* str, <A href="match_results.html">match_results</A>&lt;const charT*, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class ST, class SA, class Allocator, class charT,
class traits, class Allocator2&gt;
bool <A href="#f4">regex_match</A>(const basic_string&lt;charT, ST, SA&gt;&amp; s,
<A href="match_results.html">match_results</A>&lt;typename basic_string&lt;charT, ST, SA&gt;::const_iterator, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class charT, class traits, class Allocator2&gt;
bool <A href="#f5">regex_match</A>(const charT* str,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class ST, class SA, class charT, class traits, class Allocator2&gt;
bool <A href="#f6">regex_match</A>(const basic_string&lt;charT, ST, SA&gt;&amp; s,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
</PRE>
<H3><A name="description"></A>Description</H3>
<PRE><A name=f1></A>template &lt;class BidirectionalIterator, class Allocator, class charT,
class traits, class Allocator2&gt;
bool regex_match(BidirectionalIterator first, BidirectionalIterator last,
<A href="match_results.html">match_results</A>&lt;BidirectionalIterator, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Requires:</B> Type BidirectionalIterator meets the requirements of a
Bidirectional Iterator (24.1.4).</P>
<P><B> Effects: </B>Determines whether there is an exact match between the regular
expression <I>e</I>, and all of the character sequence [first, last), parameter <I>
flags</I> is used to <A href="match_flag_type.html">control how the expression
is matched</A> against the character sequence. Returns true if such a match
exists, false otherwise.</P>
<P><STRONG>Throws:</STRONG> <code>std::runtime_error</code> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<P><B> Postconditions: </B>If the function returns false, then the effect on
parameter <I>m</I> is undefined, otherwise the effects on parameter <I>m</I> are
given in the table:</P>
<P align="center">
<CENTER>
<TABLE id="Table2" cellSpacing="1" cellPadding="7" width="624" border="1">
<TBODY>
<TR>
<TD vAlign="top" width="50%">
<P><B> Element</B>
</P>
</TD>
<TD vAlign="top" width="50%">
<P><B> Value</B>
</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.size()</P>
</TD>
<TD vAlign="top" width="50%">
<P>e.mark_count()</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.empty()</P>
</TD>
<TD vAlign="top" width="50%">
<P>false</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().first</P>
</TD>
<TD vAlign="top" width="50%">
<P>first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().last</P>
</TD>
<TD vAlign="top" width="50%">
<P>first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>false</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().first</P>
</TD>
<TD vAlign="top" width="50%">
<P>last</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().last</P>
</TD>
<TD vAlign="top" width="50%">
<P>last</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>false</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].first</P>
</TD>
<TD vAlign="top" width="50%">
<P>first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].second</P>
</TD>
<TD vAlign="top" width="50%">
<P>last</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].matched</P>
</TD>
<TD vAlign="top" width="50%">
<P><CODE> true</CODE> if a full match was found, and <CODE>false</CODE> if it was
a partial match (found as a result of the <CODE>match_partial</CODE> flag being
set).</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].first</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), the start of the sequence that matched
sub-expression <I>n</I>. Alternatively, if sub-expression n did not participate
in the match, then <I>last</I>.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].second</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), the end of the sequence that matched
sub-expression <I>n</I>. Alternatively, if sub-expression n did not participate
in the match, then <I>last</I>.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), true if sub-expression <I>n</I> participated
in the match, false otherwise.</P>
</TD>
</TR>
</TBODY></TD></TR></TABLE>
</CENTER>
<P></P>
<DIV></DIV>
<PRE>&nbsp;</PRE>
<PRE><A name=f2></A>template &lt;class BidirectionalIterator, class charT, class traits, class Allocator2&gt;
bool regex_match(BidirectionalIterator first, BidirectionalIterator last,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Behaves "as if" by constructing an instance of <CODE><A href="match_results.html">
match_results</A>&lt;</CODE>BidirectionalIterator<CODE>&gt; what</CODE>,
and then returning the result of <CODE>regex_match(first, last, what, e, flags)</CODE>.</P>
<PRE><A name=f3></A>template &lt;class charT, class Allocator, class traits, class Allocator2&gt;
bool regex_match(const charT* str, <A href="match_results.html">match_results</A>&lt;const charT*, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_match(str, str +
char_traits&lt;charT&gt;::length(str), m, e, flags)</CODE>.</P>
<PRE><A name=f4></A>template &lt;class ST, class SA, class Allocator, class charT,
class traits, class Allocator2&gt;
bool regex_match(const basic_string&lt;charT, ST, SA&gt;&amp; s,
<A href="match_results.html">match_results</A>&lt;typename basic_string&lt;charT, ST, SA&gt;::const_iterator, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_match(s.begin(), s.end(), m, e,
flags)</CODE>.</P>
<PRE><A name=f5></A>template &lt;class charT, class traits, class Allocator2&gt;
bool regex_match(const charT* str,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_match(str, str +
char_traits&lt;charT&gt;::length(str), e, flags)</CODE>.</P>
<PRE><A name=f6></A>template &lt;class ST, class SA, class charT, class traits, class Allocator2&gt;
bool regex_match(const basic_string&lt;charT, ST, SA&gt;&amp; s,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_match(s.begin(), s.end(), e,
flags)</CODE>.
<H3><A name="examples"></A>Examples</H3>
<P>The following <A href="../example/snippets/regex_match_example.cpp">example</A>
processes an ftp response:
<P></P>
<PRE><FONT color=#008000>#include &lt;stdlib.h&gt;
#include &lt;boost/regex.hpp&gt;
#include &lt;string&gt;
#include &lt;iostream&gt;
</FONT><B>using namespace</B> boost;
regex expression(<FONT color=#000080>"([0-9]+)(\\-| |$)(.*)"</FONT>);
<FONT color=#000080><I>// process_ftp:
// on success returns the ftp response code, and fills
// msg with the ftp response message.
</I></FONT><B>int</B> process_ftp(<B>const</B> <B>char</B>* response, std::string* msg)
{
&nbsp;&nbsp; cmatch what;
&nbsp;&nbsp; <B>if</B>(regex_match(response, what, expression))
&nbsp;&nbsp; {
<FONT color=#000080>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[0] contains the whole string
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[1] contains the response code
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[2] contains the separator character
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[3] contains the text message.
</I></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>if</B>(msg)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg-&gt;assign(what[3].first, what[3].second);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>return</B> std::atoi(what[1].first);
&nbsp;&nbsp; }
<FONT color=#000080>&nbsp;&nbsp; <I>// failure did not match
</I></FONT>&nbsp;&nbsp; <B>if</B>(msg)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg-&gt;erase();
&nbsp;&nbsp; <B>return</B> -1;
}
<P>
<HR></PRE>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,45 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_merge (deprecated)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_merge (deprecated)</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Algorithm regex_merge has been renamed <A href="regex_replace.html">regex_replace</A>,
existing code will continue to compile, but new code should use <A href="regex_replace.html">
regex_replace</A> instead.</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,259 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_replace</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_replace</H2>
</TD>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Contents</H3>
<dl class="index">
<dt><A href="#synopsis">Synopsis</A> <dt><a href="#description">Description</a> <dt><A href="#examples">
Examples</A></dt></dl>
<H3><A name="synopsis"></A>Synopsis</H3>
<PRE>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt; </PRE>
<P>The algorithm regex_replace&nbsp;searches&nbsp;through&nbsp;a string finding
all the matches to the regular expression: for each match it then calls <A href="match_results.html#format">
match_results::format</A> to format the string and sends the result to the
output iterator. Sections of text that do not match are copied to the output
unchanged only if the <EM>flags</EM> parameter does not have the flag <A href="match_flag_type.html">
format_no_copy</A> set. If the flag <A href="match_flag_type.html">format_first_only</A>
is set then only the first occurrence is replaced rather than all
occurrences.&nbsp;<PRE>template &lt;class OutputIterator, class BidirectionalIterator, class traits,
class Allocator, class charT&gt;
OutputIterator <A href="#f1">regex_replace</A>(OutputIterator out,
BidirectionalIterator first,
BidirectionalIterator last,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt;&amp; e,
const basic_string&lt;charT&gt;&amp; fmt,
<A href="match_flag_type.html">match_flag_type flags = match_default</A>);
template &lt;class traits, class Allocator, class charT&gt;
basic_string&lt;charT&gt; <A href="#f2">regex_replace</A>(const basic_string&lt;charT&gt;&amp; s,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt;&amp; e,
const basic_string&lt;charT&gt;&amp; fmt,
<A href="match_flag_type.html">match_flag_type flags = match_default</A>);
</PRE>
<H3><A name="description"></A>Description</H3>
<PRE><A name=f1></A>template &lt;class OutputIterator, class BidirectionalIterator, class traits,
class Allocator, class charT&gt;
OutputIterator regex_replace(OutputIterator out,
BidirectionalIterator first,
BidirectionalIterator last,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt;&amp; e,
const basic_string&lt;charT&gt;&amp; fmt,
<A href="match_flag_type.html">match_flag_type flags = match_default</A>);</PRE>
<P>Enumerates all the occurences of expression <EM>e</EM> in the sequence [first,
last), replacing each occurence with the string that results by merging the
match found with the format string <EM>fmt</EM>, and copies the resulting
string to <EM>out</EM>.&nbsp;</P>
<P>If the flag format_no_copy is set in <EM>flags</EM> then unmatched sections of
text are not copied to output.&nbsp;
</P>
<P>If the flag format_first_only is set in <EM>flags</EM> then only the first
occurence of <EM>e</EM> is replaced.&nbsp;
</P>
<P>The manner in which the format string <EM>fmt</EM> is interpretted, along with
the rules used&nbsp;for finding matches,&nbsp;are determined by the <A href="match_flag_type.html">
flags</A> set in <EM>flags</EM></P>
<P><B>Effects:</B> Constructs an
<SPAN class="spelle">regex_iterator</SPAN>
object:
</P>
<PRE><SPAN style="FONT-SIZE: 10pt">regex_iterator&lt;</SPAN><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">BidirectionalIterator</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt">, </SPAN><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">charT</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt">, traits, Allocator&gt; <BR> </SPAN><SPAN class=grame><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">i(</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt">first, last, e, flags)</SPAN>, </PRE>
<P>and uses
<SPAN class="spelle">
<I>i</I></SPAN>
to enumerate through all of the matches <I>m</I> of type
<SPAN class="spelle">
<SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">match_results</SPAN>
</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&lt;<SPAN class="spelle">BidirectionalIterator</SPAN>&gt; </SPAN>that
occur within the sequence [first, last).
</P>
<P>If no such matches are found
<SPAN class="grame">and </SPAN></P>
<PRE><SPAN class=grame></SPAN><SPAN class=grame><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">!</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(flags &amp; <SPAN class=spelle>format_no_copy</SPAN>)</SPAN> </PRE>
<P>then calls
</P>
<PRE><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">std::copy</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(first, last, out)</SPAN>. </PRE>
<P>Otherwise, for each match found,
<SPAN class="grame">if </SPAN></P>
<PRE><SPAN class=grame></SPAN><SPAN class=grame><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">!</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(flags &amp; <SPAN class=spelle>format_no_copy</SPAN>)</SPAN> </PRE>
<P>calls
</P>
<PRE><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">std::copy</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(<SPAN class=spelle>m.prefix</SPAN>().first, <SPAN class=spelle>m.prefix</SPAN>().last, out)</SPAN>, </PRE>
<P>and then calls
</P>
<PRE><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">m.format</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(out, <SPAN class=spelle>fmt</SPAN>, flags)</SPAN>. </PRE>
<P>Finally
<SPAN class="grame">if </SPAN></P>
<PRE><SPAN class=grame></SPAN><SPAN class=grame><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">!</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(flags &amp; <SPAN class=spelle>format_no_copy</SPAN>)</SPAN> </PRE>
<P>calls
</P>
<PRE><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">std::copy</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(<SPAN class=spelle>last_m.suffix</SPAN>().first, <SPAN class=spelle>last_m,suffix</SPAN>().last, out) </SPAN></PRE>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></SPAN>where
<SPAN class="spelle">
<SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">last_m</SPAN>
</SPAN>
is a copy of the last match found.
</P>
<P>If
<SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">flags &amp;
<SPAN class="spelle">format_first_only</SPAN></SPAN>
is non-zero then only the first match found is replaced.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<P><B> Returns:</B> <CODE>out</CODE>.
</P>
<PRE><A name=f2></A>template &lt;class traits, class Allocator, class charT&gt;
basic_string&lt;charT&gt; regex_replace(const basic_string&lt;charT&gt;&amp; s,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt;&amp; e,
const basic_string&lt;charT&gt;&amp; fmt,
<A href="match_flag_type.html">match_flag_type flags = match_default</A>);</PRE>
<P><B> Effects:</B> Constructs an object <CODE>basic_string&lt;charT&gt; result</CODE>,
calls <CODE>regex_replace(back_inserter(result), s.begin(), s.end(), e, fmt,
flags)</CODE>, and then returns <CODE>result</CODE>.
<H3><A name="examples"></A>Examples</H3>
<P>The following <A href="../example/snippets/regex_replace_example.cpp">example</A>
takes C/C++ source code as input, and outputs syntax highlighted HTML code.</P>
<P></P>
<PRE><FONT color=#008080>#include &lt;fstream&gt;
#include &lt;sstream&gt;
#include &lt;string&gt;
#include &lt;iterator&gt;
#include &lt;boost/regex.hpp&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
</FONT>
<FONT color=#000080><I>// purpose:
// takes the contents of a file and transform to
// syntax highlighted code in html format
</I></FONT>
boost::regex e1, e2;
<B>extern</B> <B>const</B> <B>char</B>* expression_text;
<B>extern</B> <B>const</B> <B>char</B>* format_string;
<B>extern</B> <B>const</B> <B>char</B>* pre_expression;
<B>extern</B> <B>const</B> <B>char</B>* pre_format;
<B>extern</B> <B>const</B> <B>char</B>* header_text;
<B>extern</B> <B>const</B> <B>char</B>* footer_text;
<B>void</B> load_file(std::string&amp; s, std::istream&amp; is)
{
s.erase();
s.reserve(is.rdbuf()-&gt;in_avail());
<B>char</B> c;
<B>while</B>(is.get(c))
{
<B>if</B>(s.capacity() == s.size())
s.reserve(s.capacity() * <FONT color=#000080>3</FONT>);
s.append(<FONT color=#000080>1</FONT>, c);
}
}
<B>int</B> main(<B>int</B> argc, <B>const</B> <B>char</B>** argv)
{
try{
e1.assign(expression_text);
e2.assign(pre_expression);
<B>for</B>(<B>int</B> i = <FONT color=#000080>1</FONT>; i &lt; argc; ++i)
{
std::cout &lt;&lt; <FONT color=#0000ff>"Processing file "</FONT> &lt;&lt; argv[i] &lt;&lt; std::endl;
std::ifstream fs(argv[i]);
std::string in;
load_file(in, fs);
std::string out_name(std::string(argv[i]) + std::string(<FONT color=#0000ff>".htm"</FONT>));
std::ofstream os(out_name.c_str());
os &lt;&lt; header_text;
<FONT color=#000080><I>// strip '&lt;' and '&gt;' first by outputting to a
</I></FONT> <FONT color=#000080><I>// temporary string stream
</I></FONT> std::ostringstream t(std::ios::out | std::ios::binary);
std::ostream_iterator&lt;<B>char</B>, <B>char</B>&gt; oi(t);
boost::regex_replace(oi, in.begin(), in.end(),
e2, pre_format, boost::match_default | boost::format_all);
<FONT color=#000080><I>// then output to final output stream
</I></FONT> <FONT color=#000080><I>// adding syntax highlighting:
</I></FONT> std::string s(t.str());
std::ostream_iterator&lt;<B>char</B>, <B>char</B>&gt; out(os);
boost::regex_replace(out, s.begin(), s.end(),
e1, format_string, boost::match_default | boost::format_all);
os &lt;&lt; footer_text;
}
}
<STRONG>catch</STRONG>(...)
{ <STRONG>return</STRONG> -1; }
<B>return</B> <FONT color=#000080>0</FONT>;
}
<B>extern</B> <B>const</B> <B>char</B>* pre_expression = <FONT color=#0000ff>"(&lt;)|(&gt;)|\\r"</FONT>;
<B>extern</B> <B>const</B> <B>char</B>* pre_format = <FONT color=#0000ff>"(?1&lt;)(?2&gt;)"</FONT>;
<B>const</B> <B>char</B>* expression_text = <FONT color=#000080><I>// preprocessor directives: index 1
</I></FONT> <FONT color=#0000ff>"(^[[:blank:]]*#(?:[^\\\\\\n]|\\\\[^\\n[:punct:][:word:]]*[\\n[:punct:][:word:]])*)|"
</FONT> <FONT color=#000080><I>// comment: index 2
</I></FONT> <FONT color=#0000ff>"(//[^\\n]*|/\\*.*?\\*/)|"
</FONT> <FONT color=#000080><I>// literals: index 3
</I></FONT> <FONT color=#0000ff>"\\&lt;([+-]?(?:(?:0x[[:xdigit:]]+)|(?:(?:[[:digit:]]*\\.)?[[:digit:]]+(?:[eE][+-]?[[:digit:]]+)?))u?(?:(?:int(?:8|16|32|64))|L)?)\\&gt;|"
</FONT> <FONT color=#000080><I>// string literals: index 4
</I></FONT> <FONT color=#0000ff>"('(?:[^\\\\']|\\\\.)*'|\"(?:[^\\\\\"]|\\\\.)*\")|"
</FONT> <FONT color=#000080><I>// keywords: index 5
</I></FONT> <FONT color=#0000ff>"\\&lt;(__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import"
</FONT> <FONT color=#0000ff>"|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall"
</FONT> <FONT color=#0000ff>"|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|bool"
</FONT> <FONT color=#0000ff>"|break|case|catch|cdecl|char|class|const|const_cast|continue|default|delete"
</FONT> <FONT color=#0000ff>"|do|double|dynamic_cast|else|enum|explicit|extern|false|float|for|friend|goto"
</FONT> <FONT color=#0000ff>"|if|inline|int|long|mutable|namespace|new|operator|pascal|private|protected"
</FONT> <FONT color=#0000ff>"|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_cast"
</FONT> <FONT color=#0000ff>"|struct|switch|template|this|throw|true|try|typedef|typeid|typename|union|unsigned"
</FONT> <FONT color=#0000ff>"|using|virtual|void|volatile|wchar_t|while)\\&gt;"
</FONT> ;
<B>const</B> <B>char</B>* format_string = <FONT color=#0000ff>"(?1&lt;font color=\"#008040\"&gt;$&amp;&lt;/font&gt;)"
</FONT> <FONT color=#0000ff>"(?2&lt;I&gt;&lt;font color=\"#000080\"&gt;$&amp;&lt;/font&gt;&lt;/I&gt;)"
</FONT> <FONT color=#0000ff>"(?3&lt;font color=\"#0000A0\"&gt;$&amp;&lt;/font&gt;)"
</FONT> <FONT color=#0000ff>"(?4&lt;font color=\"#0000FF\"&gt;$&amp;&lt;/font&gt;)"
</FONT> <FONT color=#0000ff>"(?5&lt;B&gt;$&amp;&lt;/B&gt;)"</FONT>;
<B>const</B> <B>char</B>* header_text = <FONT color=#0000ff>"&lt;HTML&gt;\n&lt;HEAD&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;TITLE&gt;Auto-generated html formated source&lt;/TITLE&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=windows-1252\"&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;/HEAD&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;BODY LINK=\"#0000ff\" VLINK=\"#800080\" BGCOLOR=\"#ffffff\"&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;P&gt; &lt;/P&gt;\n&lt;PRE&gt;"</FONT>;
<B>const</B> <B>char</B>* footer_text = <FONT color=#0000ff>"&lt;/PRE&gt;\n&lt;/BODY&gt;\n\n"</FONT>;
</PRE>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,326 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_search</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_search</H2>
</TD>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Contents</H3>
<dl class="index">
<dt><A href="#synopsis">Synopsis</A> <dt><a href="#description">Description</a> <dt><A href="#examples">
Examples</A></dt></dl>
<H3><A name="synopsis"></A>Synopsis</H3>
<PRE>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt; </PRE>
<P></P>
<P>The algorithm regex_search will search a range denoted by a pair of
bidirectional-iterators for a given regular expression. The algorithm uses
various heuristics to reduce the search time by only checking for a match if a
match could conceivably start at that position. The algorithm is defined as
follows:
<PRE>template &lt;class BidirectionalIterator,
class Allocator, class charT,
class traits, class Allocator2&gt;
bool <A href="#f1">regex_search</A>(BidirectionalIterator first, BidirectionalIterator last,
<a href="match_results.html">match_results</a>&lt;BidirectionalIterator, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template &lt;class ST, class SA,
class Allocator, class charT,
class traits, class Allocator2&gt;
bool <A href="#f2">regex_search</A>(const basic_string&lt;charT, ST, SA&gt;&amp; s,
<a href="match_results.html">match_results</a>&lt;
typename basic_string&lt;charT, ST,SA&gt;::const_iterator,
Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template&lt;class charT, class Allocator, class traits,
class Allocator2&gt;
bool <A href="#f3">regex_search</A>(const charT* str,
<a href="match_results.html">match_results</a>&lt;const charT*, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template &lt;class BidirectionalIterator, class Allocator,
class charT, class traits&gt;
bool <A href="#f4">regex_search</A>(BidirectionalIterator first, BidirectionalIterator last,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template &lt;class charT, class Allocator,
class traits&gt;
bool <A href="#f5">regex_search</A>(const charT* str,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template&lt;class ST, class SA,
class Allocator, class charT,
class traits&gt;
bool <A href="#f6">regex_search</A>(const basic_string&lt;charT, ST, SA&gt;&amp; s,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
</PRE>
<H3><A name="description"></A>Description</H3>
<PRE><A name=f1></A>template &lt;class BidirectionalIterator, class Allocator, class charT,
class traits, class Allocator2&gt;
bool regex_search(BidirectionalIterator first, BidirectionalIterator last,
<a href="match_results.html">match_results</a>&lt;BidirectionalIterator, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Requires:</B> Type BidirectionalIterator meets the requirements of a
Bidirectional Iterator (24.1.4).</P>
<P><B> Effects: </B>Determines whether there is some sub-sequence within
[first,last) that matches the regular expression <I>e</I>, parameter <I>flags</I>
is used to control how the expression is matched against the character
sequence. Returns true if such a sequence exists, false otherwise.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<P><B> Postconditions: </B>If the function returns false, then the effect on
parameter <I>m</I> is undefined, otherwise the effects on parameter <I>m</I> are
given in the table:</P>
<DIV align="center">
<CENTER>
<TABLE id="Table2" cellSpacing="1" cellPadding="7" width="624" border="1">
<TR>
<TD vAlign="top" width="50%">
<P><B> Element</B></P>
</TD>
<TD vAlign="top" width="50%">
<P><B> Value</B>
</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.size()</P>
</TD>
<TD vAlign="top" width="50%">
<P>e.mark_count()</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.empty()</P>
</TD>
<TD vAlign="top" width="50%">
<P>false</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().first</P>
</TD>
<TD vAlign="top" width="50%">
<P>first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().last</P>
</TD>
<TD vAlign="top" width="50%">
<P>m[0].first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>m.prefix().first != m.prefix().second</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().first</P>
</TD>
<TD vAlign="top" width="50%">
<P>m[0].second</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().last</P>
</TD>
<TD vAlign="top" width="50%">
<P>last</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>m.suffix().first != m.suffix().second</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].first</P>
</TD>
<TD vAlign="top" width="50%">
<P>The start of the sequence of characters that matched the regular expression</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].second</P>
</TD>
<TD vAlign="top" width="50%">
<P>The end of the sequence of characters that matched the regular expression</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].matched</P>
</TD>
<TD vAlign="top" width="50%">
<P><CODE> true</CODE> if a full match was found, and <CODE>false</CODE> if it was
a partial match (found as a result of the <CODE>match_partial</CODE> flag being
set).</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].first</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), the start of the sequence that matched
sub-expression <I>n</I>. Alternatively, if sub-expression n did not participate
in the match, then <I>last</I>.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].second</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), the end of the sequence that matched
sub-expression <I>n</I>. Alternatively, if sub-expression n did not participate
in the match, then <I>last</I>.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), true if sub-expression <I>n</I> participated
in the match, false otherwise.</P>
</TD>
</TR>
</TD></TR></TABLE>
</CENTER>
</DIV>
<PRE><A name=f2></A>template &lt;class charT, class Allocator, class traits, class Allocator2&gt;
bool regex_search(const charT* str, <a href="match_results.html">match_results</a>&lt;const charT*, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_search(str, str +
char_traits&lt;charT&gt;::length(str), m, e, flags)</CODE>.</P>
<PRE><A name=f3></A>template &lt;class ST, class SA, class Allocator, class charT,
class traits, class Allocator2&gt;
bool regex_search(const basic_string&lt;charT, ST, SA&gt;&amp; s,
<a href="match_results.html">match_results</a>&lt;typename basic_string&lt;charT, ST, SA&gt;::const_iterator, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_search(s.begin(), s.end(), m,
e, flags)</CODE>.</P>
<PRE><A name=f4></A>template &lt;class iterator, class Allocator, class charT,
class traits&gt;
bool regex_search(iterator first, iterator last,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Behaves "as if" by constructing an instance of <CODE><a href="match_results.html">
match_results</a>&lt;</CODE>BidirectionalIterator<CODE>&gt; what</CODE>,
and then returning the result of <CODE>regex_search(first, last, what, e, flags)</CODE>.</P>
<PRE><A name=f5></A>template &lt;class charT, class Allocator, class traits&gt;
bool regex_search(const charT* str
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_search(str, str +
char_traits&lt;charT&gt;::length(str), e, flags)</CODE>.</P>
<PRE><A name=f6></A>template &lt;class ST, class SA, class Allocator, class charT,
class traits&gt;
bool regex_search(const basic_string&lt;charT, ST, SA&gt;&amp; s,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_search(s.begin(), s.end(), e,
flags)</CODE>.
<H3><A name="examples"></A>Examples</H3>
<P>The following <A href="../example/snippets/regex_search_example.cpp">example</A>,
takes the contents of a file in the form of a string, and searches for all the
C++ class declarations in the file. The code will work regardless of the way
that std::string is implemented, for example it could easily be modified to
work with the SGI rope class, which uses a non-contiguous storage strategy.</P>
<P></P>
<PRE><FONT color=#008000>#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
</FONT><FONT color=#000080><I>
// purpose:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</I></FONT><B>typedef</B> std::map&lt;std::string, <B>int</B>, std::less&lt;std::string&gt; &gt; map_type;
boost::regex expression("^(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?(class|struct)[[:space:]]*(\\&lt;\\w+\\&gt;([[:blank:]]*\\([^)]*\\))?[[:space:]]*)*(\\&lt;\\w*\\&gt;)[[:space:]]*(&lt;[^;:{]+&gt;[[:space:]]*)?(\\{|:[^;\\{()]*\\{)");
<B>
void</B> IndexClasses(map_type&amp; m, <B>const</B> std::string&amp; file)
{
&nbsp;&nbsp; std::string::const_iterator start, end;
&nbsp;&nbsp; start = file.begin();
&nbsp;&nbsp; end = file.end();&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp; boost::<a href="match_results.html">match_results</a>&lt;std::string::const_iterator&gt; what;
&nbsp;&nbsp; <B>unsigned</B> <B>int</B> flags = boost::match_default;
&nbsp;&nbsp; <B>while</B>(regex_search(start, end, what, expression, flags))&nbsp;
&nbsp;&nbsp; {
<FONT color=#000080>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[0] contains the whole string
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[5] contains the class name.
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[6] contains the template specialisation if any.
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// add class name and position to map:
</I></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; what[5].first - file.begin();&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#000080><I>// update search position:
</I></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start = what[0].second;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#000080><I>// update flags:
</I></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flags |= boost::match_prev_avail;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flags |= boost::match_not_bob;&nbsp;
&nbsp;&nbsp; }
}
</PRE>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,146 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_split (deprecated)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_split (deprecated)</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>The algorithm regex_split has been deprecated in favor of the iterator <A href="regex_token_iterator.html">
regex_token_iterator</A> which has a more flexible and powerful interface,
as well as following the more usual standard library "pull" rather than "push"
semantics.</P>
<P>Code which uses regex_split will continue to compile, the following
documentation is taken from the previous boost.regex version:</P>
<H3><A name="regex_split"></A>Algorithm regex_split</H3>
<PRE>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt; </PRE>
<P>Algorithm regex_split performs a similar operation to the perl split operation,
and comes in three overloaded forms:
</P>
<PRE><B>template</B> &lt;<B>class</B> OutputIterator, <B>class</B> charT, <B>class</B> Traits1, <B>class</B> Alloc1, <B>class</B> Traits2, <B>class</B> Alloc2&gt;
std::size_t regex_split(OutputIterator out,&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::basic_string&lt;charT, Traits1, Alloc1&gt;&amp; s,&nbsp;
&nbsp;<B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const</B> basic_regex&lt;charT, Traits2, Alloc2&gt;&amp; e,
&nbsp;<B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned</B> flags,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::size_t max_split);
<B>template</B> &lt;<B>class</B> OutputIterator, <B>class</B> charT, <B>class</B> Traits1, <B>class</B> Alloc1, <B>class</B> Traits2, <B>class</B> Alloc2&gt;
std::size_t regex_split(OutputIterator out,&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::basic_string&lt;charT, Traits1, Alloc1&gt;&amp; s,&nbsp;
&nbsp;<B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const</B> basic_regex&lt;charT, Traits2, Alloc2&gt;&amp; e,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>unsigned</B> flags = match_default);
<B>template</B> &lt;<B>class</B> OutputIterator, <B>class</B> charT, <B>class</B> Traits1, <B>class</B> Alloc1&gt;
std::size_t regex_split(OutputIterator out,
std::basic_string&lt;charT, Traits1, Alloc1&gt;&amp; s);</PRE>
<P><STRONG>Effects: </STRONG>Each version of the algorithm takes an
output-iterator for output, and a string for input. If the expression contains
no marked sub-expressions, then the algorithm writes one string onto the
output-iterator for each section of input that does not match the expression.
If the expression does contain marked sub-expressions, then each time a match
is found, one string for each marked sub-expression will be written to the
output-iterator. No more than <I>max_split </I>strings will be written to the
output-iterator. Before returning, all the input processed will be deleted from
the string <I>s</I> (if <I>max_split </I>is not reached then all of <I>s</I> will
be deleted). Returns the number of strings written to the output-iterator. If
the parameter <I>max_split</I> is not specified then it defaults to UINT_MAX.
If no expression is specified, then it defaults to "\s+", and splitting occurs
on whitespace.
</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<P><A href="../example/snippets/regex_split_example_1.cpp">Example</A>: the
following function will split the input string into a series of tokens, and
remove each token from the string <I>s</I>:
</P>
<PRE><B>unsigned</B> tokenise(std::list&lt;std::string&gt;&amp; l, std::string&amp; s)
{
<B>&nbsp;&nbsp; return</B> boost::regex_split(std::back_inserter(l), s);
}</PRE>
<P><A href="../example/snippets/regex_split_example_2.cpp">Example</A>: the
following short program will extract all of the URL's from a html file, and
print them out to <I>cout</I>:
</P>
<PRE><FONT color=#008000>#include &lt;list&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;boost/regex.hpp&gt;
</FONT>
boost::regex e(<FONT color=#000080>"&lt;\\s*A\\s+[^&gt;]*href\\s*=\\s*\"([^\"]*)\""</FONT>,
boost::regbase::normal | boost::regbase::icase);
<B>void</B> load_file(std::string&amp; s, std::istream&amp; is)
{
s.erase();
<FONT color=#000080>//
// attempt to grow string buffer to match file size,
// this doesn't always work...
</FONT> s.reserve(is.rdbuf()-&amp;gtin_avail());
<B>char</B> c;
<B>while</B>(is.get(c))
{
<FONT color=#000080>// use logarithmic growth stategy, in case
// in_avail (above) returned zero:
</FONT> <B>if</B>(s.capacity() == s.size())
s.reserve(s.capacity() * 3);
s.append(1, c);
}
}
<B>int</B> main(<B>int</B> argc, <B>char</B>** argv)
{
std::string s;
std::list&lt;std::string&gt; l;
<B>for</B>(<B>int</B> i = 1; i &lt; argc; ++i)
{
std::cout &lt;&lt; <FONT color=#000080>"Findings URL's in "</FONT> &lt;&lt; argv[i] &lt;&lt; <FONT color=#000080>":"</FONT> &lt;&lt; std::endl;
s.erase();
std::ifstream is(argv[i]);
load_file(s, is);
boost::regex_split(std::back_inserter(l), s, e);
<B>while</B>(l.size())
{
s = *(l.begin());
l.pop_front();
std::cout &lt;&lt; s &lt;&lt; std::endl;
}
}
<B>return</B> 0;
}</PRE>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,290 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: regex_token_iterator</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">regex_token_iterator</H2>
</TD>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Contents</H3>
<dl class="index">
<dt><A href="#synopsis">Synopsis</A> <dt><a href="#description">Description</a> <dt><A href="#examples">
Examples</A></dt></dl>
<H3><A name="synopsis"></A>Synopsis</H3>
<P>The template class <CODE>regex_token_iterator</CODE> is an iterator adapter;
that is to say it represents a new view of an existing iterator sequence, by
enumerating all the occurrences of a regular expression within that sequence,
and presenting one or more character sequence for each match found. Each
position enumerated by the iterator is a <A href="sub_match.html">sub_match</A>
object that represents what matched a particular sub-expression within the
regular expression. When class <CODE>regex_token_iterator</CODE> is used to
enumerate a single sub-expression with index -1, then the iterator performs
field splitting: that is to say it enumerates one character sequence for each
section of the character container sequence that does not match the regular
expression specified.</P>
<PRE>
template &lt;class BidirectionalIterator,
class charT = iterator_traits&lt;BidirectionalIterator&gt;::value_type,
class traits = regex_traits&lt;charT&gt;,
class Allocator = allocator&lt;charT&gt; &gt;
class regex_token_iterator
{
public:
typedef <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt; regex_type;
typedef <A href="sub_match.html">sub_match</A>
&lt;BidirectionalIterator&gt; value_type;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::difference_type difference_type;
typedef const value_type* pointer;
typedef const value_type&amp; reference;
typedef std::forward_iterator_tag iterator_category;
<A href="#c1">regex_token_iterator</A>();
<A href="#c2">regex_token_iterator</A>(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
int submatch = 0, <A href="match_flag_type.html">match_flag_type</A> m = match_default);
<A href="#c3">regex_token_iterator</A>(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
const std::vector&lt;int&gt;&amp; submatches, match_flag_type m = match_default);
template &lt;std::size_t N&gt;
<A href="#c4">regex_token_iterator</A>(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
const int (&amp;submatches)[N], match_flag_type m = match_default);
<A href="#c5">regex_token_iterator</A>(const regex_token_iterator&amp;);
regex_token_iterator&amp; <A href="#o1">operator</A>=(const regex_token_iterator&amp;);
bool <A href="#o2">operator</A>==(const regex_token_iterator&amp;)const;
bool <A href="#o3">operator</A>!=(const regex_token_iterator&amp;)const;
const value_type&amp; <A href="#o4">operator</A>*()const;
const value_type* <A href="#o5">operator</A>-&gt;()const;
regex_token_iterator&amp; <A href="#o6">operator</A>++();
regex_token_iterator <A href="#o7">operator</A>++(int);
};
typedef regex_token_iterator&lt;const char*&gt; cregex_token_iterator;
typedef regex_token_iterator&lt;std::string::const_iterator&gt; sregex_token_iterator;
#ifndef BOOST_NO_WREGEX
typedef regex_token_iterator&lt;const wchar_t*&gt; wcregex_token_iterator;
typedef regex_token_iterator<&lt;std::wstring::const_iterator&gt; wsregex_token_iterator;
#endif
</PRE>
<H3><A name="description"></A>Description</H3>
<PRE><A name=c1></A>regex_token_iterator();</PRE>
<P><B> Effects:</B> constructs an end of sequence iterator.</P>
<PRE><A name=c2></A>regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
int submatch = 0, match_flag_type m = match_default);</PRE>
<P><B> Preconditions: </B><CODE>!re.empty()</CODE>.</P>
<P><B> Effects:</B> constructs a regex_token_iterator that will enumerate one
string for each regular expression match of the expression <EM>re</EM> found
within the sequence <EM>[a,b)</EM>, using match flags <EM>m</EM>.&nbsp; The
string enumerated is the&nbsp;sub-expression <EM>submatch </EM>for each match
found; if <EM>submatch </EM>is -1, then enumerates all the text sequences that
did not match the expression <EM>re </EM>(that is to performs field splitting).</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<PRE><A name=c3></A>regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
const std::vector&lt;int&gt;&amp; submatches, match_flag_type m = match_default);</PRE>
<P><B> Preconditions:</B> <CODE>submatches.size() &amp;&amp; !re.empty()</CODE>.</P>
<P><B> Effects:</B> constructs a regex_token_iterator that will enumerate <EM>submatches.size()</EM>
strings for each regular expression match of the expression <EM>re</EM> found
within the sequence <EM>[a,b)</EM>, using match flags <EM>m</EM>.&nbsp; For
each match found one string will be enumerated&nbsp;for each sub-expression
index&nbsp;contained within <EM>submatches </EM>vector; if <EM>submatches[0] </EM>
is -1, then the first string enumerated for each match will be all of the text
from end of the last match to the start of the current match, in addition there
will be one extra string enumerated when no more matches can be found: from the
end of the last match found, to the end of the underlying sequence.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<PRE><A name=c4></A>template &lt;std::size_t N&gt;
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
const int (&amp;submatches)[R], match_flag_type m = match_default);</PRE>
<P><B> Preconditions: </B><CODE>!re.empty()</CODE>.</P>
<P><STRONG>Effects:</STRONG></B> constructs a regex_token_iterator that will
enumerate&nbsp;<EM>R</EM> strings for each regular expression match of the
expression <EM>re</EM> found within the sequence <EM>[a,b)</EM>, using match
flags <EM>m</EM>.&nbsp; For each match found one string will be
enumerated&nbsp;for each sub-expression index&nbsp;contained within the <EM>submatches
</EM>array; if <EM>submatches[0] </EM>is -1, then the first string enumerated
for each match will be all of the text from end of the last match to the start
of the current match, in addition there will be one extra string enumerated
when no more matches can be found: from the end of the last match found, to the
end of the underlying sequence.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<PRE><A name=c5></A>regex_token_iterator(const regex_token_iterator&amp; that);</PRE>
<P><B> Effects: </B>constructs a copy of <CODE>that</CODE>.</P>
<P><B> Postconditions:</B> <CODE>*this == that</CODE>.</P>
<PRE><A name=o1></A>regex_token_iterator&amp; operator=(const regex_token_iterator&amp; that);</PRE>
<P><B> Effects: </B>sets <CODE>*this</CODE> to be equal to&nbsp;<CODE>that</CODE>.</P>
<P><B> Postconditions:</B> <CODE>*this == that</CODE>.</P>
<PRE><A name=o2></A>bool operator==(const regex_token_iterator&amp;)const;</PRE>
<P>
<B>Effects: </B>returns true if *this is the same position as that.</P>
<PRE><A name=o3></A>bool operator!=(const regex_token_iterator&amp;)const;</PRE>
<P>
<B>Effects: </B>returns <CODE>!(*this == that)</CODE>.</P>
<PRE><A name=o4></A>const value_type&amp; operator*()const;</PRE>
<P>
<B>Effects: </B>returns the current character sequence being enumerated.</P>
<PRE><A name=o5></A>const value_type* operator-&gt;()const;</PRE>
<P>
<B>Effects: </B>returns <CODE>&amp;(*this)</CODE>.</P>
<PRE><A name=o6></A>regex_token_iterator&amp; operator++();</PRE>
<P>
<B>Effects: </B>Moves on to the next character sequence to be enumerated.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<B>
<P>
Returns:</B><CODE> *this</CODE>.</P><PRE><A name=o7></A>regex_token_iterator&amp; operator++(int);</PRE>
<P><B> Effects:</B> constructs a copy <CODE>result</CODE> of <CODE>*this</CODE>,
then calls <CODE>++(*this)</CODE>.</P>
<P><B> Returns:</B> <CODE>result</CODE>.<A name="examples"></A>
<H3>Examples</H3>
<P>The following <A href="../example/snippets/regex_token_iterator_eg_1.cpp">example</A>
takes a string and splits it into a series of tokens:</P>
<pre>
<FONT color=#008040>#include &lt;iostream&gt;</FONT>
<FONT color=#008040>#include &lt;boost/regex.hpp&gt;</FONT>
<B>using</B> <B>namespace</B> std;
<B>int</B> main(<B>int</B> argc)
{
string s;
<B>do</B>{
<B>if</B>(argc == <FONT color=#0000a0>1</FONT>)
{
cout &lt;&lt; <FONT color=#0000ff>"Enter text to split (or \"quit\" to exit): "</FONT>;
getline(cin, s);
<B>if</B>(s == <FONT color=#0000ff>"quit"</FONT>) <B>break</B>;
}
<B>else</B>
s = <FONT color=#0000ff>"This is a string of tokens"</FONT>;
boost::regex re(<FONT color=#0000ff>"\\s+"</FONT>);
boost::sregex_token_iterator i(s.begin(), s.end(), re, -<FONT color=#0000a0>1</FONT>);
boost::sregex_token_iterator j;
<B>unsigned</B> count = <FONT color=#0000a0>0</FONT>;
<B>while</B>(i != j)
{
cout &lt;&lt; *i++ &lt;&lt; endl;
count++;
}
cout &lt;&lt; <FONT color=#0000ff>"There were "</FONT> &lt;&lt; count &lt;&lt; <FONT color=#0000ff>" tokens found."</FONT> &lt;&lt; endl;
}<B>while</B>(argc == <FONT color=#0000a0>1</FONT>);
<B>return</B> <FONT color=#0000a0>0</FONT>;
}
</pre>
<P>The following <A href="../example/snippets/regex_token_iterator_eg_2.cpp">example</A>
takes a html file and outputs a list of all the linked files:</P>
<pre>
<FONT color=#008040>#include &lt;fstream&gt;</FONT>
<FONT color=#008040>#include &lt;iostream&gt;</FONT>
<FONT color=#008040>#include &lt;iterator&gt;</FONT>
<FONT color=#008040>#include &lt;boost/regex.hpp&gt;</FONT>
boost::regex e(<FONT color=#0000ff>"&lt;\\s*A\\s+[^&gt;]*href\\s*=\\s*\"([^\"]*)\""</FONT>,
boost::regex::normal | boost::regbase::icase);
<B>void</B> load_file(std::string&amp; s, std::istream&amp; is)
{
s.erase();
<I><FONT color=#000080>//</FONT></I>
<I><FONT color=#000080>// attempt to grow string buffer to match file size,</FONT></I>
<I><FONT color=#000080>// this doesn't always work...</FONT></I>
s.reserve(is.rdbuf()-&gt;in_avail());
<B>char</B> c;
<B>while</B>(is.get(c))
{
<I><FONT color=#000080>// use logarithmic growth stategy, in case</FONT></I>
<I><FONT color=#000080>// in_avail (above) returned zero:</FONT></I>
<B>if</B>(s.capacity() == s.size())
s.reserve(s.capacity() * <FONT color=#0000a0>3</FONT>);
s.append(<FONT color=#0000a0>1</FONT>, c);
}
}
<B>int</B> main(<B>int</B> argc, <B>char</B>** argv)
{
std::string s;
<B>int</B> i;
<B>for</B>(i = <FONT color=#0000a0>1</FONT>; i &lt; argc; ++i)
{
std::cout &lt;&lt; <FONT color=#0000ff>"Findings URL's in "</FONT> &lt;&lt; argv[i] &lt;&lt; <FONT color=#0000ff>":"</FONT> &lt;&lt; std::endl;
s.erase();
std::ifstream is(argv[i]);
load_file(s, is);
boost::sregex_token_iterator i(s.begin(), s.end(), e, <FONT color=#0000a0>1</FONT>);
boost::sregex_token_iterator j;
<B>while</B>(i != j)
{
std::cout &lt;&lt; *i++ &lt;&lt; std::endl;
}
}
<I><FONT color=#000080>//</FONT></I>
<I><FONT color=#000080>// alternative method:</FONT></I>
<I><FONT color=#000080>// test the array-literal constructor, and split out the whole</FONT></I>
<I><FONT color=#000080>// match as well as $1....</FONT></I>
<I><FONT color=#000080>//</FONT></I>
<B>for</B>(i = <FONT color=#0000a0>1</FONT>; i &lt; argc; ++i)
{
std::cout &lt;&lt; <FONT color=#0000ff>"Findings URL's in "</FONT> &lt;&lt; argv[i] &lt;&lt; <FONT color=#0000ff>":"</FONT> &lt;&lt; std::endl;
s.erase();
std::ifstream is(argv[i]);
load_file(s, is);
<B>const</B> <B>int</B> subs[] = {<FONT color=#0000a0>1</FONT>, <FONT color=#0000a0>0</FONT>,};
boost::sregex_token_iterator i(s.begin(), s.end(), e, subs);
boost::sregex_token_iterator j;
<B>while</B>(i != j)
{
std::cout &lt;&lt; *i++ &lt;&lt; std::endl;
}
}
<B>return</B> <FONT color=#0000a0>0</FONT>;
}
</pre>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,46 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: class regex_traits</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">class regex_traits</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Under construction.</P>
<P>The current boost.regex traits class design will be migrated to that specified
in the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">regular
expression standardization proposal</A>.&nbsp;</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,77 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Standards Conformance</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Standards Conformance</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>C++</H3>
<P>Boost.regex is intended to conform to the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</A>, which will appear in a
future C++ standard technical report (and hopefully in a future version of the
standard).&nbsp; Currently there are some differences in how the regular
expression traits classes are defined, these will be fixed in a future release.</P>
<H3>ECMAScript / JavaScript</H3>
<P>All of the ECMAScript regular expression syntax features are supported, except
that:</P>
<P>Negated class escapes (\S, \D and \W) are not permitted inside character class
definitions ( [...] ).</P>
<P>The escape sequence \u matches any upper case character (the same as
[[:upper:]])&nbsp;rather than a Unicode escape sequence; use \x{DDDD} for
Unicode escape sequences.</P>
<H3>Perl</H3>
<P>Almost all Perl features are supported, except for:</P>
<P>\N{name}&nbsp; Use [[:name:]] instead.</P>
<P>\pP and \PP</P>
<P>(?imsx-imsx)</P>
<P>(?&lt;=pattern)</P>
<P>(?&lt;!pattern)</P>
<P>(?{code})</P>
<P>(??{code})</P>
<P>(?(condition)yes-pattern) and (?(condition)yes-pattern|no-pattern)</P>
<P>These embarrassments / limitations will be removed in due course, mainly
dependent upon user demand.</P>
<H3>POSIX</H3>
<P>All the POSIX basic and extended regular expression features are supported,
except that:</P>
<P>No character collating names are recognized except those specified in the POSIX
standard for the C locale, unless they are explicitly registered with the
traits class.</P>
<P>Character equivalence classes ( [[=a=]] etc) are probably buggy except on
Win32.&nbsp; Implementing this feature requires knowledge of the format of the
string sort keys produced by the system; if you need this, and the default
implementation doesn't work on your platform, then you will need to supply a
custom traits class.</P>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,562 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: sub_match</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">sub_match</H2>
</TD>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Synopsis</H3>
<P>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt;
</P>
<P>Regular expressions are different from many simple pattern-matching algorithms
in that as well as finding an overall match they can also produce
sub-expression matches: each sub-expression being delimited in the pattern by a
pair of parenthesis (...). There has to be some method for reporting
sub-expression matches back to the user: this is achieved this by defining a
class <I><A href="match_results.html">match_results</A></I> that acts as an
indexed collection of sub-expression matches, each sub-expression match being
contained in an object of type <I>sub_match</I>
.
<P>Objects of type <EM>sub_match</EM> may only obtained by subscripting an object
of type <EM><A href="match_results.html">match_results</A></EM>
.
<P>Objects of type <EM>sub_match</EM> may be compared to objects of type <EM>std::basic_string</EM>,
or <EM>const charT*</EM> or <EM>const charT</EM>
.
<P>Objects of type <EM>sub_match</EM> may be added to objects of type <EM>std::basic_string</EM>,
or <EM>const charT* </EM>or <EM>const charT</EM>, to produce a new <EM>std::basic_string
</EM>
object.
<P>When the marked sub-expression denoted by an object of type sub_match&lt;&gt;
participated in a regular expression match then member <CODE>matched</CODE> evaluates
to true, and members <CODE>first</CODE> and <CODE>second</CODE> denote the
range of characters <CODE>[first,second)</CODE> which formed that match.
Otherwise <CODE>matched</CODE> is false, and members <CODE>first</CODE> and <CODE>second</CODE>
contained undefined values.</P>
<P>When the marked sub-expression denoted by an object of type sub_match&lt;&gt;
was repeated, then the sub_match object represents the match obtained by the
last repeat.&nbsp; The complete set of all the captures obtained for all the
repeats, may be accessed via the captures() member function (Note: this has
serious performance implications, you have to explicitly enable this feature).</P>
<P>If an object of type <CODE>sub_match&lt;&gt;</CODE> represents sub-expression 0
- that is to say the whole match - then member <CODE>matched</CODE> is always
true, unless a partial match was obtained as a result of the flag <CODE>match_partial</CODE>
being passed to a regular expression algorithm, in which case member <CODE>matched</CODE>
is false, and members <CODE>first</CODE> and <CODE>second</CODE> represent the
character range that formed the partial match.</P>
<PRE>namespace boost{
template &lt;class BidirectionalIterator&gt;
class sub_match : public std::pair&lt;BidirectionalIterator, BidirectionalIterator&gt;
{
public:
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::value_type value_type;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::difference_type difference_type;
typedef BidirectionalIterator iterator;
bool <A href="#m1" >matched</A>;
difference_type <A href="#m2" >length</A>()const;
operator <A href="#m3" >basic_string</A>&lt;value_type&gt;()const;
basic_string&lt;value_type&gt; <A href="#m4" >str</A>()const;
int <A href="#m5" >compare</A>(const sub_match&amp; s)const;
int <A href="#m6" >compare</A>(const basic_string&lt;value_type&gt;&amp; s)const;
int <A href="#m7" >compare</A>(const value_type* s)const;
#ifdef BOOST_REGEX_MATCH_EXTRA
typedef implementation-private <A href="#m9">capture_sequence_type</A>;
const capture_sequence_type&amp; <A href="#m8" >captures</A>()const;
#endif
};
//
// comparisons to another sub_match:
//
template &lt;class BidirectionalIterator&gt;
bool <A href="#o11" >operator</A> == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o12" >operator</A> != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o13" >operator</A> &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o14" >operator</A> &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o15" >operator</A> &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o16" >operator</A> &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
//
// comparisons to a basic_string:
//
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o21" >operator</A> == (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o22" >operator</A> != (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o23" >operator</A> &lt; (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o24" >operator</A> &gt; (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o25" >operator</A> &gt;= (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o26" >operator</A> &lt;= (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o31" >operator</A> == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o32" >operator</A> != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o33" >operator</A> &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o34" >operator</A> &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o35" >operator</A> &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o36" >operator</A> &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
//
// comparisons to a pointer to a character array:
//
template &lt;class BidirectionalIterator&gt;
bool <A href="#o41" >operator</A> == (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o42" >operator</A> != (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o43" >operator</A> &lt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o44" >operator</A> &gt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o45" >operator</A> &gt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o46" >operator</A> &lt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o51" >operator</A> == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o52" >operator</A> != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o53" >operator</A> &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o54" >operator</A> &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o55" >operator</A> &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o56" >operator</A> &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
//
// comparisons to a single character:
//
template &lt;class BidirectionalIterator&gt;
bool <A href="#o61" >operator</A> == (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o62" >operator</A> != (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o63" >operator</A> &lt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o64" >operator</A> &gt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o65" >operator</A> &gt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o66" >operator</A> &lt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o71" >operator</A> == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o72" >operator</A> != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o73" >operator</A> &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o74" >operator</A> &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o75" >operator</A> &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o76" >operator</A> &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
//
// addition operators:
//
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;
<A href="#o81" >operator</A> + (const std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;
<A href="#o82" >operator</A> + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
const std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; s);
template &lt;class BidirectionalIterator&gt; std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o83" >operator</A> + (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m);
template &lt;class BidirectionalIterator&gt; std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o84" >operator</A> + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const * s);
template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o85" >operator</A> + (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m);
template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o86" >operator</A> + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; s);
template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o87" >operator</A> + (const sub_match&lt;BidirectionalIterator&gt;&amp; m1,
const sub_match&lt;BidirectionalIterator&gt;&amp; m2);
//
// stream inserter:
//
template &lt;class charT, class traits, class BidirectionalIterator&gt;
basic_ostream&lt;charT, traits&gt;&amp;
<A href="#oi" >operator</A> &lt;&lt; (basic_ostream&lt;charT, traits&gt;&amp; os,
const sub_match&lt;BidirectionalIterator&gt;&amp; m);
} // namespace boost</PRE>
<H3>Description</H3>
<H4>sub_match members</H4>
<PRE>typedef typename std::iterator_traits&lt;iterator&gt;::value_type value_type;</PRE>
<P>The type pointed to by the iterators.</P>
<PRE>typedef typename std::iterator_traits&lt;iterator&gt;::difference_type difference_type;</PRE>
<P>A type that represents the difference between two iterators.</P>
<PRE>typedef iterator iterator_type;</PRE>
<P>The iterator type.</P>
<PRE>iterator first</PRE>
<P>An iterator denoting the position of the start of the match.</P>
<PRE>iterator second</PRE>
<P>An iterator denoting the position of the end of the match.</P>
<PRE><A name=m1></A>bool matched</PRE>
<P>A Boolean value denoting whether this sub-expression participated in the match.</P>
<PRE><A name=m2></A>static difference_type length();</PRE>
<P><B>Effects: </B>returns the length of this matched sub-expression, or 0 if this
sub-expression was not matched: <CODE>matched ? distance(first, second) : 0)</CODE>.</P>
<PRE><A name=m3></A>operator basic_string&lt;value_type&gt;()const;</PRE>
<P><B>Effects: </B>converts *this into a string: returns <CODE>(matched ?
basic_string&lt;value_type&gt;(first, second) :
basic_string&lt;value_type&gt;()).</P>
</CODE><PRE><A name=m4></A>basic_string&lt;value_type&gt; str()const;</PRE>
<P><B>Effects: </B>returns a string representation of *this:&nbsp; <CODE>(matched ?
basic_string&lt;value_type&gt;(first, second) :
basic_string&lt;value_type&gt;())</CODE>.</P>
<PRE><A name=m5></A>int compare(const sub_match&amp; s)const;</PRE>
<P><B>Effects: </B>performs a lexical comparison to <EM>s</EM>: returns <CODE>str().compare(s.str())</CODE>.</P>
<PRE><A name=m6></A>int compare(const basic_string&lt;value_type&gt;&amp; s)const;</PRE>
<P><B>Effects: </B>compares *this to the string s: returns <CODE>str().compare(s)</CODE>.</P>
<PRE><A name=m7></A>int compare(const value_type* s)const;</PRE>
<P><B>Effects:<B></B> </B>compares *this to the null-terminated string <EM>s</EM>:<B>&nbsp;</B>returns
<CODE>str().compare(s)</CODE>.</P>
<PRE><A name=m9></A>typedef implementation-private capture_sequence_type;</PRE>
<P>Defines an implementation-specific type that&nbsp;satisfies the requirements of
a standard library Sequence (21.1.1 including the optional Table 68
operations),&nbsp;whose value_type is a <EM>sub_match&lt;BidirectionalIterator&gt;</EM>.&nbsp;This
type happens to be <EM>std::vector&lt;sub_match&lt;BidirectionalIterator&gt; &gt;</EM>,
but you shouldn't actually rely on that.</P>
<PRE><A name=m8></A>const capture_sequence_type&amp; <A href="#m8" >captures</A>()const; </PRE>
<P><STRONG>Effects:</STRONG> returns a sequence containing all the captures
obtained for this sub-expression.</P>
<P><STRONG>Preconditions:</STRONG> the library must be built and used with
BOOST_REGEX_MATCH_EXTRA defined, and you must pass the flag <A href="match_flag_type.html">
match_extra</A> to the regex matching functions (<A href="regex_match.html">regex_match</A>,
<A href="regex_search.html">regex_search</A>, <A href="regex_iterator.html">regex_iterator</A>
or <A href="regex_token_iterator.html">regex_token_iterator</A>) in order for
this member function to be defined and return useful information.</P>
<P><STRONG>Rationale:</STRONG> Enabling this feature has several consequences:
</P>
<UL>
<LI>
sub_match occupies more memory resulting in complex expressions running out of
memory or stack space more quickly during matching.
<LI>
The matching algorithms are less efficient at handling some features
(independent sub-expressions for example), even when match_extra is not used.
<LI>
The matching algorithms are much less efficient (i.e. slower), when match_extra
is used.&nbsp; Mostly this is down to the extra memory allocations that have to
take place.</LI></UL>
<H4>sub_match non-member operators</H4>
<H5>Comparisons against self</H5>
<PRE><A name=o11></A>template &lt;class BidirectionalIterator&gt;
bool operator == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) == 0</CODE>.</P>
<PRE><A name=o12></A>template &lt;class BidirectionalIterator&gt;
bool operator != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) != 0</CODE>.</P>
<PRE><A name=o13></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) &lt; 0</CODE>.</P>
<PRE><A name=o14></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) &lt;= 0</CODE>.</P>
<PRE><A name=o15></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) &gt;= 0</CODE>.</P>
<PRE><A name=o16></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) &gt; 0</CODE>.</P>
<H5>Comparisons with std::basic_string</H5>
<pre><A name=o21></A>
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator == (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits,
Allocator&gt;&amp; lhs, const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
</pre>
<P><B>Effects: </B>returns <CODE>lhs == rhs.str()</CODE>.</P>
<PRE><A name=o22></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator != (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs != rhs.str()</CODE>.</P>
<PRE><A name=o23></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &lt; (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs&nbsp;&lt; rhs.str()</CODE>.</P>
<PRE><A name=o24></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &gt; (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs&nbsp;&gt; rhs.str()</CODE>.</P>
<PRE><A name=o25></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &gt;= (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt;= rhs.str()</CODE>.</P>
<PRE><A name=o26></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &lt;= (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt;= rhs.str()</CODE>.</P>
<PRE><A name=o31></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() == rhs</CODE>.</P>
<PRE><A name=o32></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() != rhs</CODE>.</P>
<PRE><A name=o33></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str()&nbsp;&lt; rhs</CODE>.</P>
<PRE><A name=o34></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str()&nbsp;&gt; rhs</CODE>.</P>
<PRE><A name=o35></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt;= rhs</CODE>.</P>
<PRE><A name=o36></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt;= rhs</CODE>.</P>
<H5>Comparisons with null-terminated strings</H5>
<PRE><A name=o41></A>template &lt;class BidirectionalIterator&gt;
bool operator == (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs == rhs.str()</CODE>.</P>
<PRE><A name=o42></A>template &lt;class BidirectionalIterator&gt;
bool operator != (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs != rhs.str()</CODE>.</P>
<PRE></A><A name=o43></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt; rhs.str()</CODE>.</P>
<PRE><A name=o44></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt; rhs.str()</CODE>.</P>
<PRE><A name=o45></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt;= rhs.str()</CODE>.</P>
<PRE><A name=o46></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt;= rhs.str()</CODE>.</P>
<PRE><A name=o51></A>template &lt;class BidirectionalIterator&gt;
bool operator == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() == rhs</CODE>.</P>
<PRE><A name=o52></A>template &lt;class BidirectionalIterator&gt;
bool operator != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() != rhs</CODE>.</P>
<PRE><A name=o53></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt; rhs</CODE>.</P>
<PRE><A name=o54></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt; rhs</CODE>.</P>
<PRE><A name=o55></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt;= rhs</CODE>.</P>
<PRE><A name=o56></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt;= rhs</CODE>.</P>
<H5>Comparisons with a single character</H5>
<PRE><A name=o61></A>template &lt;class BidirectionalIterator&gt;
bool operator == (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs == rhs.str()</CODE>.</P>
<PRE><A name=o62></A>template &lt;class BidirectionalIterator&gt;
bool operator != (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs != rhs.str()</CODE>.</P>
<PRE><A name=o63></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt; rhs.str()</CODE>.</P>
<PRE><A name=o64></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt; rhs.str()</CODE>.</P>
<PRE><A name=o65></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt;= rhs.str()</CODE>.</P>
<PRE><A name=o66></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt;= rhs.str()</CODE>.</P>
<PRE><A name=o71></A>template &lt;class BidirectionalIterator&gt;
bool operator == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() == rhs</CODE>.</P>
<PRE><A name=o72></A>template &lt;class BidirectionalIterator&gt;
bool operator != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() != rhs</CODE>.</P>
<PRE><A name=o73></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt; rhs</CODE>.</P>
<PRE><A name=o74></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt; rhs</CODE>.</P>
<PRE><A name=o75></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt;= rhs</CODE>.</P>
<PRE><A name=o76></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt;= rhs</CODE>.</P>
<h5>Addition operators</h5>
<P>The addition operators for sub_match allow you to add a sub_match to any type
to which you can add a std::string and obtain a new string as the result.</P>
<PRE><A name=o81></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;
operator + (const std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m); </PRE>
<P><B>Effects: </B>returns <CODE>s + m.str()</CODE>.</P>
<PRE><A name=o82></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;
operator + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
const std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; s); </PRE>
<P><B>Effects: </B>returns <CODE>m.str() + s</CODE>.</P>
<PRE><A name=o83></A>template &lt;class BidirectionalIterator&gt; std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m); </PRE>
<P><B>Effects: </B>returns <CODE>s + m.str()</CODE>.</P>
<PRE><A name=o84></A>template &lt;class BidirectionalIterator&gt; std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const * s);</PRE>
<P><B>Effects: </B>returns <CODE>m.str() + s</CODE>.</P>
<PRE><A name=o85></A>template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m); </PRE>
<P><B>Effects: </B>returns <CODE>s + m.str()</CODE>.</P>
<PRE><A name=o86></A>template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; s); </PRE>
<P><B>Effects: </B>returns <CODE>m.str() + s</CODE>.</P>
<PRE><A name=o87></A>template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (const sub_match&lt;BidirectionalIterator&gt;&amp; m1,
const sub_match&lt;BidirectionalIterator&gt;&amp; m2);</PRE>
<P><B>Effects: </B>returns&nbsp;<CODE>m1.str() + m2.str()</CODE>.</P>
<h5>Stream inserter</h5>
<PRE><A name=oi></A>template &lt;class charT, class traits, class BidirectionalIterator&gt;
basic_ostream&lt;charT, traits&gt;&amp;
operator &lt;&lt; (basic_ostream&lt;charT, traits&gt;&amp; os
const sub_match&lt;BidirectionalIterator&gt;&amp; m);</PRE>
<P>
<B>Effects: </B>returns <CODE>(os &lt;&lt; m.str())</CODE>.
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,771 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Regular Expression Syntax</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Regular Expression Syntax</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<P>This section covers the regular expression syntax used by this library, this is
a programmers guide, the actual syntax presented to your program's users will
depend upon the flags used during expression compilation.
</P>
<H3>Literals
</H3>
<P>All characters are literals except: ".", "|", "*", "?", "+", "(", ")", "{",
"}", "[", "]", "^", "$" and "\". These characters are literals when preceded by
a "\". A literal is a character that matches itself, or matches the result of
traits_type::translate(), where traits_type is the traits template parameter to
class basic_regex.</P>
<H3>Wildcard
</H3>
<P>The dot character "." matches any single character except : when <I>match_not_dot_null</I>
is passed to the matching algorithms, the dot does not match a null character;
when <I>match_not_dot_newline</I> is passed to the matching algorithms, then
the dot does not match a newline character.
</P>
<H3>Repeats
</H3>
<P>A repeat is an expression that is repeated an arbitrary number of times. An
expression followed by "*" can be repeated any number of times including zero.
An expression followed by "+" can be repeated any number of times, but at least
once, if the expression is compiled with the flag regex_constants::bk_plus_qm
then "+" is an ordinary character and "\+" represents a repeat of once or more.
An expression followed by "?" may be repeated zero or one times only, if the
expression is compiled with the flag regex_constants::bk_plus_qm then "?" is an
ordinary character and "\?" represents the repeat zero or once operator. When
it is necessary to specify the minimum and maximum number of repeats
explicitly, the bounds operator "{}" may be used, thus "a{2}" is the letter "a"
repeated exactly twice, "a{2,4}" represents the letter "a" repeated between 2
and 4 times, and "a{2,}" represents the letter "a" repeated at least twice with
no upper limit. Note that there must be no white-space inside the {}, and there
is no upper limit on the values of the lower and upper bounds. When the
expression is compiled with the flag regex_constants::bk_braces then "{" and
"}" are ordinary characters and "\{" and "\}" are used to delimit bounds
instead. All repeat expressions refer to the shortest possible previous
sub-expression: a single character; a character set, or a sub-expression
grouped with "()" for example.
</P>
<P>Examples:
</P>
<P>"ba*" will match all of "b", "ba", "baaa" etc.
</P>
<P>"ba+" will match "ba" or "baaaa" for example but not "b".
</P>
<P>"ba?" will match "b" or "ba".
</P>
<P>"ba{2,4}" will match "baa", "baaa" and "baaaa".
</P>
<H3>Non-greedy repeats
</H3>
<P>Whenever the "extended" regular expression syntax is in use (the default) then
non-greedy repeats are possible by appending a '?' after the repeat; a
non-greedy repeat is one which will match the <I>shortest</I> possible string.
</P>
<P>For example to match html tag pairs one could use something like:
</P>
<P>"&lt;\s*tagname[^&gt;]*&gt;(.*?)&lt;\s*/tagname\s*&gt;"
</P>
<P>In this case $1 will contain the text between the tag pairs, and will be the
shortest possible matching string.&nbsp;
</P>
<H3>Parenthesis
</H3>
<P>Parentheses serve two purposes, to group items together into a sub-expression,
and to mark what generated the match. For example the expression "(ab)*" would
match all of the string "ababab". The matching algorithms <A href="regex_match.html">
regex_match</A> and <A href="regex_search.html">regex_search</A>
each take an instance of <A href="match_results.html">match_results</A>
that reports what caused the match, on exit from these functions the <A href="match_results.html">
match_results</A> contains information both on what the whole expression
matched and on what each sub-expression matched. In the example above
match_results[1] would contain a pair of iterators denoting the final "ab" of
the matching string. It is permissible for sub-expressions to match null
strings. If a sub-expression takes no part in a match - for example if it is
part of an alternative that is not taken - then both of the iterators that are
returned for that sub-expression point to the end of the input string, and the <I>matched</I>
parameter for that sub-expression is <I>false</I>. Sub-expressions are indexed
from left to right starting from 1, sub-expression 0 is the whole expression.
</P>
<H3>Non-Marking Parenthesis
</H3>
<P>Sometimes you need to group sub-expressions with parenthesis, but don't want
the parenthesis to spit out another marked sub-expression, in this case a
non-marking parenthesis (?:expression) can be used. For example the following
expression creates no sub-expressions:
</P>
<P>"(?:abc)*"</P>
<H3>Forward Lookahead Asserts&nbsp;
</H3>
<P>There are two forms of these; one for positive forward lookahead asserts, and
one for negative lookahead asserts:</P>
<P>"(?=abc)" matches zero characters only if they are followed by the expression
"abc".</P>
<P>"(?!abc)" matches zero characters only if they are not followed by the
expression "abc".</P>
<H3>Independent sub-expressions</H3>
<P>"(?&gt;expression)" matches "expression" as an independent atom (the algorithm
will not backtrack into it if a failure occurs later in the expression).</P>
<H3>Alternatives
</H3>
<P>Alternatives occur when the expression can match either one sub-expression or
another, each alternative is separated by a "|", or a "\|" if the flag
regex_constants::bk_vbar is set, or by a newline character if the flag
regex_constants::newline_alt is set. Each alternative is the largest possible
previous sub-expression; this is the opposite behavior from repetition
operators.
</P>
<P>Examples:
</P>
<P>"a(b|c)" could match "ab" or "ac".
</P>
<P>"abc|def" could match "abc" or "def".
</P>
<H3>Sets
</H3>
<P>A set is a set of characters that can match any single character that is a
member of the set. Sets are delimited by "[" and "]" and can contain literals,
character ranges, character classes, collating elements and equivalence
classes. Set declarations that start with "^" contain the compliment of the
elements that follow.
</P>
<P>Examples:
</P>
<P>Character literals:
</P>
<P>"[abc]" will match either of "a", "b", or "c".
</P>
<P>"[^abc] will match any character other than "a", "b", or "c".
</P>
<P>Character ranges:
</P>
<P>"[a-z]" will match any character in the range "a" to "z".
</P>
<P>"[^A-Z]" will match any character other than those in the range "A" to "Z".
</P>
<P>Note that character ranges are highly locale dependent if the flag
regex_constants::collate is set: they match any character that collates between
the endpoints of the range, ranges will only behave according to ASCII rules
when the default "C" locale is in effect. For example if the library is
compiled with the Win32 localization model, then [a-z] will match the ASCII
characters a-z, and also 'A', 'B' etc, but not 'Z' which collates just after
'z'. This locale specific behavior is disabled by default (in perl mode), and
forces ranges to collate according to ASCII character code.
</P>
<P>Character classes are denoted using the syntax "[:classname:]" within a set
declaration, for example "[[:space:]]" is the set of all whitespace characters.
Character classes are only available if the flag regex_constants::char_classes
is set. The available character classes are:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table2" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="50%">alnum</TD>
<TD vAlign="top" width="50%">Any alpha numeric character.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">alpha</TD>
<TD vAlign="top" width="50%">Any alphabetical character a-z and A-Z. Other
characters may also be included depending upon the locale.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">blank</TD>
<TD vAlign="top" width="50%">Any blank character, either a space or a tab.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">cntrl</TD>
<TD vAlign="top" width="50%">Any control character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">digit</TD>
<TD vAlign="top" width="50%">Any digit 0-9.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">graph</TD>
<TD vAlign="top" width="50%">Any graphical character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">lower</TD>
<TD vAlign="top" width="50%">Any lower case character a-z. Other characters may
also be included depending upon the locale.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">print</TD>
<TD vAlign="top" width="50%">Any printable character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">punct</TD>
<TD vAlign="top" width="50%">Any punctuation character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">space</TD>
<TD vAlign="top" width="50%">Any whitespace character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">upper</TD>
<TD vAlign="top" width="50%">Any upper case character A-Z. Other characters may
also be included depending upon the locale.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">xdigit</TD>
<TD vAlign="top" width="50%">Any hexadecimal digit character, 0-9, a-f and A-F.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">word</TD>
<TD vAlign="top" width="50%">Any word character - all alphanumeric characters plus
the underscore.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">Unicode</TD>
<TD vAlign="top" width="50%">Any character whose code is greater than 255, this
applies to the wide character traits classes only.</TD>
<TD>&nbsp;</TD>
</TR>
</TABLE>
</P>
<P>There are some shortcuts that can be used in place of the character classes,
provided the flag regex_constants::escape_in_lists is set then you can use:
</P>
<P>\w in place of [:word:]
</P>
<P>\s in place of [:space:]
</P>
<P>\d in place of [:digit:]
</P>
<P>\l in place of [:lower:]
</P>
<P>\u in place of [:upper:]&nbsp;
</P>
<P>Collating elements take the general form [.tagname.] inside a set declaration,
where <I>tagname</I> is either a single character, or a name of a collating
element, for example [[.a.]] is equivalent to [a], and [[.comma.]] is
equivalent to [,]. The library supports all the standard POSIX collating
element names, and in addition the following digraphs: "ae", "ch", "ll", "ss",
"nj", "dz", "lj", each in lower, upper and title case variations.
Multi-character collating elements can result in the set matching more than one
character, for example [[.ae.]] would match two characters, but note that
[^[.ae.]] would only match one character.&nbsp;
</P>
<P>
Equivalence classes take the general form[=tagname=] inside a set declaration,
where <I>tagname</I> is either a single character, or a name of a collating
element, and matches any character that is a member of the same primary
equivalence class as the collating element [.tagname.]. An equivalence class is
a set of characters that collate the same, a primary equivalence class is a set
of characters whose primary sort key are all the same (for example strings are
typically collated by character, then by accent, and then by case; the primary
sort key then relates to the character, the secondary to the accentation, and
the tertiary to the case). If there is no equivalence class corresponding to <I>tagname</I>
, then[=tagname=] is exactly the same as [.tagname.]. Unfortunately there is no
locale independent method of obtaining the primary sort key for a character,
except under Win32. For other operating systems the library will "guess" the
primary sort key from the full sort key (obtained from <I>strxfrm</I>), so
equivalence classes are probably best considered broken under any operating
system other than Win32.&nbsp;
</P>
<P>To include a literal "-" in a set declaration then: make it the first character
after the opening "[" or "[^", the endpoint of a range, a collating element, or
if the flag regex_constants::escape_in_lists is set then precede with an escape
character as in "[\-]". To include a literal "[" or "]" or "^" in a set then
make them the endpoint of a range, a collating element, or precede with an
escape character if the flag regex_constants::escape_in_lists is set.
</P>
<H3>Line anchors
</H3>
<P>An anchor is something that matches the null string at the start or end of a
line: "^" matches the null string at the start of a line, "$" matches the null
string at the end of a line.
</P>
<H3>Back references
</H3>
<P>A back reference is a reference to a previous sub-expression that has already
been matched, the reference is to what the sub-expression matched, not to the
expression itself. A back reference consists of the escape character "\"
followed by a digit "1" to "9", "\1" refers to the first sub-expression, "\2"
to the second etc. For example the expression "(.*)\1" matches any string that
is repeated about its mid-point for example "abcabc" or "xyzxyz". A back
reference to a sub-expression that did not participate in any match, matches
the null string: NB this is different to some other regular expression
matchers. Back references are only available if the expression is compiled with
the flag regex_constants::bk_refs set.
</P>
<H3>Characters by code
</H3>
<P>This is an extension to the algorithm that is not available in other libraries,
it consists of the escape character followed by the digit "0" followed by the
octal character code. For example "\023" represents the character whose octal
code is 23. Where ambiguity could occur use parentheses to break the expression
up: "\0103" represents the character whose code is 103, "(\010)3 represents the
character 10 followed by "3". To match characters by their hexadecimal code,
use \x followed by a string of hexadecimal digits, optionally enclosed inside
{}, for example \xf0 or \x{aff}, notice the latter example is a Unicode
character.</P>
<H3>Word operators
</H3>
<P>The following operators are provided for compatibility with the GNU regular
expression library.
</P>
<P>"\w" matches any single character that is a member of the "word" character
class, this is identical to the expression "[[:word:]]".
</P>
<P>"\W" matches any single character that is not a member of the "word" character
class, this is identical to the expression "[^[:word:]]".
</P>
<P>"\&lt;" matches the null string at the start of a word.
</P>
<P>"\&gt;" matches the null string at the end of the word.
</P>
<P>"\b" matches the null string at either the start or the end of a word.
</P>
<P>"\B" matches a null string within a word.
</P>
<P>The start of the sequence passed to the matching algorithms is considered to be
a potential start of a word unless the flag match_not_bow is set. The end of
the sequence passed to the matching algorithms is considered to be a potential
end of a word unless the flag match_not_eow is set.
</P>
<H3>Buffer operators
</H3>
<P>The following operators are provided for compatibility with the GNU regular
expression library, and Perl regular expressions:
</P>
<P>"\`" matches the start of a buffer.
</P>
<P>"\A" matches the start of the buffer.
</P>
<P>"\'" matches the end of a buffer.
</P>
<P>"\z" matches the end of a buffer.
</P>
<P>"\Z" matches the end of a buffer, or possibly one or more new line characters
followed by the end of the buffer.
</P>
<P>A buffer is considered to consist of the whole sequence passed to the matching
algorithms, unless the flags match_not_bob or match_not_eob are set.
</P>
<H3>Escape operator
</H3>
<P>The escape character "\" has several meanings.
</P>
<P>Inside a set declaration the escape character is a normal character unless the
flag regex_constants::escape_in_lists is set in which case whatever follows the
escape is a literal character regardless of its normal meaning.
</P>
<P>The escape operator may introduce an operator for example: back references, or
a word operator.
</P>
<P>The escape operator may make the following character normal, for example "\*"
represents a literal "*" rather than the repeat operator.
</P>
<H4>Single character escape sequences
</H4>
<P>The following escape sequences are aliases for single characters:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table3" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="33%">Escape sequence
</TD>
<TD vAlign="top" width="33%">Character code
</TD>
<TD vAlign="top" width="33%">Meaning
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\a
</TD>
<TD vAlign="top" width="33%">0x07
</TD>
<TD vAlign="top" width="33%">Bell character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\f
</TD>
<TD vAlign="top" width="33%">0x0C
</TD>
<TD vAlign="top" width="33%">Form feed.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\n
</TD>
<TD vAlign="top" width="33%">0x0A
</TD>
<TD vAlign="top" width="33%">Newline character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\r
</TD>
<TD vAlign="top" width="33%">0x0D
</TD>
<TD vAlign="top" width="33%">Carriage return.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\t
</TD>
<TD vAlign="top" width="33%">0x09
</TD>
<TD vAlign="top" width="33%">Tab character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\v
</TD>
<TD vAlign="top" width="33%">0x0B
</TD>
<TD vAlign="top" width="33%">Vertical tab.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\e
</TD>
<TD vAlign="top" width="33%">0x1B
</TD>
<TD vAlign="top" width="33%">ASCII Escape character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\0dd
</TD>
<TD vAlign="top" width="33%">0dd
</TD>
<TD vAlign="top" width="33%">An octal character code, where <I>dd</I> is one or
more octal digits.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\xXX
</TD>
<TD vAlign="top" width="33%">0xXX
</TD>
<TD vAlign="top" width="33%">A hexadecimal character code, where XX is one or more
hexadecimal digits.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\x{XX}
</TD>
<TD vAlign="top" width="33%">0xXX
</TD>
<TD vAlign="top" width="33%">A hexadecimal character code, where XX is one or more
hexadecimal digits, optionally a Unicode character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\cZ
</TD>
<TD vAlign="top" width="33%">z-@
</TD>
<TD vAlign="top" width="33%">An ASCII escape sequence control-Z, where Z is any
ASCII character greater than or equal to the character code for '@'.
</TD>
<TD>&nbsp;</TD>
</TR>
</TABLE>
</P>
<H4>Miscellaneous escape sequences:
</H4>
<P>The following are provided mostly for perl compatibility, but note that there
are some differences in the meanings of \l \L \u and \U:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table4" cellSpacing="0" cellPadding="6" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\w
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:word:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\W
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:word:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\s
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:space:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\S
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:space:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\d
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:digit:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\D
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:digit:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\l
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:lower:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\L
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:lower:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\u
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:upper:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\U
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:upper:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\C
</TD>
<TD vAlign="top" width="45%">Any single character, equivalent to '.'.
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\X
</TD>
<TD vAlign="top" width="45%">Match any Unicode combining character sequence, for
example "a\x 0301" (a letter a with an acute).
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\Q
</TD>
<TD vAlign="top" width="45%">The begin quote operator, everything that follows is
treated as a literal character until a \E end quote operator is found.
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\E
</TD>
<TD vAlign="top" width="45%">The end quote operator, terminates a sequence begun
with \Q.
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
</TABLE>
</P>
<H3>What gets matched?
</H3>
<P>
When the expression is compiled as a Perl-compatible regex then the matching
algorithms will perform a depth first search on the state machine and report
the first match found.</P>
<P>
When the expression is compiled as a POSIX-compatible regex then the matching
algorithms will match the first possible matching string, if more than one
string starting at a given location can match then it matches the longest
possible string, unless the flag match_any is set, in which case the first
match encountered is returned. Use of the match_any option can reduce the time
taken to find the match - but is only useful if the user is less concerned
about what matched - for example it would not be suitable for search and
replace operations. In cases where their are multiple possible matches all
starting at the same location, and all of the same length, then the match
chosen is the one with the longest first sub-expression, if that is the same
for two or more matches, then the second sub-expression will be examined and so
on.
</P><P>
The following table examples illustrate the main differences between Perl and
POSIX regular expression matching rules:
</P>
<P>
<TABLE id="Table5" cellSpacing="1" cellPadding="7" width="624" border="1">
<TBODY>
<TR>
<TD vAlign="top" width="25%">
<P>Expression</P>
</TD>
<TD vAlign="top" width="25%">
<P>Text</P>
</TD>
<TD vAlign="top" width="25%">
<P>POSIX leftmost longest match</P>
</TD>
<TD vAlign="top" width="25%">
<P>ECMAScript depth first search match</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="25%">
<P><CODE>a|ab</CODE></P>
</TD>
<TD vAlign="top" width="25%">
<P><CODE>
xaby</CODE>
</P>
</TD>
<TD vAlign="top" width="25%">
<P><CODE>
"ab"</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>
"a"</CODE></P></TD>
</TR>
<TR>
<TD vAlign="top" width="25%">
<P><CODE>
.*([[:alnum:]]+).*</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>
" abc def xyz "</CODE></P></TD>
<TD vAlign="top" width="25%">
<P>$0 = " abc def xyz "<BR>
$1 = "abc"</P>
</TD>
<TD vAlign="top" width="25%">
<P>$0 = " abc def xyz "<BR>
$1 = "z"</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="25%">
<P><CODE>
.*(a|xayy)</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>
zzxayyzz</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>
"zzxayy"</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>"zzxa"</CODE></P>
</TD>
</TR>
</TBODY></CODE></TD></TR></TABLE>
<P>These differences between Perl matching rules, and POSIX matching rules, mean
that these two regular expression syntaxes differ not only in the features
offered, but also in the form that the state machine takes and/or the
algorithms used to traverse the state machine.</p>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,331 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: syntax_option_type</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">syntax_option_type</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Synopsis</H3>
<P>Type syntax_option type is an implementation defined bitmask type that controls
how a regular expression string is to be interpreted.&nbsp; For convenience
note that all the constants listed here, are also duplicated within the scope
of class template <A href="basic_regex.html">basic_regex</A>.</P>
<PRE>namespace std{ namespace regex_constants{
typedef bitmask_type syntax_option_type;
// these flags are standardized:
static const syntax_option_type normal;
static const syntax_option_type icase;
static const syntax_option_type nosubs;
static const syntax_option_type optimize;
static const syntax_option_type collate;
static const syntax_option_type ECMAScript = normal;
static const syntax_option_type JavaScript = normal;
static const syntax_option_type JScript = normal;
static const syntax_option_type basic;
static const syntax_option_type extended;
static const syntax_option_type awk;
static const syntax_option_type grep;
static const syntax_option_type egrep;
static const syntax_option_type sed = basic;
static const syntax_option_type perl;<BR>// these are boost.regex specific:<BR>static const syntax_option_type escape_in_lists;<BR>static const syntax_option_type char_classes;<BR>static const syntax_option_type intervals;<BR>static const syntax_option_type limited_ops;<BR>static const syntax_option_type newline_alt;<BR>static const syntax_option_type bk_plus_qm;<BR>static const syntax_option_type bk_braces;<BR>static const syntax_option_type bk_parens;<BR>static const syntax_option_type bk_refs;<BR>static const syntax_option_type bk_vbar;<BR>static const syntax_option_type use_except;<BR>static const syntax_option_type failbit;<BR>static const syntax_option_type literal;<BR>static const syntax_option_type nocollate;<BR>static const syntax_option_type perlex;<BR>static const syntax_option_type emacs;<BR>
} // namespace regex_constants
} // namespace std</PRE>
<H3>Description</H3>
<P>The type <CODE>syntax_option_type</CODE> is an implementation defined bitmask
type (17.3.2.1.2). Setting its elements has the effects listed in the table
below, a valid value of type <CODE>syntax_option_type</CODE> will always have
exactly one of the elements <CODE>normal, basic, extended, awk, grep, egrep, sed
or perl</CODE> set.</P>
<P>Note that for convenience all the constants listed here are duplicated within
the scope of class template basic_regex, so you can use any of:</P>
<PRE>boost::regex_constants::constant_name</PRE>
<P>or</P>
<PRE>boost::regex::constant_name</PRE>
<P>or</P>
<PRE>boost::wregex::constant_name</PRE>
<P>in an interchangeable manner.</P>
<P>
<TABLE id="Table2" height="1274" cellSpacing="1" cellPadding="7" width="100%" border="0">
<TR>
<TD vAlign="top" width="316">
<P>Element</P>
</TD>
<TD vAlign="top" width="50%">
<P>Effect if set</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>normal</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine uses its
normal semantics: that is the same as that given in the ECMA-262, ECMAScript
Language Specification, Chapter 15 part 10, RegExp (Regular Expression) Objects
(FWD.1).</P>
<P>boost.regex also recognizes most perl-compatible extensions in this mode.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>icase</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that matching of regular expressions against a character container
sequence shall be performed without regard to case.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>nosubs</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that when a regular expression is matched against a character
container sequence, then no sub-expression matches are to be stored in the
supplied match_results structure.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>optimize</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the regular expression engine should pay more attention to the
speed with which regular expressions are matched, and less to the speed with
which regular expression objects are constructed. Otherwise it has no
detectable effect on the program output.&nbsp; This currently has no effect for
boost.regex.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>collate</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that character ranges of the form "[a-b]" should be locale sensitive.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>ECMAScript</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as normal.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>JavaScript</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as normal.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>JScript</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as normal.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>basic</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX basic regular expressions in IEEE Std 1003.1-2001,
Portable Operating System Interface (POSIX ), Base Definitions and Headers,
Section 9, Regular Expressions (FWD.1).
</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>extended</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX extended regular expressions in IEEE Std
1003.1-2001, Portable Operating System Interface (POSIX ), Base Definitions and
Headers, Section 9, Regular Expressions (FWD.1).</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>awk</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX utility awk in IEEE Std 1003.1-2001, Portable
Operating System Interface (POSIX ), Shells and Utilities, Section 4, awk
(FWD.1).</P>
<P>That is to say: the same as POSIX extended syntax, but with escape sequences in
character classes permitted.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>grep</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX utility grep in IEEE Std 1003.1-2001, Portable
Operating System Interface (POSIX ), Shells and Utilities, Section 4,
Utilities, grep (FWD.1).</P>
<P>That is to say, the same as POSIX basic syntax, but with the newline character
acting as an alternation character in addition to "|".</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>egrep</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX utility grep when given the -E option in IEEE Std
1003.1-2001, Portable Operating System Interface (POSIX ), Shells and
Utilities, Section 4, Utilities, grep (FWD.1).</P>
<P>That is to say, the same as POSIX extended syntax, but with the newline
character acting as an alternation character in addition to "|".</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>sed</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as basic.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>perl</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as normal.</P>
</TD>
</TR>
</TABLE>
</P>
<P>The following constants are specific to this particular regular expression
implementation and do not appear in the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</A>:</P>
<P>
<TABLE id="Table3" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD vAlign="top" width="45%">regbase::escape_in_lists</TD>
<TD vAlign="top" width="45%">Allows the use of the escape "\" character in sets of
characters, for example [\]] represents the set of characters containing only
"]". If this flag is not set then "\" is an ordinary character inside sets.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase::char_classes</TD>
<TD vAlign="top" width="45%">When this bit is set, character classes [:classname:]
are allowed inside character set declarations, for example "[[:word:]]"
represents the set of all characters that belong to the character class "word".</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: intervals</TD>
<TD vAlign="top" width="45%">When this bit is set, repetition intervals are
allowed, for example "a{2,4}" represents a repeat of between 2 and 4 letter
a's.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: limited_ops</TD>
<TD vAlign="top" width="45%">When this bit is set all of "+", "?" and "|" are
ordinary characters in all situations.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: newline_alt</TD>
<TD vAlign="top" width="45%">When this bit is set, then the newline character "\n"
has the same effect as the alternation operator "|".</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_plus_qm</TD>
<TD vAlign="top" width="45%">When this bit is set then "\+" represents the one or
more repetition operator and "\?" represents the zero or one repetition
operator. When this bit is not set then "+" and "?" are used instead.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_braces</TD>
<TD vAlign="top" width="45%">When this bit is set then "\{" and "\}" are used for
bounded repetitions and "{" and "}" are normal characters. This is the opposite
of default behavior.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_parens</TD>
<TD vAlign="top" width="45%">When this bit is set then "\(" and "\)" are used to
group sub-expressions and "(" and ")" are ordinary characters, this is the
opposite of default behavior.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_refs</TD>
<TD vAlign="top" width="45%">When this bit is set then back references are
allowed.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_vbar</TD>
<TD vAlign="top" width="45%">When this bit is set then "\|" represents the
alternation operator and "|" is an ordinary character. This is the opposite of
default behavior.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: use_except</TD>
<TD vAlign="top" width="45%">When this bit is set then a <A href="#bad_expression">bad_expression</A>
exception will be thrown on error.&nbsp; Use of this flag is deprecated -
basic_regex will always throw on error.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: failbit</TD>
<TD vAlign="top" width="45%">This bit is set on error, if regbase::use_except is
not set, then this bit should be checked to see if a regular expression is
valid before usage.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase::literal</TD>
<TD vAlign="top" width="45%">All characters in the string are treated as literals,
there are no special characters or escape sequences.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%" height="24">regbase::emacs</TD>
<TD vAlign="top" width="45%" height="24">Provides compatability with the emacs
editor, eqivalent to: bk_braces | bk_parens | bk_refs | bk_vbar.</TD>
</TR>
</TABLE>
</P>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,70 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Thread Safety</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Thread Safety</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<P>The regex library is thread safe when Boost is: you can verify that Boost is in
thread safe mode by checking to see if BOOST_HAS_THREADS is defined: this macro
is set automatically by the config system when threading support is turned on
in your compiler.
</P>
<P>Class <A href="basic_regex.html">basic_regex</A>&lt;&gt; and its typedefs regex
and wregex are thread safe, in that compiled regular expressions can safely be
shared between threads. The matching algorithms <A href="regex_match.html">regex_match</A>,
<A href="regex_search.html">regex_search</A>, <A href="regex_grep.html">regex_grep</A>,
<A href="regex_format.html">regex_format</A> and <A href="regex_merge.html">regex_merge</A>
are all re-entrant and thread safe. Class <A href="match_results.html">match_results</A>
is now thread safe, in that the results of a match can be safely copied from
one thread to another (for example one thread may find matches and push
match_results instances onto a queue, while another thread pops them off the
other end), otherwise use a separate instance of <A href="match_results.html">match_results</A>
per thread.
</P>
<P>The <A href="posix_api.html">POSIX API functions</A> are all re-entrant and
thread safe, regular expressions compiled with <I>regcomp</I> can also be
shared between threads.
</P>
<P>The class<A href="regex.html"> RegEx</A> is only thread safe if each thread
gets its own RegEx instance (apartment threading) - this is a consequence of
RegEx handling both compiling and matching regular expressions.
</P>
<P>Finally note that changing the global locale invalidates all compiled regular
expressions, therefore calling <I>set_locale</I> from one thread while another
uses regular expressions <I>will</I> produce unpredictable results.
</P>
<P>
There is also a requirement that there is only one thread executing prior to
the start of main().</P>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1,77 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: bad_expression</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">class bad_expression</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Synopsis</h3>
<p>#include &lt;<a href="../../../boost/regex/pattern_except.hpp">boost/pattern_except.hpp</a>&gt;</p>
<p>The class <code>bad_expression</code> defines the type of objects thrown as
exceptions to report errors during the conversion from a string representing a
regular expression to a finite state machine.&nbsp;&nbsp;</p>
<pre>
<b>namespace</b> boost{
<b>class</b> bad_pattern : <b>public</b> std::runtime_error
{
<b>public</b>:
<b>explicit</b> bad_pattern(<b>const</b> std::string&amp; s) : std::runtime_error(s){};
};
<b>class</b> bad_expression : <b>public</b> bad_pattern
{
<b>public</b>:
bad_expression(<b>const</b> std::string&amp; s) : bad_pattern(s) {}
};
} // namespace boost
</pre>
<h3>Description</h3>
<pre>
bad_expression(const string&amp; what_arg);
</pre>
<p><b>Effects:</b> Constructs an object of class <code>bad_expression</code>.</p>
<b></b>
<p><b>Postcondition:</b> <code>strcmp(what(), what_arg.c_str()) == 0</code>.</p>
<p>Footnotes: the class <i>bad_pattern</i> forms the base class for all
pattern-matching exceptions, of which <i>bad_expression</i> is one. The choice
of <i>std::runtime_error</i> as the base class for <i>bad_pattern</i> is moot;
depending upon how the library is used exceptions may be either logic errors
(programmer supplied expressions) or run time errors (user supplied
expressions).</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,914 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: basic_regex</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">basic_regex</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Synopsis</h3>
<pre>
#include &lt;<a href="../../../boost/regex.hpp">boost/regex.hpp</a>&gt;
</pre>
<p>The template class <em>basic_regex</em> encapsulates regular expression parsing
and compilation. The class takes three template parameters:</p>
<p><b><i>charT</i></b>: determines the character type, i.e. either char or
wchar_t.</p>
<p><b><i>traits</i></b>: determines the behavior of the character type, for
example which character class names are recognized. A default traits class is
provided: <a href="regex_traits.html">regex_traits&lt;charT&gt;</a>.</p>
<p><b><i>Allocator</i></b>: the allocator class used to allocate memory by the
class.</p>
<p>For ease of use there are two typedefs that define the two standard <i>basic_regex</i>
instances, unless you want to use custom traits classes or allocators, you
won't need to use anything other than these:</p>
<pre>
<b>namespace</b> boost{
<b>template</b> &lt;<b>class</b> charT, <b>class</b> traits = regex_traits&lt;charT&gt;, <b>class</b> Allocator = std::allocator&lt;charT&gt; &gt;
<b>class</b> basic_regex;
<b>typedef</b> basic_regex&lt;<b>char</b>&gt; regex;
<b>typedef</b> basic_regex&lt;<b>wchar_t&gt;</b> wregex;
}
</pre>
<p>The definition of <i>basic_regex</i> follows: it is based very closely on class
basic_string, and fulfils the requirements for a constant-container of <i>charT</i>.</p>
<pre>
namespace boost{
template &lt;class charT,
class traits = regex_traits&lt;charT&gt;,
class Allocator = allocator&lt;charT&gt; &gt;
class basic_regex
{
public:
// types:
typedef charT value_type;
typedef implementation defined const_iterator;
typedef const_iterator iterator;
typedef typename Allocator::reference reference;
typedef typename Allocator::const_reference const_reference;
typedef typename Allocator::difference_type difference_type;
typedef typename Allocator::size_type size_type;
typedef Allocator allocator_type;
typedef regex_constants::syntax_option_type flag_type;
typedef typename traits::locale_type locale_type;
// constants:
static const regex_constants::syntax_option_type normal = regex_constants::normal;
static const regex_constants::syntax_option_type icase = regex_constants::icase;
static const regex_constants::syntax_option_type nosubs = regex_constants::nosubs;
static const regex_constants::syntax_option_type optimize = regex_constants::optimize;
static const regex_constants::syntax_option_type collate = regex_constants::collate;
static const regex_constants::syntax_option_type ECMAScript = normal;
static const regex_constants::syntax_option_type JavaScript = normal;
static const regex_constants::syntax_option_type JScript = normal;
// these flags are optional, if the functionality is supported
// then the flags shall take these names.
static const regex_constants::syntax_option_type basic = regex_constants::basic;
static const regex_constants::syntax_option_type extended = regex_constants::extended;
static const regex_constants::syntax_option_type awk = regex_constants::awk;
static const regex_constants::syntax_option_type grep = regex_constants::grep;
static const regex_constants::syntax_option_type egrep = regex_constants::egrep;
static const regex_constants::syntax_option_type sed = basic = regex_constants::sed;
static const regex_constants::syntax_option_type perl = regex_constants::perl;
// construct/copy/destroy:
explicit <A href="#c1">basic_regex</A>(const Allocator&amp; a = Allocator());
explicit <A href="#c2">basic_regex</A>(const charT* p, flag_type f = regex_constants::normal,
const Allocator&amp; a = Allocator());
<A href="#c3">basic_regex</A>(const charT* p1, const charT* p2, flag_type f = regex_constants::normal,
const Allocator&amp; a = Allocator());
<A href="#c4">basic_regex</A>(const charT* p, size_type len, flag_type f,
const Allocator&amp; a = Allocator());
<A href="#c5">basic_regex</A>(const basic_regex&amp;);
template &lt;class ST, class SA&gt;
explicit <A href="#c6">basic_regex</A>(const basic_string&lt;charT, ST, SA&gt;&amp; p,
flag_type f = regex_constants::normal,
const Allocator&amp; a = Allocator());
template &lt;class InputIterator&gt;
<A href="#c7">basic_regex</A>(InputIterator first, inputIterator last,
flag_type f = regex_constants::normal,
const Allocator&amp; a = Allocator());
~basic_regex();
basic_regex&amp; <A href="#o1">operator</A>=(const basic_regex&amp;);
basic_regex&amp; <A href="#o2">operator</A>= (const charT* ptr);
template &lt;class ST, class SA&gt;
basic_regex&amp; <A href="#o3">operator</A>= (const basic_string&lt;charT, ST, SA&gt;&amp; p);
// iterators:
const_iterator <A href="#m1">begin</A>() const;
const_iterator <A href="#m2">end</A>() const;
// capacity:
size_type <A href="#m3">size</A>() const;
size_type <A href="#m4">max_size</A>() const;
bool <A href="#m5">empty</A>() const;
unsigned <A href="#m6">mark_count</A>()const;
//
// modifiers:
basic_regex&amp; <A href="#a1">assign</A>(const basic_regex&amp; that);
basic_regex&amp; <A href="#a2">assign</A>(const charT* ptr, flag_type f = regex_constants::normal);
basic_regex&amp; <A href="#a3">assign</A>(const charT* ptr, unsigned int len, flag_type f);
template &lt;class string_traits, class A&gt;
basic_regex&amp; <A href="#a4">assign</A>(const basic_string&lt;charT, string_traits, A&gt;&amp; s,
flag_type f = regex_constants::normal);
template &lt;class InputIterator&gt;
basic_regex&amp; <A href="#a5">assign</A>(InputIterator first, InputIterator last,
flag_type f = regex_constants::normal);
// const operations:
Allocator <A href="#m7">get_allocator</A>() const;
flag_type <A href="#m8">flags</A>() const;
basic_string&lt;charT&gt; <A href="#m9">str</A>() const;
int <A href="#m10">compare</A>(basic_regex&amp;) const;
// locale:
locale_type <A href="#m11">imbue</A>(locale_type loc);
locale_type <A href="#m12">getloc</A>() const;
// swap
void <A href="#m13">swap</A>(basic_regex&amp;) throw();
};
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o4">operator</A> == (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o5">operator</A> != (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o7">operator</A> &lt; (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o8">operator</A> &lt;= (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o9">operator</A> &gt;= (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class traits, class Allocator&gt;
bool <A href="#o10">operator</A> &gt; (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
template &lt;class charT, class io_traits, class re_traits, class Allocator&gt;
basic_ostream&lt;charT, io_traits&gt;&amp;
<A href="#o11">operator</A> &lt;&lt; (basic_ostream&lt;charT, io_traits&gt;&amp; os,
const basic_regex&lt;charT, re_traits, Allocator&gt;&amp; e);
template &lt;class charT, class traits, class Allocator&gt;
void <A href="#o12">swap</A>(basic_regex&lt;charT, traits, Allocator&gt;&amp; e1,
basic_regex&lt;charT, traits, Allocator&gt;&amp; e2);
typedef basic_regex&lt;char&gt; regex;
typedef basic_regex&lt;wchar_t&gt; wregex;
} // namespace boost
</pre>
<h3>Description</h3>
<p>Class&nbsp;<em>basic_regex</em> has the following public member functions:</p>
<h4>basic_regex constants</h4>
<pre>
static const regex_constants::syntax_option_type normal = regex_constants::normal;
static const regex_constants::syntax_option_type icase = regex_constants::icase;
static const regex_constants::syntax_option_type nosubs = regex_constants::nosubs;
static const regex_constants::syntax_option_type optimize = regex_constants::optimize;
static const regex_constants::syntax_option_type collate = regex_constants::collate;
static const regex_constants::syntax_option_type ECMAScript = normal;
static const regex_constants::syntax_option_type JavaScript = normal;
static const regex_constants::syntax_option_type JScript = normal;
static const regex_constants::syntax_option_type basic = regex_constants::basic;
static const regex_constants::syntax_option_type extended = regex_constants::extended;
static const regex_constants::syntax_option_type awk = regex_constants::awk;
static const regex_constants::syntax_option_type grep = regex_constants::grep;
static const regex_constants::syntax_option_type egrep = regex_constants::egrep;
static const regex_constants::syntax_option_type sed = basic = regex_constants::sed;
static const regex_constants::syntax_option_type perl = regex_constants::perl;
</pre>
<p>The static constant members are provided as synonyms for the constants declared
in namespace <code>boost::regex_constants</code>; for each constant of type <code><A href="syntax_option_type.html">
syntax_option_type</A></code> declared in namespace <code>boost::regex_constants</code>
then a constant with the same name, type and value is declared within the scope
of <code>basic_regex</code>.</p>
<h4>basic_regex constructors</h4>
<p>In all <code>basic_regex</code> constructors, a copy of the <code>Allocator</code>
argument is used for any memory allocation performed by the constructor or
member functions during the lifetime of the object.</p>
<pre>
basic_regex(const Allocator&amp; a = Allocator());
</pre>
<P><b>Effects:</b> Constructs an object of class <code>basic_regex</code>. The
postconditions of this function are indicated in the table:</P>
<div align="center">
<center>
<table id="Table2" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>true</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>0</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;()</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre> <A name=c2></A>basic_regex(const charT* p, flag_type f = regex_constants::normal, const Allocator&amp; a = Allocator());
</pre>
<P><b>Requires:</b> <i>p</i> shall not be a null pointer.</P>
<p><b>Throws:</b> <code>bad_expression</code> if <i>p</i> is not a valid regular
expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the null-terminated string <i>p</i>, and interpreted
according to the <a href="syntax_option_type.html">option flags</a>&nbsp;specified
in <i>f</i>. The postconditions of this function are indicated in the table:</p>
<div align="center">
<center>
<table id="Table3" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>char_traits&lt;charT&gt;::length(p)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;(p)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<PRE><A name=c3></A>basic_regex(const charT* p1, const charT* p2, flag_type f = regex_constants::normal, const Allocator&amp; a = Allocator());</PRE>
<p><b>Requires:</b> <i>p1</i> and <i>p2</i> are not null pointers, <code>p1 &lt; p2</code>.</p>
<p><b>Throws:</b> <code>bad_expression</code> if [p1,p2) is not a valid regular
expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the sequence of characters [p1,p2), and interpreted
according the <a href="syntax_option_type.html">option flags</a> specified in <i>f</i>.
The postconditions of this function are indicated in the table:</p>
<div align="center">
<center>
<table id="Table4" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>std::distance(p1,p2)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;(p1,p2)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre><A name=c4></A>
basic_regex(const charT* p, size_type len, flag_type f, const Allocator&amp; a = Allocator());
</pre>
<p><b>Requires:</b> <i>p</i> shall not be a null pointer, <code>len &lt; max_size()</code>.</p>
<p><b>Throws:</b> <code>bad_expression</code> if <i>p</i> is not a valid regular
expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the sequence of characters [p, p+len), and interpreted
according the <a href="syntax_option_type.html">option flags</a> specified in <i>f</i>.
The postconditions of this function are indicated in the table:</p>
<div align="center">
<center>
<table id="Table5" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>len</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;(p, len)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre><A name=c5></A>
basic_regex(const basic_regex&amp; e);
</pre>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code> as a
copy of the object <i>e</i>. The postconditions of this function are indicated
in the table:</p>
<div align="center">
<center>
<table id="Table6" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>e.empty()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>e.size()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>e.str()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>e.flags()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>e.mark_count()</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre>
template &lt;class ST, class SA&gt;
<A name=c6></A>
basic_regex(const basic_string&lt;charT, ST, SA&gt;&amp; s,
flag_type f = regex_constants::normal, const Allocator&amp; a = Allocator());
</pre>
<p><b>Throws:</b> <code>bad_expression</code> if <i>s</i> is not a valid regular
expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the string <i>s</i>, and interpreted according to the <a href="syntax_option_type.html">
option flags</a> specified in <i>f</i>. The postconditions of this function
are indicated in the table:</p>
<div align="center">
<center>
<table id="Table7" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>s.size()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>s</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre>
template &lt;class ForwardIterator&gt;
<A name=c7></A>
basic_regex(ForwardIterator first, ForwardIterator last,
flag_type f = regex_constants::normal, const Allocator&amp; a = Allocator());
</pre>
<p><b>Throws:</b> <code>bad_expression</code> if the sequence <i>[first, last)</i>
is not a valid regular expression.</p>
<p><b>Effects:</b> Constructs an object of class <code>basic_regex</code>; the
object's internal finite state machine is constructed from the regular
expression contained in the sequence of characters [first, last), and
interpreted according to the <a href="syntax_option_type.html">option flags</a>
specified in <i>f</i>. The postconditions of this function are indicated in the
table:</p>
<div align="center">
<center>
<table id="Table8" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>distance(first,last)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>basic_string&lt;charT&gt;(first,last)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre><A name=o1></A>
basic_regex&amp; operator=(const basic_regex&amp; e);
</pre>
<p><b>Effects:</b> Returns the result of <code>assign(e.str(), e.flags())</code>.</p>
<pre><A name=o2></A>
basic_regex&amp; operator=(const charT* ptr);
</pre>
<p><b>Requires:</b> <i>p</i> shall not be a null pointer.</p>
<p><b>Effects:</b> Returns the result of <code>assign(ptr)</code>.</p>
<pre><A name=o3></A>
template &lt;class ST, class SA&gt;
basic_regex&amp; operator=(const basic_string&lt;charT, ST, SA&gt;&amp; p);
</pre>
<p><b>Effects:</b> Returns the result of <code>assign(p)</code>.</p>
<h4>basic_regex iterators</h4>
<pre><A name=m1></A>
const_iterator begin() const;
</pre>
<p><b>Effects:</b> Returns a starting iterator to a sequence of characters
representing the regular expression.</p>
<pre><A name=m2></A>
const_iterator end() const;
</pre>
<p><b>Effects:</b> Returns termination iterator to a sequence of characters
representing the regular expression.</p>
<h4>basic_regex capacity</h4>
<pre><A name=m3></A>
size_type size() const;
</pre>
<p><b>Effects:</b> Returns the length of the sequence of characters representing
the regular expression.</p>
<pre><A name=m4></A>
size_type max_size() const;
</pre>
<p><b>Effects:</b> Returns the maximum length of the sequence of characters
representing the regular expression.</p>
<pre><A name=m5></A>
bool empty() const;
</pre>
<p><b>Effects:</b> Returns <b>true</b> if the object does not contain a valid
regular expression, otherwise <b>false</b>.</p>
<pre><A name=m6></A>unsigned mark_count() const;
</pre>
<p><b>Effects:</b> Returns the number of marked sub-expressions within the regular
expresion.</p>
<h4>basic_regex assign</h4>
<pre><A name=a1></A>
basic_regex&amp; assign(const basic_regex&amp; that);
</pre>
<p><b>Effects:</b> Returns <code>assign(that.str(), that.flags())</code>.</p>
<pre><A name=a2></A>
basic_regex&amp; assign(const charT* ptr, flag_type f = regex_constants::normal);
</pre>
<p><b>Effects:</b> Returns <code>assign(string_type(ptr), f)</code>.</p>
<PRE><A name=a3></A><A name=a3></A>basic_regex&amp; assign(const charT* ptr, unsigned int len, flag_type f);</PRE>
<P><B>Effects:</B> Returns <CODE>assign(string_type(ptr, len), f)</CODE>.</P>
<PRE><A name=a4></A>template &lt;class string_traits, class A&gt;
<A name=a6></A>basic_regex&amp; assign(const basic_string&lt;charT, string_traits, A&gt;&amp; s,
flag_type f = regex_constants::normal);
</PRE>
<p><b>Throws:</b> <code>bad_expression</code> if <i>s</i> is not a valid regular
expression.</p>
<p><b>Returns:</b> <code>*this</code>.</p>
<p><b>Effects:</b> Assigns the regular expression contained in the string <i>s</i>,
interpreted according the <a href="syntax_option_type.html">option flags</a> specified
in <i>f</i>. The postconditions of this function are indicated in the table:</p>
<div align="center">
<center>
<table id="Table9" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%">
<p><b>Element</b></p>
</td>
<td valign="top" width="50%">
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>size()</p>
</td>
<td valign="top" width="50%">
<p>s.size()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>str()</p>
</td>
<td valign="top" width="50%">
<p>s</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>flags()</p>
</td>
<td valign="top" width="50%">
<p>f</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>mark_count()</p>
</td>
<td valign="top" width="50%">
<p>The number of marked sub-expressions within the expression.</p>
</td>
</tr>
</tbody>
</table>
</center>
</div>
<pre>
</pre>
<pre><A name=a5></A>template &lt;class InputIterator&gt;
basic_regex&amp; assign(InputIterator first, InputIterator last,
flag_type f = regex_constants::normal);
</pre>
<p><b>Requires:</b> The type InputIterator corresponds to the Input Iterator
requirements (24.1.1).</p>
<p><b>Effects:</b> Returns <code>assign(string_type(first, last), f)</code>.</p>
<h4>basic_regex constant operations</h4>
<pre><A name=m7></A>Allocator get_allocator() const;
</pre>
<p><b>Effects:</b> Returns a copy of the Allocator that was passed to the object's
constructor.</p>
<pre><A name=m8></A>flag_type flags() const;
</pre>
<p><b>Effects:</b> Returns a copy of the regular expression syntax flags that were
passed to the object's constructor, or the last call to <code>assign.</code></p>
<pre><A name=m9></A>basic_string&lt;charT&gt; str() const;
</pre>
<p><b>Effects:</b> Returns a copy of the character sequence passed to the object's
constructor, or the last call to <code>assign.</code></p>
<pre><A name=m10></A>int compare(basic_regex&amp; e)const;
</pre>
<p><b>Effects:</b> If <code>flags() == e.flags()</code> then returns <code>str().compare(e.str())</code>,
otherwise returns <code>flags() - e.flags()</code>.</p>
<h4>basic_regex locale</h4>
<pre><A name=m11></A>locale_type imbue(locale_type l);
</pre>
<p><b>Effects:</b> Returns the result of <code>traits_inst.imbue(l)</code> where <code>
traits_inst</code> is a (default initialized) instance of the template
parameter <code>traits</code> stored within the object. Calls to imbue
invalidate any currently contained regular expression.</p>
<p><b>Postcondition:</b> <code>empty() == true</code>.</p>
<pre><A name=m12></A>
locale_type getloc() const;
</pre>
<p><b>Effects:</b> Returns the result of <code>traits_inst.getloc()</code> where <code>
traits_inst</code> is a (default initialized) instance of the template
parameter <code>traits</code> stored within the object.</p>
<h4>basic_regex swap</h4>
<pre><A name=m13></A>
void swap(basic_regex&amp; e) throw();
</pre>
<p><b>Effects:</b> Swaps the contents of the two regular expressions.</p>
<p><b>Postcondition:</b> <code>*this</code> contains the characters that were in <i>e</i>,
<i>e</i> contains the regular expression that was in <code>*this</code>.</p>
<p><b>Complexity:</b> constant time.</p>
<h4>basic_regex non-member functions</h4>
<h5>basic_regex non-member comparison operators&nbsp;</h5>
<P>Comparisons between basic_regex objects are provided on an experimental basis:
please note that these are likely to be removed from the standard library
proposal, so use with care if you are writing portable code.</P>
<pre><A name=o4></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator == (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) == 0</code>.</p>
<pre><A name=o5></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator != (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) != 0</code>.</p>
<pre><A name=o7></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator &lt; (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) &lt; 0</code>.</p>
<pre><A name=o8></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator &lt;= (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) &lt;= 0</code>.</p>
<pre><A name=o9></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator &gt;= (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) &gt;= 0</code>.</p>
<pre><A name=o10></A>
template &lt;class charT, class traits, class Allocator&gt;
bool operator &gt; (const basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
const basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> Returns <code>lhs.compare(rhs) &gt; 0</code>.</p>
<h5>basic_regex inserter.</h5>
<P>The basic_regex stream inserter is provided on an experimental basis, and
outputs the textual representation of the expression to the stream:</P>
<pre><A name=o11></A>
template &lt;class charT, class io_traits, class re_traits, class Allocator&gt;
basic_ostream&lt;charT, io_traits&gt;&amp;
operator &lt;&lt; (basic_ostream&lt;charT, io_traits&gt;&amp; os
const basic_regex&lt;charT, re_traits, Allocator&gt;&amp; e);
</pre>
<p><b>Effects:</b> Returns (os &lt;&lt; e.str()).</p>
<h5>basic_regex non-member swap</h5>
<pre><A name=o12></A>
template &lt;class charT, class traits, class Allocator&gt;
void swap(basic_regex&lt;charT, traits, Allocator&gt;&amp; lhs,
basic_regex&lt;charT, traits, Allocator&gt;&amp; rhs);
</pre>
<p><b>Effects:</b> calls <code>lhs.swap(rhs)</code>.</p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,250 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Understanding Captures</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<H2>Marked sub-expressions</H2>
<P>Every time a Perl regular expression contains a parenthesis group (), it spits
out an extra field, known as a marked sub-expression, for example the
expression:</P>
<PRE>(\w+)\W+(\w+)</PRE>
<P>
Has two marked sub-expressions (known as $1 and $2 respectively), in addition
the complete match is known as $&amp;, everything before the first match as $`,
and everything after the match as $'.&nbsp; So if the above expression is
searched for within "@abc def--", then we obtain:</P>
<BLOCKQUOTE dir="ltr" style="MARGIN-RIGHT: 0px">
<P>
<TABLE id="Table2" cellSpacing="1" cellPadding="1" width="300" border="0">
<TR>
<TD>
<P dir="ltr" style="MARGIN-RIGHT: 0px">$`</P>
</TD>
<TD>"@"</TD>
</TR>
<TR>
<TD>$&amp;</TD>
<TD>"abc def"</TD>
</TR>
<TR>
<TD>$1</TD>
<TD>"abc"</TD>
</TR>
<TR>
<TD>$2</TD>
<TD>"def"</TD>
</TR>
<TR>
<TD>$'</TD>
<TD>"--"</TD>
</TR>
</TABLE>
</P>
</BLOCKQUOTE>
<P>In Boost.regex all these are accessible via the <A href="match_results.html">match_results</A>
class that gets filled in when calling one of the matching algorithms (<A href="regex_search.html">regex_search</A>,
<A href="regex_match.html">regex_match</A>, or <A href="regex_iterator.html">regex_iterator</A>).&nbsp;
So given:</P>
<PRE>boost::match_results&lt;IteratorType&gt; m;</PRE>
<P>The Perl and Boost.Regex equivalents are as follows:</P>
<BLOCKQUOTE dir="ltr" style="MARGIN-RIGHT: 0px">
<P>
<TABLE id="Table3" cellSpacing="1" cellPadding="1" width="300" border="0">
<TR>
<TD><STRONG>Perl</STRONG></TD>
<TD><STRONG>Boost.Regex</STRONG></TD>
</TR>
<TR>
<TD>$`</TD>
<TD>m.prefix()</TD>
</TR>
<TR>
<TD>$&amp;</TD>
<TD>m[0]</TD>
</TR>
<TR>
<TD>$n</TD>
<TD>m[n]</TD>
</TR>
<TR>
<TD>$'</TD>
<TD>m.suffix()</TD>
</TR>
</TABLE>
</P>
</BLOCKQUOTE>
<P>
<P>In Boost.Regex each sub-expression match is represented by a <A href="sub_match.html">
sub_match</A> object, this is basically just a pair of iterators denoting
the start and end possition of the sub-expression match, but there are some
additional operators provided so that objects of type sub_match behave a lot
like a std::basic_string: for example they are implicitly <A href="sub_match.html#m3">
convertible to a basic_string</A>, they can be <A href="sub_match.html#o21">compared
to a string</A>, <A href="sub_match.html#o81">added to a string</A>, or <A href="sub_match.html#oi">
streamed out to an output stream</A>.</P>
<H2>Unmatched Sub-Expressions</H2>
<P>When a regular expression match is found there is no need for all of the marked
sub-expressions to have participated in the match, for example the expression:</P>
<P>(abc)|(def)</P>
<P>can match either $1 or $2, but never both at the same time.&nbsp; In
Boost.Regex you can determine which sub-expressions matched by accessing the <A href="sub_match.html#m1">
sub_match::matched</A> data member.</P>
<H2>Repeated Captures</H2>
<P>When a marked sub-expression is repeated, then the sub-expression gets
"captured" multiple times, however normally only the final capture is
available, for example if</P>
<PRE>(?:(\w+)\W+)+</PRE>
<P>is matched against</P>
<PRE>one fine day</PRE>
<P>Then $1 will contain the string "day", and all the previous captures will have
been forgotten.</P>
<P>However, Boost.Regex has an experimental feature that allows all the capture
information to be retained - this is accessed either via the <A href="match_results.html#m17">
match_results::captures</A> member function or the <A href="sub_match.html#m8">sub_match::captures</A>
member function.&nbsp; These functions return a container that contains a
sequence of all the captures obtained during the regular expression
matching.&nbsp; The following example program shows how this information may be
used:</P>
<PRE>#include &lt;boost/regex.hpp&gt;
#include &lt;iostream&gt;
void print_captures(const std::string&amp; regx, const std::string&amp; text)
{
boost::regex e(regx);
boost::smatch what;
std::cout &lt;&lt; "Expression: \"" &lt;&lt; regx &lt;&lt; "\"\n";
std::cout &lt;&lt; "Text: \"" &lt;&lt; text &lt;&lt; "\"\n";
if(boost::regex_match(text, what, e, boost::match_extra))
{
unsigned i, j;
std::cout &lt;&lt; "** Match found **\n Sub-Expressions:\n";
for(i = 0; i &lt; what.size(); ++i)
std::cout &lt;&lt; " $" &lt;&lt; i &lt;&lt; " = \"" &lt;&lt; what[i] &lt;&lt; "\"\n";
std::cout &lt;&lt; " Captures:\n";
for(i = 0; i &lt; what.size(); ++i)
{
std::cout &lt;&lt; " $" &lt;&lt; i &lt;&lt; " = {";
for(j = 0; j &lt; what.captures(i).size(); ++j)
{
if(j)
std::cout &lt;&lt; ", ";
else
std::cout &lt;&lt; " ";
std::cout &lt;&lt; "\"" &lt;&lt; what.captures(i)[j] &lt;&lt; "\"";
}
std::cout &lt;&lt; " }\n";
}
}
else
{
std::cout &lt;&lt; "** No Match found **\n";
}
}
int main(int , char* [])
{
print_captures("(([[:lower:]]+)|([[:upper:]]+))+", "aBBcccDDDDDeeeeeeee");
print_captures("(.*)bar|(.*)bah", "abcbar");
print_captures("(.*)bar|(.*)bah", "abcbah");
print_captures("^(?:(\\w+)|(?&gt;\\W+))*$", "now is the time for all good men to come to the aid of the party");
return 0;
}</PRE>
<P>Which produces the following output:</P>
<PRE>Expression: "(([[:lower:]]+)|([[:upper:]]+))+"
Text: "aBBcccDDDDDeeeeeeee"
** Match found **
Sub-Expressions:
$0 = "aBBcccDDDDDeeeeeeee"
$1 = "eeeeeeee"
$2 = "eeeeeeee"
$3 = "DDDDD"
Captures:
$0 = { "aBBcccDDDDDeeeeeeee" }
$1 = { "a", "BB", "ccc", "DDDDD", "eeeeeeee" }
$2 = { "a", "ccc", "eeeeeeee" }
$3 = { "BB", "DDDDD" }
Expression: "(.*)bar|(.*)bah"
Text: "abcbar"
** Match found **
Sub-Expressions:
$0 = "abcbar"
$1 = "abc"
$2 = ""
Captures:
$0 = { "abcbar" }
$1 = { "abc" }
$2 = { }
Expression: "(.*)bar|(.*)bah"
Text: "abcbah"
** Match found **
Sub-Expressions:
$0 = "abcbah"
$1 = ""
$2 = "abc"
Captures:
$0 = { "abcbah" }
$1 = { }
$2 = { "abc" }
Expression: "^(?:(\w+)|(?&gt;\W+))*$"
Text: "now is the time for all good men to come to the aid of the party"
** Match found **
Sub-Expressions:
$0 = "now is the time for all good men to come to the aid of the party"
$1 = "party"
Captures:
$0 = { "now is the time for all good men to come to the aid of the party" }
$1 = { "now", "is", "the", "time", "for", "all", "good", "men", "to", "come", "to", "the", "aid", "of", "the", "party" }
</PRE>
<P>Unfortunately enabling this feature has an impact on performance (even if you
don't use it), and a much bigger impact if you do use it, therefore to use this
feature you need to:</P>
<UL>
<LI>
Define BOOST_REGEX_MATCH_EXTRA for all translation units including the library
source (the best way to do this is to uncomment this define in <A href="../../../boost/regex/user.hpp">
boost/regex/user.hpp</A>
and then rebuild everything.
<LI>
Pass the <A href="match_flag_type.html">match_extra flag</A> to the particular
algorithms where you actually need the captures information (<A href="regex_search.html">regex_search</A>,
<A href="regex_match.html">regex_match</A>, or <A href="regex_iterator.html">regex_iterator</A>).
</LI>
</UL>
<P>
<HR>
<P></P>
<P></P>
<p>Revised&nbsp;
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
12&nbsp;Dec 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,225 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Configuration and setup</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Configuration and setup</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h2>Contents</h2>
<dl class="index">
<dt><a href="#compiler">Compiler setup</a></dt>
<dt><a href="#locale">Locale and traits class selection</a></dt>
<dt><a href="#linkage">Linkage Options</a></dt>
<dt><a href="#algorithm">Algorithm Selection</a></dt>
<dt><a href="#tuning">Algorithm Tuning</a></dt>
</dl>
<h3><a name="compiler"></a>Compiler setup.</h3>
<p>You shouldn't need to do anything special to configure
boost.regex for use with your compiler - the <a href="../../config/index.html">boost.config</a> subsystem should already
take care of it, if you do have problems (or you are using a
particularly obscure compiler or platform) then <a href="../../config/index.html">boost.config</a>&nbsp;has a&nbsp;<a href="../../config/config.htm#config_script">configure</a> script.</p>
<h3><a name="locale"></a>Locale and traits class selection.</h3>
<p>The following macros (see <a href="../../../boost/regex/user.hpp">user.hpp</a>) control how
boost.regex interacts with the user's locale:</p>
<table id="Table2" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td width="265">BOOST_REGEX_USE_C_LOCALE</td>
<td>Forces boost.regex to use the global C locale in its traits
class support: this is the default behavior on non-windows
platforms, but MS Windows platforms normally use the Win32 API for
locale support.</td>
</tr>
<tr>
<td width="265">BOOST_REGEX_USE_CPP_LOCALE</td>
<td>Forces boost.regex to use std::locale in it's default traits
class, regular expressions can then be imbued with an
instance&nbsp;specific locale.</td>
</tr>
<tr>
<td width="265">BOOST_REGEX_NO_W32</td>
<td>Tells boost.regex not to use any Win32 API's even when
available (implies BOOST_REGEX_USE_C_LOCALE unless
BOOST_REGEX_USE_CPP_LOCALE is set).</td>
</tr>
</table>
<br>
<br>
<h3><a name="linkage"></a>Linkage Options</h3>
<table id="Table3" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td>BOOST_REGEX_DYN_LINK</td>
<td>For Microsoft and Borland C++ builds, this tells boost.regex
that it should link to the dll build of the boost.regex.&nbsp; By
default boost.regex will link to its static library build, even if
the dynamic C runtime library is in use.</td>
</tr>
<tr>
<td>BOOST_REGEX_NO_LIB</td>
<td>For Microsoft and Borland C++ builds, this tells boost.regex
that it should not automatically select the library to link
to.</td>
</tr>
</table>
<br>
<br>
<h3><a name="algorithm"></a>Algorithm Selection</h3>
<table id="Table4" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td width="253">BOOST_REGEX_V3</td>
<td>Tells boost.regex to use the boost-1.30.0 matching algorithm,
define only if you need maximum compatibility with previous
behavior.</td>
</tr>
<tr>
<td width="253">BOOST_REGEX_RECURSIVE</td>
<td>Tells boost.regex to use a stack-recursive matching
algorithm.&nbsp; This is generally the fastest option (although
there is very little in it), but can cause stack overflow in
extreme cases, on Win32 this can be handled safely, but this is not
the case on other platforms.</td>
</tr>
<tr>
<td width="253">BOOST_REGEX_NON_RECURSIVE</td>
<td>Tells boost.regex to use a non-stack recursive matching
algorithm, this can be slightly slower than the alternative, but is
always safe no matter how pathological the regular
expression.&nbsp; This is the default on non-Win32 platforms.</td>
</tr>
</table>
<br>
<br>
<h3><a name="tuning"></a>Algorithm Tuning</h3>
<p>The following option applies only if BOOST_REGEX_RECURSIVE is
set.</p>
<table id="Table6" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td>BOOST_REGEX_HAS_MS_STACK_GUARD</td>
<td>Tells boost.regex that Microsoft style __try - __except blocks
are supported, and can be used to safely trap stack overflow.</td>
</tr>
</table>
<br>
<br>
<p>The following options apply only if BOOST_REGEX_NON_RECURSIVE is
set.</p>
<table id="Table5" cellspacing="1" cellpadding="1" width="100%"
border="1">
<tr>
<td>BOOST_REGEX_BLOCKSIZE</td>
<td>In non-recursive mode, boost.regex uses largish blocks of
memory to act as a stack for the state machine, the larger the
block size then the fewer allocations that will take place.&nbsp;
This defaults to 4096 bytes, which is large enough to match the
vast majority of regular expressions&nbsp;without further
allocations, however, you can choose smaller or larger values
depending upon your platforms characteristics.</td>
</tr>
<tr>
<td>BOOST_REGEX_MAX_BLOCKS</td>
<td>Tells boost.regex how many blocks of size BOOST_REGEX_BLOCKSIZE
it is permitted to use.&nbsp; If this value is exceeded then
boost.regex will stop trying to find a match and throw a
std::runtime_error.&nbsp; Defaults to 1024, don't forget to tweek
this value if you alter BOOST_REGEX_BLOCKSIZE by much.</td>
</tr>
<tr>
<td>BOOST_REGEX_MAX_CACHE_BLOCKS</td>
<td>Tells boost.regex how many memory blocks to store in it's
internal cache - memory blocks are taken from this cache rather
than by calling ::operator new.&nbsp; Generally speeking this can
be an order of magnitude faster than calling ::opertator new each
time a memory block is required, but has the downside that
boost.regex can end up caching a large chunk of memory (by default
up to 16 blocks each of BOOST_REGEX_BLOCKSIZE size).&nbsp; If
memory is tight then try defining this to 0 (disables all caching),
or if that is too slow, then a value of 1 or 2, may be
sufficient.&nbsp; On the other hand, on large multi-processor,
multi-threaded systems, you may find that a higher value is in
order.</td>
</tr>
</table>
<br>
<br>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,81 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Contacts</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Contacts and Acknowledgements</h2>
</td>
<td width="50">
<h3><a href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></a></h3>
</td>
</tr>
</table>
<BR>
<BR>
<HR>
<P>The author can be contacted at john@johnmaddock.co.uk;&nbsp;the
home page for this library is at <A href="http://www.boost.org">www.boost.org</A>.</P>
<P>I am indebted to Robert Sedgewick's "Algorithms in C++" for forcing me to think
about algorithms and their performance, and to the folks at boost for forcing
me to <I>think</I>, period. The following people have all contributed useful
comments or fixes: Dave Abrahams, Mike Allison, Edan Ayal, Jayashree
Balasubramanian, Jan B<>lsche, Beman Dawes, Paul Baxter, David Bergman, David
Dennerline, Edward Diener, Peter Dimov, Robert Dunn, Fabio Forno, Tobias
Gabrielsson, Rob Gillen, Marc Gregoire, Chris Hecker, Nick Hodapp, Jesse Jones,
Martin Jost, Boris Krasnovskiy, Jan Hermelink, Max Leung, Wei-hao Lin, Jens
Maurer, Richard Peters, Heiko Schmidt, Jason Shirk, Gerald Slacik, Scobie
Smith, Mike Smyth, Alexander Sokolovsky, Herv<72> Poirier, Michael Raykh, Marc
Recht, Scott VanCamp, Bruno Voigt, Alexey Voinov, Jerry Waldorf, Rob Ward,
Lealon Watts, Thomas Witt and Yuval Yosef. I am also grateful to the manuals
supplied with the Henry Spencer, Perl and GNU regular expression libraries -
wherever possible I have tried to maintain compatibility with these libraries
and with the POSIX standard - the code however is entirely my own, including
any bugs! I can absolutely guarantee that I will not fix any bugs I don't know
about, so if you have any comments or spot any bugs, please get in touch.</P>
<P>Useful further information can be found at:</P>
<P>Short&nbsp;tutorials on regular expressions can be <A href="http://etext.lib.virginia.edu/helpsheets/regex.html">
found here</A> and&nbsp;<A href="http://www.devshed.com/Server_Side/Administration/RegExp/page1.html">here</A>.</P>
<P>The main book on regular expressions is <A href="http://www.oreilly.com/catalog/regex/">
Mastering Regular Expressions, published by O'Reilly</A>.</P>
<P>Information on the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
Boost.regex standardization proposal</A>, along with other <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1475.html">
standard library extension proposals</A> can be found on the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/">
C++ Committees web pages</A>.</P>
<P>The<a href="http://www.opengroup.org/onlinepubs/7908799/toc.htm">Open Unix
Specification</a> contains a wealth of useful material, including the
regular expression syntax, and specifications for <a href="http://www.opengroup.org/onlinepubs/7908799/xsh/regex.h.html">
&lt;regex.h&gt;</a> and <a href="http://www.opengroup.org/onlinepubs/7908799/xsh/nl_types.h.html">
&lt;nl_types.h&gt;</a>.</P>
<p>The <a href="http://www.cs.ucr.edu/~stelo/pattern.html">Pattern Matching Pointers</a>
site is a "must visit" resource for anyone interested in pattern matching.</p>
<p><a href="http://glimpse.cs.arizona.edu/">Glimpse and Agrep</a>, use a
simplified regular expression syntax to achieve faster search times.</p>
<p><a href="http://glimpse.cs.arizona.edu/udi.html">Udi Manber</a> and <a href="http://www.dcc.uchile.cl/~rbaeza/">
Ricardo Baeza-Yates</a> both have a selection of useful pattern matching
papers available from their respective web sites.</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,95 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Examples</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Examples</h2>
</td>
<td width="50">
<h3><a href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></a></h3>
</td>
</tr>
</table>
<BR>
<BR>
<HR>
<P>There are three demo applications that ship with this library, they all come
with makefiles for Borland, Microsoft and gcc compilers, otherwise you will
have to create your own makefiles.</P>
<H5>regress.exe:</H5>
<P>A regression test application that gives the matching/searching algorithms a
full workout. The presence of this program is your guarantee that the library
will behave as claimed - at least as far as those items tested are concerned -
if anyone spots anything that isn't being tested I'd be glad to hear about it.</P>
<P>Files: <A href="../test/regress/parse.cpp">parse.cpp</A>, <A href="../test/regress/regress.cpp">
regress.cpp</A>, <A href="../test/regress/tests.cpp">tests.cpp</A>.</P>
<H5>jgrep.exe</H5>
<P>A simple grep implementation, run with no command line options to find out its
usage. Look at <A href="../src/fileiter.cpp">fileiter.cpp</A>/fileiter.hpp and
the mapfile class to see an example of a "smart" bidirectional iterator that
can be used with boost.regex or any other STL algorithm.</P>
<P>Files: <A href="../example/jgrep/jgrep.cpp">jgrep.cpp</A>, <A href="../example/jgrep/main.cpp">
main.cpp</A>.</P>
<H5>timer.exe</H5>
<P>A simple interactive expression matching application, the results of all
matches are timed, allowing the programmer to optimize their regular
expressions where performance is critical.</P>
<P>Files: <A href="../example/timer/regex_timer.cpp">regex_timer.cpp</A>.</P>
<H5>Code snippets</H5>
<P>The snippets examples contain the code examples used in the documentation:</P>
<P><A href="../example/snippets/credit_card_example.cpp">credit_card_example.cpp</A>:
Credit card number formatting code.</P>
<P><A href="../example/snippets/partial_regex_grep.cpp">partial_regex_grep.cpp</A>:
Search example using partial matches.</P>
<P><A href="../example/snippets/partial_regex_match.cpp">partial_regex_match.cpp</A>:
regex_match example using partial matches.</P>
<P><A href="../example/snippets/regex_grep_example_1.cpp">regex_grep_example_1.cpp</A>:
regex_grep example 1: searches a cpp file for class definitions.</P>
<P><A href="../example/snippets/regex_grep_example_2.cpp">regex_grep_example_2.cpp</A>:
regex_grep example 2: searches a cpp file for class definitions, using a global
callback function.</P>
<P><A href="../example/snippets/regex_grep_example_3.cpp">regex_grep_example_3.cpp</A>:
regex_grep example 2: searches a cpp file for class definitions, using a bound
member function callback.</P>
<P><A href="../example/snippets/regex_grep_example_4.cpp">regex_grep_example_4.cpp</A>:
regex_grep example 2: searches a cpp file for class definitions, using a C++
Builder closure as a callback.</P>
<P><A href="../example/snippets/regex_match_example.cpp">regex_match_example.cpp</A>:
ftp based regex_match example.</P>
<P><A href="../example/snippets/regex_merge_example.cpp">regex_merge_example.cpp</A>:
regex_merge example: converts a C++ file to syntax highlighted HTML.</P>
<P><A href="../example/snippets/regex_replace_example.cpp">regex_replace_example.cpp</A>:
regex_replace example: converts a C++ file to syntax highlighted HTML</P>
<P><A href="../example/snippets/regex_search_example.cpp">regex_search_example.cpp</A>:
regex_search example: searches a cpp file for class definitions.</P>
<P><A href="../example/snippets/regex_split_example_1.cpp">regex_split_example_1.cpp</A>:
regex_split example: split a string into tokens.</P>
<P><A href="../example/snippets/regex_split_example_2.cpp">regex_split_example_2.cpp</A>
: regex_split example: spit out linked URL's.</P>
<P></P>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,153 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: FAQ</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">FAQ</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<font color="#ff0000"><font color="#ff0000"></font></font>
<p><font color="#ff0000"><font color="#ff0000"><font color=
"#ff0000">&nbsp;Q. Why can't I use the "convenience" versions of
regex_match / regex_search / regex_grep / regex_format /
regex_merge?</font></font></font></p>
<p>A. These versions may or may not be available depending upon the
capabilities of your compiler, the rules determining the format of
these functions are quite complex - and only the versions visible
to a standard compliant compiler are given in the help. To find out
what your compiler supports, run &lt;boost/regex.hpp&gt; through
your C++ pre-processor, and search the output file for the function
that you are interested in.<font color="#ff0000"><font color=
"#ff0000"></font></font></p>
<p><font color="#ff0000"><font color="#ff0000">Q. I can't get
regex++ to work with escape characters, what's going
on?</font></font></p>
<p>A. If you embed regular expressions in C++ code, then remember
that escape characters are processed twice: once by the C++
compiler, and once by the regex++ expression compiler, so to pass
the regular expression \d+ to regex++, you need to embed "\\d+" in
your code. Likewise to match a literal backslash you will need to
embed "\\\\" in your code. <font color="#ff0000"></font></p>
<p><font color="#ff0000">Q. Why does using parenthesis in a POSIX
regular expression change the result of a match?</font></p>
<p>For POSIX (extended and basic) regular expressions, but not for
perl regexes, parentheses don't only mark; they determine what the
best match is as well. When the expression is compiled as a POSIX
basic or extended regex then Boost.regex follows the POSIX standard
leftmost longest rule for determining what matched. So if there is
more than one possible match after considering the whole
expression, it looks next at the first sub-expression and then the
second sub-expression and so on. So...</p>
<pre>
"(0*)([0-9]*)" against "00123" would produce
$1 = "00"
$2 = "123"
</pre>
<p>where as</p>
<pre>
"0*([0-9)*" against "00123" would produce
$1 = "00123"
</pre>
<p>If you think about it, had $1 only matched the "123", this would
be "less good" than the match "00123" which is both further to the
left and longer. If you want $1 to match only the "123" part, then
you need to use something like:</p>
<pre>
"0*([1-9][0-9]*)"
</pre>
<p>as the expression.</p>
<p><font color="#ff0000">Q. Why don't character ranges work
properly (POSIX mode only)?</font><br>
A. The POSIX standard specifies that character range expressions
are locale sensitive - so for example the expression [A-Z] will
match any collating element that collates between 'A' and 'Z'. That
means that for most locales other than "C" or "POSIX", [A-Z] would
match the single character 't' for example, which is not what most
people expect - or at least not what most people have come to
expect from regular expression engines. For this reason, the
default behaviour of boost.regex (perl mode) is to turn locale
sensitive collation off by not setting the regex_constants::collate
compile time flag. However if you set a non-default compile time
flag - for example regex_constants::extended or
regex_constants::basic, then locale dependent collation will be
enabled, this also applies to the POSIX API functions which use
either regex_constants::extended or regex_constants::basic
internally. <i>[Note - when regex_constants::nocollate in effect,
the library behaves "as if" the LC_COLLATE locale category were
always "C", regardless of what its actually set to - end
note</i>].</p>
<p><font color="#ff0000">Q. Why are there no throw specifications
on any of the functions? What exceptions can the library
throw?</font></p>
<p>A. Not all compilers support (or honor) throw specifications,
others support them but with reduced efficiency. Throw
specifications may be added at a later date as compilers begin to
handle this better. The library should throw only three types of
exception: boost::bad_expression can be thrown by basic_regex when
compiling a regular expression, std::runtime_error can be thrown
when a call to basic_regex::imbue tries to open a message catalogue
that doesn't exist, or when a call to regex_search or regex_match
results in an "everlasting" search,&nbsp;or when a call to
RegEx::GrepFiles or RegEx::FindFiles tries to open a file that
cannot be opened, finally std::bad_alloc can be thrown by just
about any of the functions in this library.</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,263 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: Format String Syntax</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Format String Syntax</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>Format strings are used by the algorithm <a href="regex_replace.html">regex_replace</a>&nbsp;and by <a
href="match_results.html">match_results::format</a>, and are used
to transform one string into another.</p>
<p>There are three kind of format string: sed, Perl and extended,
the extended syntax is a superset of the others so this is covered
first.</p>
<p><b><i>Extended format syntax</i></b></p>
<p>In format strings, all characters are treated as literals
except: ()$\?:</p>
<p>To use any of these as literals you must prefix them with the
escape character \</p>
<p>The following special sequences are recognized:&nbsp;<br>
&nbsp;<br>
<i>Grouping:</i></p>
<p>Use the parenthesis characters ( and ) to group sub-expressions
within the format string, use \( and \) to represent literal '('
and ')'.&nbsp;<br>
&nbsp;<br>
<i>Sub-expression expansions:</i></p>
<p>The following Perl like expressions expand to a particular
matched sub-expression:<br>
&nbsp;</p>
<p></p>
<table id="Table2" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$`</td>
<td valign="top" width="43%">Expands to all the text from the end
of the previous match to the start of the current match, if there
was no previous match in the current operation, then everything
from the start of the input string to the start of the match.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$'</td>
<td valign="top" width="43%">Expands to all the text from the end
of the match to the end of the input string.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$&amp;</td>
<td valign="top" width="43%">Expands to all of the current
match.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$0</td>
<td valign="top" width="43%">Expands to all of the current
match.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">$N</td>
<td valign="top" width="43%">Expands to the text that matched
sub-expression <i>N</i>.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
</table>
<br>
<br>
<p><i>Conditional expressions:</i></p>
<p>Conditional expressions allow two different format strings to be
selected dependent upon whether a sub-expression participated in
the match or not:</p>
<p>?Ntrue_expression:false_expression</p>
<p>Executes true_expression if sub-expression <i>N</i> participated
in the match, otherwise executes false_expression.</p>
<p>Example: suppose we search for "(while)|(for)" then the format
string "?1WHILE:FOR" would output what matched, but in upper
case.&nbsp;<br>
&nbsp;<br>
<i>Escape sequences:</i></p>
<p>The following escape sequences are also allowed:<br>
</p>
<p></p>
<table id="Table3" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\a</td>
<td valign="top" width="43%">The bell character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\f</td>
<td valign="top" width="43%">The form feed character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\n</td>
<td valign="top" width="43%">The newline character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\r</td>
<td valign="top" width="43%">The carriage return character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\t</td>
<td valign="top" width="43%">The tab character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\v</td>
<td valign="top" width="43%">A vertical tab character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\x</td>
<td valign="top" width="43%">A hexadecimal character - for example
\x0D.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\x{}</td>
<td valign="top" width="43%">A possible Unicode hexadecimal
character - for example \x{1A0}</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\cx</td>
<td valign="top" width="43%">The ASCII escape character x, for
example \c@ is equivalent to escape-@.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\e</td>
<td valign="top" width="43%">The ASCII escape character.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="8%">&nbsp;</td>
<td valign="top" width="40%">\dd</td>
<td valign="top" width="43%">An octal character constant, for
example \10.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
</table>
<br>
<br>
<p><b><i>Perl format strings</i></b></p>
<p>Perl format strings are the same as the default syntax except
that the characters ()?: have no special meaning.</p>
<p><b><i>Sed format strings</i></b></p>
<p>Sed format strings use only the characters \ and &amp; as
special characters.</p>
<p>\n where n is a digit, is expanded to the nth
sub-expression.</p>
<p>&amp; is expanded to the whole of the match (equivalent to
\0).</p>
<p>Other escape sequences are expanded as per the default
syntax.</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,539 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>Regular Expression Performance Comparison (gcc 3.2)</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<META content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot" name="Template">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
</head>
<body bgcolor="#ffffff" link="#0000ff" vlink="#800080">
<h2>Regular Expression Performance Comparison</h2>
<p>The following tables provide comparisons between the following regular
expression libraries:</p>
<p><a href="http://www.boost.org/">The Boost regex library</a>.</p>
<p><a href="http://www.gnu.org">The GNU regular expression library</a>.</p>
<p>Philip Hazel's <a href="http://www.pcre.org">PCRE</a> library.</p>
<h3>Details</h3>
<p>Machine: Intel Pentium 4 2.8GHz PC.</p>
<p>Compiler: GNU C++ version 3.2 20020927 (prerelease).</p>
<p>C++ Standard Library: GNU libstdc++ version 20020927.</p>
<p>OS: Cygwin.</p>
<p>Boost version: 1.31.0.</p>
<p>PCRE version: 4.1.</p>
<p>As ever care should be taken in interpreting the results, only sensible regular
expressions (rather than pathological cases) are given, most are taken from the
Boost regex examples, or from the <a href="http://www.regxlib.com/">Library of
Regular Expressions</a>. In addition, some variation in the relative
performance of these libraries can be expected on other machines - as memory
access and processor caching effects can be quite large for most finite state
machine algorithms. In each case the first figure given is the relative time
taken (so a value of 1.0 is as good as it gets), while the second figure is the
actual time taken.</p>
<h3>Averages</h3>
<p>The following are the average relative scores for all the tests: the perfect
regular expression library&nbsp;would score 1, in practice anything less than 2
is pretty good.</p>
<table border="1" cellspacing="1">
<tr>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td>1.4503</td>
<td>1.49124</td>
<td>108.372</td>
<td>1.56255</td>
</tr>
</table>
<br>
<br>
<h3>Comparison 1: Long Search</h3>
<p>For each of the following regular expressions the time taken to find all
occurrences of the expression within a long English language text was measured
(<a href="ftp://ibiblio.org/pub/docs/books/gutenberg/etext02/mtent12.zip">mtent12.txt</a>
from <a href="http://promo.net/pg/">Project Gutenberg</a>, 19Mb).&nbsp;</p>
<table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code>Twain</code></td>
<td>3.49<br>
(0.205s)</td>
<td>4.09<br>
(0.24s)</td>
<td>65.2<br>
(3.83s)</td>
<td><font color="#008000">1<br>
(0.0588s)</font></td>
</tr>
<tr>
<td><code>Huck[[:alpha:]]+</code></td>
<td>3.86<br>
(0.203s)</td>
<td>4.52<br>
(0.238s)</td>
<td>100<br>
(5.26s)</td>
<td><font color="#008000">1<br>
(0.0526s)</font></td>
</tr>
<tr>
<td><code>[[:alpha:]]+ing</code></td>
<td><font color="#008000">1.01<br>
(1.23s)</font></td>
<td><font color="#008000">1<br>
(1.22s)</font></td>
<td>4.95<br>
(6.04s)</td>
<td>4.67<br>
(5.71s)</td>
</tr>
<tr>
<td><code>^[^ ]*?Twain</code></td>
<td><font color="#008000">1<br>
(0.31s)</font></td>
<td><font color="#008000">1.05<br>
(0.326s)</font></td>
<td>NA</td>
<td>3.32<br>
(1.03s)</td>
</tr>
<tr>
<td><code>Tom|Sawyer|Huckleberry|Finn</code></td>
<td><font color="#008000">1.02<br>
(0.125s)</font></td>
<td><font color="#008000">1<br>
(0.123s)</font></td>
<td>165<br>
(20.3s)</td>
<td><font color="#008000">1.08<br>
(0.133s)</font></td>
</tr>
<tr>
<td><code> (Tom|Sawyer|Huckleberry|Finn).{0,30}river|river.{0,30}(Tom|Sawyer|Huckleberry|Finn)</code></td>
<td><font color="#008000">1<br>
(0.345s)</font></td>
<td><font color="#008000">1.03<br>
(0.355s)</font></td>
<td>NA</td>
<td>1.71<br>
(0.59s)</td>
</tr>
</table>
<br>
<br>
<h3>Comparison 2: Medium Sized Search</h3>
<p>For each of the following regular expressions the time taken to find all
occurrences of the expression within a medium sized English language text was
measured (the first 50K from mtent12.txt).&nbsp;</p>
<table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code>Twain</code></td>
<td>1.8<br>
(0.000519s)</td>
<td>2.14<br>
(0.000616s)</td>
<td>9.08<br>
(0.00262s)</td>
<td><font color="#008000">1<br>
(0.000289s)</font></td>
</tr>
<tr>
<td><code>Huck[[:alpha:]]+</code></td>
<td>3.65<br>
(0.000499s)</td>
<td>4.36<br>
(0.000597s)</td>
<td><font color="#008000">1<br>
(0.000137s)</font></td>
<td>1.43<br>
(0.000196s)</td>
</tr>
<tr>
<td><code>[[:alpha:]]+ing</code></td>
<td><font color="#008000">1<br>
(0.00258s)</font></td>
<td><font color="#008000">1<br>
(0.00258s)</font></td>
<td>5.28<br>
(0.0136s)</td>
<td>5.63<br>
(0.0145s)</td>
</tr>
<tr>
<td><code>^[^ ]*?Twain</code></td>
<td><font color="#008000">1<br>
(0.000929s)</font></td>
<td><font color="#008000">1.03<br>
(0.000957s)</font></td>
<td>NA</td>
<td>2.82<br>
(0.00262s)</td>
</tr>
<tr>
<td><code>Tom|Sawyer|Huckleberry|Finn</code></td>
<td><font color="#008000">1<br>
(0.000812s)</font></td>
<td><font color="#008000">1<br>
(0.000812s)</font></td>
<td>60.1<br>
(0.0488s)</td>
<td>1.28<br>
(0.00104s)</td>
</tr>
<tr>
<td><code> (Tom|Sawyer|Huckleberry|Finn).{0,30}river|river.{0,30}(Tom|Sawyer|Huckleberry|Finn)</code></td>
<td><font color="#008000">1.02<br>
(0.00178s)</font></td>
<td><font color="#008000">1<br>
(0.00174s)</font></td>
<td>242<br>
(0.421s)</td>
<td>1.3<br>
(0.00227s)</td>
</tr>
</table>
<br>
<br>
<h3>Comparison 3:&nbsp;C++ Code&nbsp;Search</h3>
<p>For each of the following regular expressions the time taken to find all
occurrences of the expression within the C++ source file <a href="../../../boost/crc.hpp">
boost/crc.hpp</a>&nbsp;was measured.&nbsp;</p>
<table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code> ^(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?(class|struct)[[:space:]]*(\&lt;\w+\&gt;([
]*\([^)]*\))?[[:space:]]*)*(\&lt;\w*\&gt;)[[:space:]]*(&lt;[^;:{]+&gt;[[:space:]]*)?(\{|:[^;\{()]*\{)</code></td>
<td><font color="#008000">1.04<br>
(0.000144s)</font></td>
<td><font color="#008000">1<br>
(0.000139s)</font></td>
<td>862<br>
(0.12s)</td>
<td>4.56<br>
(0.000636s)</td>
</tr>
<tr>
<td><code>(^[
]*#(?:[^\\\n]|\\[^\n_[:punct:][:alnum:]]*[\n[:punct:][:word:]])*)|(//[^\n]*|/\*.*?\*/)|\&lt;([+-]?(?:(?:0x[[:xdigit:]]+)|(?:(?:[[:digit:]]*\.)?[[:digit:]]+(?:[eE][+-]?[[:digit:]]+)?))u?(?:(?:int(?:8|16|32|64))|L)?)\&gt;|('(?:[^\\']|\\.)*'|"(?:[^\\"]|\\.)*")|\&lt;(__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|bool|break|case|catch|cdecl|char|class|const|const_cast|continue|default|delete|do|double|dynamic_cast|else|enum|explicit|extern|false|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|operator|pascal|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_cast|struct|switch|template|this|throw|true|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\&gt;</code></td>
<td><font color="#008000">1<br>
(0.0139s)</font></td>
<td><font color="#008000">1.01<br>
(0.0141s)</font></td>
<td>NA</td>
<td>1.55<br>
(0.0216s)</td>
</tr>
<tr>
<td><code>^[ ]*#[ ]*include[ ]+("[^"]+"|&lt;[^&gt;]+&gt;)</code></td>
<td><font color="#008000">1.04<br>
(0.000332s)</font></td>
<td><font color="#008000">1<br>
(0.000318s)</font></td>
<td>130<br>
(0.0413s)</td>
<td>1.72<br>
(0.000547s)</td>
</tr>
<tr>
<td><code>^[ ]*#[ ]*include[ ]+("boost/[^"]+"|&lt;boost/[^&gt;]+&gt;)</code></td>
<td><font color="#008000">1.02<br>
(0.000323s)</font></td>
<td><font color="#008000">1<br>
(0.000318s)</font></td>
<td>150<br>
(0.0476s)</td>
<td>1.72<br>
(0.000547s)</td>
</tr>
</table>
<br>
<h3></h3>
<H3>Comparison 4: HTML Document Search
</H3>
<p>For each of the following regular expressions the time taken to find all
occurrences of the expression within the html file <a href="../../libraries.htm">libs/libraries.htm</a>
was measured.&nbsp;</p>
<table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code>beman|john|dave</code></td>
<td><font color="#008000">1.03<br>
(0.000367s)</font></td>
<td><font color="#008000">1<br>
(0.000357s)</font></td>
<td>47.4<br>
(0.0169s)</td>
<td>1.16<br>
(0.000416s)</td>
</tr>
<tr>
<td><code>&lt;p&gt;.*?&lt;/p&gt;</code></td>
<td>1.25<br>
(0.000459s)</td>
<td><font color="#008000">1<br>
(0.000367s)</font></td>
<td>NA</td>
<td><font color="#008000">1.03<br>
(0.000376s)</font></td>
</tr>
<tr>
<td><code> &lt;a[^&gt;]+href=("[^"]*"|[^[:space:]]+)[^&gt;]*&gt;</code></td>
<td><font color="#008000">1<br>
(0.000509s)</font></td>
<td><font color="#008000">1.02<br>
(0.000518s)</font></td>
<td>305<br>
(0.155s)</td>
<td><font color="#008000">1.1<br>
(0.000558s)</font></td>
</tr>
<tr>
<td><code> &lt;h[12345678][^&gt;]*&gt;.*?&lt;/h[12345678]&gt;</code></td>
<td><font color="#008000">1.04<br>
(0.00025s)</font></td>
<td><font color="#008000">1<br>
(0.00024s)</font></td>
<td>NA</td>
<td>1.16<br>
(0.000279s)</td>
</tr>
<tr>
<td><code> &lt;img[^&gt;]+src=("[^"]*"|[^[:space:]]+)[^&gt;]*&gt;</code></td>
<td>2.22<br>
(0.000489s)</td>
<td>1.69<br>
(0.000372s)</td>
<td>148<br>
(0.0326s)</td>
<td><font color="#008000">1<br>
(0.00022s)</font></td>
</tr>
<tr>
<td><code> &lt;font[^&gt;]+face=("[^"]*"|[^[:space:]]+)[^&gt;]*&gt;.*?&lt;/font&gt;</code></td>
<td>1.71<br>
(0.000371s)</td>
<td>1.75<br>
(0.000381s)</td>
<td>NA</td>
<td><font color="#008000">1<br>
(0.000218s)</font></td>
</tr>
</table>
<br>
<br>
<h3>Comparison 3: Simple Matches</h3>
<p>For each of the following regular expressions the time taken to match against
the text indicated was measured.&nbsp;</p>
<table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>Text</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code>abc</code></td>
<td>abc</td>
<td>1.36<br>
(2.15e-07s)</td>
<td>1.36<br>
(2.15e-07s)</td>
<td>2.76<br>
(4.34e-07s)</td>
<td><font color="#008000">1<br>
(1.58e-07s)</font></td>
</tr>
<tr>
<td><code>^([0-9]+)(\-| |$)(.*)$</code></td>
<td>100- this is a line of ftp response which contains a message string</td>
<td>1.55<br>
(7.26e-07s)</td>
<td>1.51<br>
(7.07e-07s)</td>
<td>319<br>
(0.000149s)</td>
<td><font color="#008000">1<br>
(4.67e-07s)</font></td>
</tr>
<tr>
<td><code>([[:digit:]]{4}[- ]){3}[[:digit:]]{3,4}</code></td>
<td>1234-5678-1234-456</td>
<td>1.96<br>
(9.54e-07s)</td>
<td>1.96<br>
(9.54e-07s)</td>
<td>44.5<br>
(2.17e-05s)</td>
<td><font color="#008000">1<br>
(4.87e-07s)</font></td>
</tr>
<tr>
<td><code> ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$</code></td>
<td>john@johnmaddock.co.uk</td>
<td>1.22<br>
(1.51e-06s)</td>
<td>1.23<br>
(1.53e-06s)</td>
<td>162<br>
(0.000201s)</td>
<td><font color="#008000">1<br>
(1.24e-06s)</font></td>
</tr>
<tr>
<td><code> ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$</code></td>
<td>foo12@foo.edu</td>
<td>1.28<br>
(1.47e-06s)</td>
<td>1.3<br>
(1.49e-06s)</td>
<td>104<br>
(0.00012s)</td>
<td><font color="#008000">1<br>
(1.15e-06s)</font></td>
</tr>
<tr>
<td><code> ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$</code></td>
<td>bob.smith@foo.tv</td>
<td>1.28<br>
(1.47e-06s)</td>
<td>1.3<br>
(1.49e-06s)</td>
<td>113<br>
(0.00013s)</td>
<td><font color="#008000">1<br>
(1.15e-06s)</font></td>
</tr>
<tr>
<td><code>^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$</code></td>
<td>EH10 2QQ</td>
<td>1.38<br>
(4.68e-07s)</td>
<td>1.41<br>
(4.77e-07s)</td>
<td>13.5<br>
(4.59e-06s)</td>
<td><font color="#008000">1<br>
(3.39e-07s)</font></td>
</tr>
<tr>
<td><code>^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$</code></td>
<td>G1 1AA</td>
<td>1.28<br>
(4.35e-07s)</td>
<td>1.25<br>
(4.25e-07s)</td>
<td>11.7<br>
(3.97e-06s)</td>
<td><font color="#008000">1<br>
(3.39e-07s)</font></td>
</tr>
<tr>
<td><code>^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$</code></td>
<td>SW1 1ZZ</td>
<td>1.32<br>
(4.53e-07s)</td>
<td>1.31<br>
(4.49e-07s)</td>
<td>12.2<br>
(4.2e-06s)</td>
<td><font color="#008000">1<br>
(3.44e-07s)</font></td>
</tr>
<tr>
<td><code> ^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$</code></td>
<td>4/1/2001</td>
<td>1.16<br>
(3.82e-07s)</td>
<td>1.2<br>
(3.96e-07s)</td>
<td>13.9<br>
(4.59e-06s)</td>
<td><font color="#008000">1<br>
(3.29e-07s)</font></td>
</tr>
<tr>
<td><code> ^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$</code></td>
<td>12/12/2001</td>
<td>1.38<br>
(4.49e-07s)</td>
<td>1.38<br>
(4.49e-07s)</td>
<td>16<br>
(5.2e-06s)</td>
<td><font color="#008000">1<br>
(3.25e-07s)</font></td>
</tr>
<tr>
<td><code>^[-+]?[[:digit:]]*\.?[[:digit:]]*$</code></td>
<td>123</td>
<td>1.19<br>
(7.64e-07s)</td>
<td>1.16<br>
(7.45e-07s)</td>
<td>7.51<br>
(4.81e-06s)</td>
<td><font color="#008000">1<br>
(6.4e-07s)</font></td>
</tr>
<tr>
<td><code>^[-+]?[[:digit:]]*\.?[[:digit:]]*$</code></td>
<td>+3.14159</td>
<td>1.32<br>
(8.97e-07s)</td>
<td>1.31<br>
(8.88e-07s)</td>
<td>14<br>
(9.48e-06s)</td>
<td><font color="#008000">1<br>
(6.78e-07s)</font></td>
</tr>
<tr>
<td><code>^[-+]?[[:digit:]]*\.?[[:digit:]]*$</code></td>
<td>-3.14159</td>
<td>1.32<br>
(8.97e-07s)</td>
<td>1.31<br>
(8.88e-07s)</td>
<td>14<br>
(9.48e-06s)</td>
<td><font color="#008000">1<br>
(6.78e-07s)</font></td>
</tr>
</table>
<br>
<br>
<hr>
<p>Copyright John Maddock April 2003, all rights reserved.</p>
</body>
</html>

View File

@ -1,50 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Headers</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Headers</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>There are two main headers used by this library: &lt;boost/regex.hpp&gt;
provides full access to the entire library, while &lt;boost/cregex.hpp&gt;
provides access to just the high level class RegEx, and the POSIX API
functions.
</P>
<P>There is also a header containing only forward declarations
&lt;boost/regex_fwd.hpp&gt; for use when an interface is dependent upon
boost::basic_regex, but otherwise does not need the full definitions.</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,68 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: History</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">History</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Boost 1.31.0.</P>
<UL>
<LI>
Completely rewritten pattern matching code - it is now up to 10 times faster
than before.
<LI>
Reorganized documentation.
<LI>
Deprecated all interfaces that are not part of the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</A>.
<LI>
Added <A href="regex_iterator.html">regex_iterator</A> and <A href="regex_token_iterator.html">
regex_token_iterator</A>
.
<LI>
Added support for Perl style independent sub-expressions.
<LI>
Added non-member operators to the<A href="sub_match.html"> sub_match class</A>,
so that you can compare sub_match's with strings, or add them to a string to
produce a new string.
<LI>
Added experimental support for <A href="captures.html">extended capture
information</A>.
<LI>
Changed the match flags so that they are a distinct type (not an integer), if
you try to pass the match flags as an integer rather than<A href="match_flag_type.html">
match_flag_type</A> to the regex algorithms then you will now get a compiler
error.</LI></UL>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
22 Dec 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,43 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Implementation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Implementation</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Todo.</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,124 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td style="WIDTH: 353px">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Index</h2>
</td>
<td width="50">
<h3><a href="../../index.html"><img height="45" width="43" alt="Boost Libraries Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h2>Contents</h2>
<dl class="index">
<dt><a href="introduction.html">Overview</a></dt>
<dt><a href="configuration.html">Configuration and setup</a></dt>
<dt><a href="install.html">Installation</a></dt>
<dd>
<dl class="index">
<dt><a href="install.html#bcb">Borland C++ Builder</a></dt> <dt><a href="install.html#vc">
Microsoft Visual C++</a></dt> <dt><a href="install.html#gcc">GNU G++</a></dt>
<dt><a href="install.html#sun">Sun Forte Compiler</a></dt> <dt><a href="install.html#other">
Other compilers (building with bjam)</a></dt>
</dl>
</dd>
<dt>Reference</dt>
<dd>
<dl class="index">
<dt>Types</dt>
<dd>
<dl class="index">
<dt><a href="syntax_option_type.html">syntax_option_type</a></dt> <dt><a href="match_flag_type.html">
match_flag_type</a></dt> <dt><a href="bad_expression.html">class bad_expression</a></dt>
<dt><a href="regex_traits.html">class regex_traits</a></dt> <dt><a href="basic_regex.html">
class template basic_regex</a></dt> <dt><a href="sub_match.html">class template
sub_match</a></dt> <dt><a href="match_results.html">class template
match_results</a></dt>
</dl>
</dd>
<dt>Algorithms</dt>
<dd>
<dl class="index">
<dt><a href="regex_match.html">regex_match</a></dt> <dt><a href="regex_search.html">regex_search</a></dt>
<dt><a href="regex_replace.html">regex_replace</a></dt>
</dl>
</dd>
<dt>Iterators</dt>
<dd>
<dl class="index">
<dt><a href="regex_iterator.html">regex_iterator</a></dt>
<dt><a href="regex_token_iterator.html">regex_token_iterator</a></dt>
</dl>
</dd>
<dt>Misc.</dt>
<dd>
<dl class="index">
<dt><a href="posix_api.html">POSIX API Compatibility Functions</a></dt>
<dt><a href="partial_matches.html">Partial matches</a></dt>
<dt><a href="syntax.html">Regular Expression Syntax</a></dt>
<dt><a href="format_syntax.html">Format String Syntax</a></dt>
<dt><a href="captures.html">Understanding Captures</a></dt>
</dl>
</dd>
<dt>Deprecated interfaces</dt>
<dd>
<dl class="index">
<dt><a href="regbase.html">class regbase</a></dt> <dt><a href="reg_expression.html">class
template reg_expression</a></dt> <dt><a href="regex_grep.html">Algorithm
regex_grep</a></dt> <dt><a href="regex_format.html">Algorithm regex_format</a></dt>
<dt><a href="regex_merge.html">Algorithm regex_merge</a></dt> <dt><a href="regex_split.html">
Algorithm regex_split</a></dt>
<dt><a href="regex.html">class RegEx</a></dt>
</dl>
</dd>
</dl>
</dd>
<dt><a href="faq.html">FAQ</a></dt>
<dt>Appendix</dt>
<dd>
<dl class="index">
<dt><a href="implementation.html">Implementation</a></dt>
<dt><a href="thread_safety.html">Thread Safety</a></dt>
<dt><a href="localisation.html">Localisation</a></dt>
<dt><a href="examples.html">Examples</a></dt>
<dt><a href="headers.html">Headers</a></dt>
<dt><a href="redistributables.html">Redistributables and Library Names</a></dt>
<dt><a href="standards.html">Standards Conformance</a></dt>
<dt><a href="history.html">History</a></dt>
<dt><a href="performance.html">Performance</a></dt>
<dt><a href="contacts.html">Contacts and Acknowledgements</a></dt>
</dl>
</dd>
</dl>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,235 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Installation</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<P>When you extract the library from its zip file, you must preserve its internal
directory structure (for example by using the -d option when extracting). If
you didn't do that when extracting, then you'd better stop reading this, delete
the files you just extracted, and try again!
</P>
<P>This library should not need configuring before use; most popular
compilers/standard libraries/platforms are already supported "as is". If you do
experience configuration problems, or just want to test the configuration with
your compiler, then the process is the same as for all of boost; see the <A href="../../config/config.htm">
configuration library documentation</A>.</P>
<P>The library will encase all code inside namespace boost.
</P>
<P>Unlike some other template libraries, this library consists of a mixture of
template code (in the headers) and static code and data (in cpp files).
Consequently it is necessary to build the library's support code into a library
or archive file before you can use it, instructions for specific platforms are
as follows:
</P>
<P><B><A name="bcb"></A>Borland C++ Builder:</B>
</P>
<UL>
<LI>
Open up a console window and change to the &lt;boost&gt;\libs\regex\build
directory.
<LI>
Select the appropriate makefile (bcb4.mak for C++ Builder 4, bcb5.mak for C++
Builder 5, and bcb6.mak for C++ Builder 6).
<LI>
Invoke the makefile (pass the full path to your version of make if you have
more than one version installed, the makefile relies on the path to make to
obtain your C++ Builder installation directory and tools) for example:
</LI>
</UL>
<PRE>make -fbcb5.mak</PRE>
<P>The build process will build a variety of .lib and .dll files (the exact number
depends upon the version of Borland's tools you are using) the .lib and dll
files will be in a sub-directory called bcb4 or bcb5 depending upon the
makefile used. To install the libraries into your development system use:</P>
<PRE>make -fbcb5.mak install</PRE>
<P>library files will be copied to &lt;BCROOT&gt;/lib and the dll's to
&lt;BCROOT&gt;/bin, where &lt;BCROOT&gt; corresponds to the install path of
your Borland C++ tools.
</P>
<P>You may also remove temporary files created during the build process (excluding
lib and dll files) by using:</P>
<PRE>make -fbcb5.mak clean</PRE>
<P>Finally when you use regex++ it is only necessary for you to add the
&lt;boost&gt; root director to your list of include directories for that
project. It is not necessary for you to manually add a .lib file to the
project; the headers will automatically select the correct .lib file for your
build mode and tell the linker to include it. There is one caveat however: the
library can not tell the difference between VCL and non-VCL enabled builds when
building a GUI application from the command line, if you build from the command
line with the 5.5 command line tools then you must define the pre-processor
symbol _NO_VCL in order to ensure that the correct link libraries are selected:
the C++ Builder IDE normally sets this automatically. Hint, users of the 5.5
command line tools may want to add a -D_NO_VCL to bcc32.cfg in order to set
this option permanently.
</P>
<P>If you would prefer to do a dynamic link to the regex libraries when using the
dll runtime then define BOOST_REGEX_DYN_LINK (you must do this if you want to
use boost.regex in multiple dll's), otherwise Boost.regex will be staically
linked by default.&nbsp;</P>
<P>If you want to suppress automatic linking altogether (and supply your own
custom build of the lib) then define BOOST_REGEX_NO_LIB.</P>
<P>If you are building with C++ Builder 6, you will find that
&lt;boost/regex.hpp&gt; can not be used in a pre-compiled header (the actual
problem is in &lt;locale&gt; which gets included by &lt;boost/regex.hpp&gt;),
if this causes problems for you, then try defining BOOST_NO_STD_LOCALE when
building, this will disable some features throughout boost, but may save you a
lot in compile times!</P>
<P><B><A name="vc"></A>Microsoft Visual C++ 6</B><STRONG> and 7</STRONG></P>
<P>You need version 6 of MSVC to build this library. If you are using VC5 then you
may want to look at one of the previous releases of this <A href="http://ourworld.compuserve.com/homepages/john_maddock/regexpp.htm">
library</A>
</P>
<P>Open up a command prompt, which has the necessary MSVC environment variables
defined (for example by using the batch file Vcvars32.bat installed by the
Visual Studio installation), and change to the &lt;boost&gt;\libs\regex\build
directory.
</P>
<P>Select the correct makefile - vc6.mak for "vanilla" Visual C++ 6 or
vc6-stlport.mak if you are using STLPort.</P>
<P>Invoke the makefile like this:</P>
<PRE>nmake -fvc6.mak</PRE>
<P>You will now have a collection of lib and dll files in a "vc6" subdirectory, to
install these into your development system use:</P>
<PRE>nmake -fvc6.mak install</PRE>
<P>The lib files will be copied to your &lt;VC6&gt;\lib directory and the dll
files to &lt;VC6&gt;\bin, where &lt;VC6&gt; is the root of your Visual C++ 6
installation.</P>
<P>You can delete all the temporary files created during the build (excluding lib
and dll files) using:</P>
<PRE>nmake -fvc6.mak clean </PRE>
<P>Finally when you use regex++ it is only necessary for you to add the
&lt;boost&gt; root directory to your list of include directories for that
project. It is not necessary for you to manually add a .lib file to the
project; the headers will automatically select the correct .lib file for your
build mode and tell the linker to include it.
</P>
<P>
Note that if you want to dynamically link to the regex library when using the
dynamic C++ runtime, define BOOST_REGEX_DYN_LINK when building your project.</P>
<P>If you want to add the source directly to your project then define
BOOST_REGEX_NO_LIB to disable automatic library selection.</P>
<P>There are several important caveats to remember when using boost.regex with
Microsoft's Compiler:</P>
<UL>
<LI>
There have been some reports of compiler-optimization bugs affecting this
library, (particularly with VC6 versions prior to service patch 5) the
workaround is to build the library using /Oityb1 rather than /O2. That is to
use all optimization settings except /Oa. This problem is reported to affect
some standard library code as well (in fact I'm not sure if the problem is with
the regex code or the underlying standard library), so it's probably worthwhile
applying this workaround in normal practice in any case.</LI>
<LI>
If you have replaced the C++ standard library that comes with VC6, then when
you build the library you must ensure that the environment variables "INCLUDE"
and "LIB" have been updated to reflect the include and library paths for the
new library - see vcvars32.bat (part of your Visual Studio installation) for
more details.
</LI>
<LI>
If you are building with the full STLPort v4.x, then use the vc6-stlport.mak
file provided and set the environment variable STLPORT_PATH to point to the
location of your STLPort installation (Note that the full STLPort libraries
appear not to support single-thread static builds).</LI>
<LI>
If you are building your application with /Zc:wchar_t then you will need to
modify the makefile to add /Zc:wchar_t before building the library.
</LI>
</UL>
<P><B><A name="gcc"></A>GCC(2.95 and 3.x)</B>
</P>
<P>You can build with gcc using the normal boost Jamfile in
&lt;boost&gt;/libs/regex/build, alternatively there is a conservative makefile
for the g++ compiler. From the command prompt change to the
&lt;boost&gt;/libs/regex/build directory and type:
</P>
<PRE>make -fgcc.mak </PRE>
<P>At the end of the build process you should have a gcc sub-directory containing
release and debug versions of the library (libboost_regex.a and
libboost_regex_debug.a). When you build projects that use regex++, you will
need to add the boost install directory to your list of include paths and add
&lt;boost&gt;/libs/regex/build/gcc/libboost_regex.a to your list of library
files.
</P>
<P>There is also a makefile to build the library as a shared library:</P>
<PRE>make -fgcc-shared.mak</PRE>
<P>which will build libboost_regex.so and libboost_regex_debug.so.</P>
<P>Both of the these makefiles support the following environment variables:</P>
<P>CXXFLAGS: extra compiler options - note that this applies to both the debug and
release builds.</P>
<P>INCLUDES: additional include directories.</P>
<P>LDFLAGS: additional linker options.</P>
<P>LIBS: additional library files.</P>
<P>For the more adventurous there is a configure script in
&lt;boost&gt;/libs/config; see the <A href="../../config/config.htm">config library
documentation</A>.</P>
<P><B><A name="sun"></A>Sun Workshop 6.1</B></P>
<P>There is a makefile for the sun (6.1) compiler (C++ version 3.12). From the
command prompt change to the &lt;boost&gt;/libs/regex/build directory and type:
</P>
<PRE>dmake -f sunpro.mak </PRE>
<P>At the end of the build process you should have a sunpro sub-directory
containing single and multithread versions of the library (libboost_regex.a,
libboost_regex.so, libboost_regex_mt.a and libboost_regex_mt.so). When you
build projects that use regex++, you will need to add the boost install
directory to your list of include paths and add
&lt;boost&gt;/libs/regex/build/sunpro/ to your library search path.
</P>
<P>Both of the these makefiles support the following environment variables:</P>
<P>CXXFLAGS: extra compiler options - note that this applies to both the single
and multithreaded builds.</P>
<P>INCLUDES: additional include directories.</P>
<P>LDFLAGS: additional linker options.</P>
<P>LIBS: additional library files.</P>
<P>LIBSUFFIX: a suffix to mangle the library name with (defaults to nothing).</P>
<P>This makefile does not set any architecture specific options like -xarch=v9,
you can set these by defining the appropriate macros, for example:</P>
<PRE>dmake CXXFLAGS="-xarch=v9" LDFLAGS="-xarch=v9" LIBSUFFIX="_v9" -f sunpro.mak</PRE>
<P>will build v9 variants of the regex library named libboost_regex_v9.a etc.</P>
<P><B><A name="other"></A>Other compilers:</B>
</P>
<P>There is a generic makefile (<A href="../build/generic.mak">generic.mak</A>
) provided in &lt;boost-root&gt;/libs/regex/build - see that makefile for
details of environment variables that need to be set before use.
<P>
Alternatively you can using the <A href="../../../tools/build/index.html">Jam based
build system</A>: cd into &lt;boost&gt;/libs/regex/build and run:<PRE>bjam -sTOOLS=mytoolset</PRE>
<P>
If you need to configure the library for your platform, then refer to the <A href="../../config/config.htm">
config library documentation</A>
.
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,181 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Introduction</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Introduction</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Regular expressions are a form of pattern-matching that are often used in text
processing; many users will be familiar with the Unix utilities <I>grep</I>, <I>sed</I>
and <I>awk</I>, and the programming language <I>Perl</I>, each of which make
extensive use of regular expressions. Traditionally C++ users have been limited
to the POSIX C API's for manipulating regular expressions, and while regex++
does provide these API's, they do not represent the best way to use the
library. For example regex++ can cope with wide character strings, or search
and replace operations (in a manner analogous to either sed or Perl), something
that traditional C libraries can not do.</P>
<P>The class <A href="basic_regex.html">boost::basic_regex</A> is the key class in
this library; it represents a "machine readable" regular expression, and is
very closely modeled on std::basic_string, think of it as a string plus the
actual state-machine required by the regular expression algorithms. Like
std::basic_string there are two typedefs that are almost always the means by
which this class is referenced:</P>
<pre><B>namespace </B>boost{
<B>template</B> &lt;<B>class</B> charT,
<B> class</B> traits = regex_traits&lt;charT&gt;,
<B>class</B> Allocator = std::allocator&lt;charT&gt; &gt;
<B>class</B> basic_regex;
<B>typedef</B> basic_regex&lt;<B>char</B>&gt; regex;
<B>typedef</B> basic_regex&lt;<B>wchar_t&gt;</B> wregex;
}</pre>
<P>To see how this library can be used, imagine that we are writing a credit card
processing application. Credit card numbers generally come as a string of
16-digits, separated into groups of 4-digits, and separated by either a space
or a hyphen. Before storing a credit card number in a database (not necessarily
something your customers will appreciate!), we may want to verify that the
number is in the correct format. To match any digit we could use the regular
expression [0-9], however ranges of characters like this are actually locale
dependent. Instead we should use the POSIX standard form [[:digit:]], or the
regex++ and Perl shorthand for this \d (note that many older libraries tended
to be hard-coded to the C-locale, consequently this was not an issue for them).
That leaves us with the following regular expression to validate credit card
number formats:</P>
<PRE>(\d{4}[- ]){3}\d{4}</PRE>
<P>Here the parenthesis act to group (and mark for future reference)
sub-expressions, and the {4} means "repeat exactly 4 times". This is an example
of the extended regular expression syntax used by Perl, awk and egrep. Regex++
also supports the older "basic" syntax used by sed and grep, but this is
generally less useful, unless you already have some basic regular expressions
that you need to reuse.</P>
<P>Now let's take that expression and place it in some C++ code to validate the
format of a credit card number:</P>
<PRE><B>bool</B> validate_card_format(<B>const</B> std::string s)
{
<B>static</B> <B>const</B> <A href="basic_regex.html">boost::regex</A> e("(\\d{4}[- ]){3}\\d{4}");
<B>return</B> <A href="regex_match.html">regex_match</A>(s, e);
}</PRE>
<P>Note how we had to add some extra escapes to the expression: remember that the
escape is seen once by the C++ compiler, before it gets to be seen by the
regular expression engine, consequently escapes in regular expressions have to
be doubled up when embedding them in C/C++ code. Also note that all the
examples assume that your compiler supports Koenig lookup, if yours doesn't
(for example VC6), then you will have to add some boost:: prefixes to some of
the function calls in the examples.</P>
<P>Those of you who are familiar with credit card processing, will have realized
that while the format used above is suitable for human readable card numbers,
it does not represent the format required by online credit card systems; these
require the number as a string of 16 (or possibly 15) digits, without any
intervening spaces. What we need is a means to convert easily between the two
formats, and this is where search and replace comes in. Those who are familiar
with the utilities <I>sed</I> and <I>Perl</I> will already be ahead here; we
need two strings - one a regular expression - the other a "<A href="format_syntax.html">format
string</A>" that provides a description of the text to replace the match
with. In regex++ this search and replace operation is performed with the
algorithm<A href="regex_replace.html"> regex_replace</A>, for our credit card
example we can write two algorithms like this to provide the format
conversions:</P>
<PRE><I>// match any format with the regular expression:
</I><B>const</B> boost::regex e("\\A(\\d{3,4})[- ]?(\\d{4})[- ]?(\\d{4})[- ]?(\\d{4})\\z");
<B>const</B> std::string machine_format("\\1\\2\\3\\4");
<B>const</B> std::string human_format("\\1-\\2-\\3-\\4");
std::string machine_readable_card_number(<B>const</B> std::string s)
{
<B>return</B> <A href="regex_replace.html">regex_replace</A>(s, e, machine_format, boost::match_default | boost::format_sed);
}
std::string human_readable_card_number(<B>const</B> std::string s)
{
<B>return</B> <A href="regex_replace.html">regex_replace</A>(s, e, human_format, boost::match_default | boost::format_sed);
}</PRE>
<P>Here we've used marked sub-expressions in the regular expression to split out
the four parts of the card number as separate fields, the format string then
uses the sed-like syntax to replace the matched text with the reformatted
version.</P>
<P>In the examples above, we haven't directly manipulated the results of a regular
expression match, however in general the result of a match contains a number of
sub-expression matches in addition to the overall match. When the library needs
to report a regular expression match it does so using an instance of the class <A href="match_results.html">
match_results</A>, as before there are typedefs of this class for the most
common cases:
</P>
<PRE><B>namespace </B>boost{
<B>typedef</B> match_results&lt;<B>const</B> <B>char</B>*&gt; cmatch;
<B>typedef</B> match_results&lt;<B>const</B> <B>wchar_t</B>*&gt; wcmatch;
<STRONG>typedef</STRONG> match_results&lt;std::string::const_iterator&gt; smatch;
<STRONG>typedef</STRONG> match_results&lt;std::wstring::const_iterator&gt; wsmatch;
}</PRE>
<P>The algorithms <A href="regex_search.html">regex_search</A> and&nbsp;<A href="regex_match.html">regex_match</A>
make use of match_results to report what matched; the difference between these
algorithms is that <A href="regex_match.html">regex_match</A> will only find
matches that consume <EM>all</EM> of the input text, where as <A href="regex_search.html">
regex_search</A> will <EM>search</EM> for a match anywhere within the text
being matched.</P>
<P>Note that these algorithms are not restricted to searching regular C-strings,
any bidirectional iterator type can be searched, allowing for the possibility
of seamlessly searching almost any kind of data.
</P>
<P>For search and replace operations, in addition to the algorithm <A href="regex_replace.html">
regex_replace</A> that we have already seen, the <A href="match_results.html">match_results</A>
class has a format member that takes the result of a match and a format string,
and produces a new string by merging the two.</P>
<P>For iterating through all occurences of an expression within a text, there are
two iterator types: <A href="regex_iterator.html">regex_iterator</A> will
enumerate over the <A href="match_results.html">match_results</A> objects
found, while <A href="regex_token_iterator.html">regex_token_iterator</A> will
enumerate a series of strings (similar to perl style split operations).</P>
<P>For those that dislike templates, there is a high level wrapper class RegEx
that is an encapsulation of the lower level template code - it provides a
simplified interface for those that don't need the full power of the library,
and supports only narrow characters, and the "extended" regular expression
syntax. This class is now deprecated as it does not form part of the regular
expressions C++ standard library proposal.
</P>
<P>The <A href="posix_api.html">POSIX API</A> functions: regcomp, regexec, regfree
and regerror, are available in both narrow character and Unicode versions, and
are provided for those who need compatibility with these API's.
</P>
<P>Finally, note that the library now has run-time <A href="localisation.html">localization</A>
support, and recognizes the full POSIX regular expression syntax - including
advanced features like multi-character collating elements and equivalence
classes - as well as providing compatibility with other regular expression
libraries including GNU and BSD4 regex packages, and to a more limited extent
Perl 5.
</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -1,282 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: match_flag_type</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">match_flag_type</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Synopsis</h3>
<p>The type <code>match_flag_type</code> is an implementation defined bitmask type
(17.3.2.1.2) that controls how a regular expression is matched against a
character sequence.&nbsp; The behavior of the format flags is descibed in more
detail in the <A href="format_syntax.html">format syntax guide</A>.</p>
<pre>
namespace std{ namespace regex_constants{
typedef bitmask_type match_flag_type;
static const match_flag_type match_default = 0;
static const match_flag_type match_not_bob;
static const match_flag_type match_not_eob;
static const match_flag_type match_not_bol;
static const match_flag_type match_not_eol;
static const match_flag_type match_not_bow;
static const match_flag_type match_not_eow;
static const match_flag_type match_any;
static const match_flag_type match_not_null;
static const match_flag_type match_continuous;
static const match_flag_type match_partial;
static const match_flag_type match_single_line;
static const match_flag_type match_prev_avail;
static const match_flag_type match_not_dot_newline;
static const match_flag_type match_not_dot_null;
static const match_flag_type format_default = 0;
static const match_flag_type format_sed;
static const match_flag_type format_perl;
static const match_flag_type format_no_copy;
static const match_flag_type format_first_only;
static const match_flag_type format_all;
} // namespace regex_constants
} // namespace std
</pre>
<h3>Description</h3>
<p>The type <code>match_flag_type</code> is an implementation defined bitmask type
(17.3.2.1.2). When matching a regular expression against a sequence of
characters [first, last) then setting its elements has the effects listed in
the table below:</p>
<p></p>
<table id="Table2" cellspacing="1" cellpadding="7" width="100%" border="0">
<tr>
<td valign="top" width="50%">
<p>Element</p>
</td>
<td valign="top" width="50%">
<p>Effect if set</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_default</p>
</td>
<td valign="top" width="50%">
<p>Specifies that matching of regular expressions proceeds without any
modification of the normal rules used in ECMA-262, ECMAScript Language
Specification, Chapter 15 part 10, RegExp (Regular Expression) Objects (FWD.1)</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">match_not_bob</td>
<td valign="top" width="50%">Specifies that the expression "\A" should not match
against the sub-sequence [first,first).</td>
</tr>
<tr>
<td valign="top" width="50%">match_not_eob</td>
<td valign="top" width="50%">Specifies that the expressions "\z" and
"\Z"&nbsp;should not match against the sub-sequence [last,last).</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_bol</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression "^" should not be matched against the
sub-sequence [first,first).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_eol</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression "$" should not be matched against the
sub-sequence [last,last).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_bow</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression "\b" should not be matched against the
sub-sequence [first,first).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_eow</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression "\b" should not be matched against the
sub-sequence [last,last).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_any</p>
</td>
<td valign="top" width="50%">
<p>Specifies that if more than one match is possible then any match is an
acceptable result.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_not_null</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression can not be matched against an empty sequence.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_continuous</p>
</td>
<td valign="top" width="50%">
<p>Specifies that the expression must match a sub-sequence that begins at <i>first</i>.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>match_partial</p>
</td>
<td valign="top" width="50%">
<p>Specifies that if no match can be found, then it is acceptable to return a
match [from, last) where from!=last, if there exists some sequence of
characters [from,to) of which [from,last) is a prefix, and which would result
in a full match.</p>
</td>
</tr>
<TR>
<TD vAlign="top" width="50%">match_extra</TD>
<TD vAlign="top" width="50%">Instructs the matching engine to retain all available <A href="captures.html">
capture</A> information; if a capturing group is repeated then information
about every repeat is available via <A href="match_results.html#m17">match_results::captures()</A>
or <A href="sub_match.html#m8">sub_match_captures().</A></TD>
</TR>
<TR>
<TD vAlign="top" width="50%">match_single_line</TD>
<TD vAlign="top" width="50%">Equivalent to Perl's s/ modifier; prevents ^ from
matching after an embedded newline character (so that it only matches at the
start of the text being matched), and $ from matching before an embedded
newline (so that it only matches at the end of the text being matched).</TD>
</TR>
<tr>
<td valign="top" width="50%">
<p>match_prev_avail</p>
</td>
<td valign="top" width="50%">
<p>Specifies that <code>--first</code> is a valid iterator position, when this
flag is set then the flags <code>match_not_bol</code> and <code>match_not_bow</code>
are ignored by the regular expression algorithms (RE.7) and iterators (RE.8).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">match_not_dot_newline</td>
<td valign="top" width="50%">Specifies that the expression "." does not match a
newline character.</td>
</tr>
<tr>
<td valign="top" width="50%">match_not_dot_null</td>
<td valign="top" width="50%">Specified that the expression "." does not match a
character null '\0'.</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_default</p>
</td>
<td valign="top" width="50%">
<p>Specifies that when a regular expression match is to be replaced by a new
string, that the new string is constructed using the rules used by the
ECMAScript replace function in ECMA-262, ECMAScript Language Specification,
Chapter 15 part 5.4.11 String.prototype.replace. (FWD.1). In addition during
search and replace operations then all non-overlapping occurrences of the
regular expression are located and replaced, and sections of the input that did
not match the expression, are copied unchanged to the output string.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_sed</p>
</td>
<td valign="top" width="50%">
<p>Specifies that when a regular expression match is to be replaced by a new
string, that the new string is constructed using the rules used by the Unix sed
utility in IEEE Std 1003.1-2001, Portable Operating SystemInterface (POSIX ),
Shells and Utilities..</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_perl</p>
</td>
<td valign="top" width="50%">
<p>
Specifies that when a regular expression match is to be replaced by a new
string, that the new string is constructed using the same rules as Perl 5.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%" height="32">format_all</td>
<td valign="top" width="50%" height="32">Specifies that all syntax extensions are
enabled, including conditional (?ddexpression1:expression2) replacements: see
the <A href="format_syntax.html">format string guide</A> for more details.</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_no_copy</p>
</td>
<td valign="top" width="50%">
<p>When specified during a search and replace operation, then sections of the
character container sequence being searched that do match the regular
expression, are not copied to the output string.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>format_first_only</p>
</td>
<td valign="top" width="50%">
<p>When specified during a search and replace operation, then only the first
occurrence of the regular expression is replaced.</p>
</td>
</tr>
</table>
<br>
<br>
<p></p>
<hr>
<br>
<br>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,458 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: class match_results</title>
<meta content="HTML Tidy, see www.w3.org" name="generator">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<p></p>
<table id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<tr>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">class match_results</h2>
</td>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Contents</h3>
<dl class="index">
<dt><A href="#synopsis">Synopsis</A> <dt><A href="#description">Description</A> </dt>
</dl>
<h3><a name="synopsis"></a>Synopsis</h3>
<p>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt;</p>
<p>Regular expressions are different from many simple pattern-matching algorithms
in that as well as finding an overall match they can also produce
sub-expression matches: each sub-expression being delimited in the pattern by a
pair of parenthesis (...). There has to be some method for reporting
sub-expression matches back to the user: this is achieved this by defining a
class <i>match_results</i> that acts as an indexed collection of sub-expression
matches, each sub-expression match being contained in an object of type <i><A href="sub_match.html">
sub_match</A></i> .</p>
<p>Template class match_results denotes a collection of character sequences
representing the result of a regular expression match. Objects of type
match_results are passed to the algorithms <A href="regex_match.html">regex_match</A>
and <A href="regex_search.html">regex_search</A>, and are returned by the
iterator <A href="regex_iterator.html">regex_iterator</A> .&nbsp; Storage for
the collection is allocated and freed as necessary by the member functions of
class match_results.</p>
<p>The template class match_results conforms to the requirements of a Sequence, as
specified in (lib.sequence.reqmts), except that only operations defined for
const-qualified Sequences are supported.</p>
<p>Class template match_results is most commonly used as one of the typedefs
cmatch, wcmatch, smatch, or wsmatch:</p>
<pre>template &lt;class BidirectionalIterator,
class Allocator = allocator&lt;sub_match&lt;BidirectionalIterator&gt; &gt;
class match_results;
typedef match_results&lt;const char*&gt; cmatch;
typedef match_results&lt;const wchar_t*&gt; wcmatch;
typedef match_results&lt;string::const_iterator&gt; smatch;
typedef match_results&lt;wstring::const_iterator&gt; wsmatch;
template &lt;class BidirectionalIterator,
class Allocator = allocator&lt;sub_match&lt;BidirectionalIterator&gt; &gt;
class match_results
{
public:
typedef sub_match&lt;BidirectionalIterator&gt; value_type;
typedef const value_type&amp; const_reference;
typedef const_reference reference;
typedef implementation defined const_iterator;
typedef const_iterator iterator;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::difference_type difference_type;
typedef typename Allocator::size_type size_type;
typedef Allocator allocator_type;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::value_type char_type;
typedef basic_string&lt;char_type&gt; string_type;
// construct/copy/destroy:
explicit <A href="#c1" >match_results</A>(const Allocator&amp; a = Allocator());
<A href="#c2" >match_results</A>(const match_results&amp; m);
<A href="#c3" >match_results</A>&amp; <A href="#c3" >operator</A>=(const match_results&amp; m);
~match_results();
// size:
size_type <A href="#m1" >size</A>() const;
size_type <A href="#m2" >max_size</A>() const;
bool <A href="#m3" >empty</A>() const;
// element access:
difference_type <A href="#m4" >length</A>(int sub = 0) const;
difference_type <A href="#m5" >position</A>(unsigned int sub = 0) const;
string_type <A href="#m6" >str</A>(int sub = 0) const;
const_reference <A href="#m7" >operator</A>[](int n) const;
const_reference <A href="#m8" >prefix</A>() const;
const_reference <A href="#m9" >suffix</A>() const;
const_iterator <A href="#m10" >begin</A>() const;
const_iterator <A href="#m11" >end</A>() const;
// format:
template &lt;class OutputIterator&gt;
OutputIterator <A href="#m12" >format</A>(OutputIterator out,
const string_type&amp; fmt,
match_flag_type flags = format_default) const;
string_type <A href="#m13" >format</A>(const string_type&amp; fmt,
match_flag_type flags = format_default) const;
allocator_type <A href="#m14" >get_allocator</A>() const;
void <A href="#m15" >swap</A>(match_results&amp; that);
#ifdef BOOST_REGEX_MATCH_EXTRA
typedef typename value_type::capture_sequence_type <A href="#m16" >capture_sequence_type</A>;
const capture_sequence_type&amp; <A href="#m17" >captures</A>(std::size_t i)const;
#endif
};
template &lt;class BidirectionalIterator, class Allocator&gt;
bool <A href="#n1" >operator</A> == (const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);
template &lt;class BidirectionalIterator, class Allocator&gt;
bool <A href="#n2" >operator</A> != (const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);
template &lt;class charT, class traits, class BidirectionalIterator, class Allocator&gt;
basic_ostream&lt;charT, traits&gt;&amp;
<A href="#n3" >operator</A> &lt;&lt; (basic_ostream&lt;charT, traits&gt;&amp; os,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m);
template &lt;class BidirectionalIterator, class Allocator&gt;
void <A href="#n4" >swap</A>(match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);
</pre>
<h3><a name="description"></a>Description</h3>
<h4>match_results constructors</h4>
<p>In all <code>match_results</code> constructors, a copy of the Allocator
argument is used for any memory allocation performed by the constructor or
member functions during the lifetime of the object.</p>
<pre><A name=c1></A>
match_results(const Allocator&amp; a = Allocator());
</pre>
<b></b>
<p><b>Effects:</b> Constructs an object of class match_results. The postconditions
of this function are indicated in the table:</p>
<p align="center"></p>
<center>
<table id="Table2" cellSpacing="1" cellPadding="7" width="624" border="1">
<tbody>
<tr>
<td vAlign="top" width="50%"><b></b>
<p><b>Element</b></p>
</td>
<td vAlign="top" width="50%"><b></b>
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>empty()</p>
</td>
<td vAlign="top" width="50%">
<p>true</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>size()</p>
</td>
<td vAlign="top" width="50%">
<p>0</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>str()</p>
</td>
<td vAlign="top" width="50%">
<p>basic_string&lt;charT&gt;()</p>
</td>
</tr>
</tbody></table>
</center>
<p>&nbsp;</p>
<pre><A name=c2></A>
match_results(const match_results&amp; m);
</pre>
<b></b>
<p><b>Effects:</b> Constructs an object of class match_results, as a copy of m.</p>
<pre><A name=c3></A>
match_results&amp; operator=(const match_results&amp; m);
</pre>
<b></b>
<p><b>Effects:</b> Assigns m to *this. The postconditions of this function are
indicated in the table:</p>
<p align="center"></p>
<center>
<table id="Table3" cellSpacing="1" cellPadding="7" width="624" border="1">
<tbody>
<tr>
<td vAlign="top" width="50%"><b></b>
<p><b>Element</b></p>
</td>
<td vAlign="top" width="50%"><b></b>
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>empty()</p>
</td>
<td vAlign="top" width="50%">
<p>m.empty().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>size()</p>
</td>
<td vAlign="top" width="50%">
<p>m.size().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>str(n)</p>
</td>
<td vAlign="top" width="50%">
<p>m.str(n) for all integers n &lt; m.size().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>prefix()</p>
</td>
<td vAlign="top" width="50%">
<p>m.prefix().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>suffix()</p>
</td>
<td vAlign="top" width="50%">
<p>m.suffix().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>(*this)[n]</p>
</td>
<td vAlign="top" width="50%">
<p>m[n] for all integers n &lt; m.size().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>length(n)</p>
</td>
<td vAlign="top" width="50%">
<p>m.length(n) for all integers n &lt; m.size().</p>
</td>
</tr>
<tr>
<td vAlign="top" width="50%">
<p>position(n)</p>
</td>
<td vAlign="top" width="50%">
<p>m.position(n) for all integers n &lt; m.size().</p>
</td>
</tr>
</tbody></table>
</center>
<h4>match_results size</h4>
<pre><A name=m1></A>
size_type size()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns the number of sub_match elements stored in *this; that
is the number of marked sub-expressions in the regular expression that was
matched plus one.</p>
<pre><A name=m2></A>
size_type max_size()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns the maximum number of sub_match elements that can be
stored in *this.</p>
<pre><A name=m3></A>
bool empty()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns <code>size() == 0</code>.</p>
<h4>match_results element access</h4>
<pre><A name=m4></A>
difference_type length(int sub = 0)const;
</pre>
<b></b>
<p><b>Effects:</b> Returns the length of sub-expression <EM>sub</EM>, that is to
say: <code>(*this)[sub].length()</code>.</p>
<pre><A name=m5></A>
difference_type position(unsigned int sub = 0)const;
</pre>
<b></b>
<p><b>Effects:</b> Returns the starting location of sub-expression <EM>sub</EM>,
or -1 if <EM>sub</EM> was not matched <code>.</code></p>
<pre><A name=m6></A>
string_type str(int sub = 0)const;
</pre>
<b></b>
<p><b>Effects:</b> Returns sub-expression <EM>sub</EM> as a string:&nbsp; <code>string_type((*this)[sub]).</code></p>
<pre><A name=m7></A>
const_reference operator[](int n) const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a reference to the <code>sub_match</code> object
representing the character sequence that matched marked sub-expression <i>n</i>.
If <code>n == 0</code> then returns a reference to a <code>sub_match</code> object
representing the character sequence that matched the whole regular
expression.&nbsp; If <EM>n</EM> is out of range, or if <EM>n</EM> is an
unmatched sub-expression, then returns a sub_match object whose <EM>matched</EM>
member is <EM>false</EM>.</p>
<pre><A name=m8></A>
const_reference prefix()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a reference to the <code>sub_match</code> object
representing the character sequence from the start of the string being
matched/searched, to the start of the match found.</p>
<pre><A name=m9></A>
const_reference suffix()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a reference to the <code>sub_match</code> object
representing the character sequence from the end of the match found to the end
of the string being matched/searched.</p>
<pre><A name=m10></A>
const_iterator begin()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a starting iterator that enumerates over all the marked
sub-expression matches stored in *this.</p>
<pre><A name=m11></A>
const_iterator end()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a terminating iterator that enumerates over all the
marked sub-expression matches stored in *this.</p>
<h4><A name="format"></A>match_results reformatting</h4>
<pre>template &lt;class OutputIterator&gt;
OutputIterator format(OutputIterator out,
const string_type&amp; fmt,
<A href="match_flag_type.html" >match_flag_type</A> flags = format_default);
</pre>
<b></b>
<p><b>Requires:</b> The type OutputIterator conforms to the Output Iterator
requirements (24.1.2).</p>
<b></b>
<p><b>Effects:</b> Copies the character sequence <i>[fmt.begin(), fmt.end())</i> to
OutputIterator <i>out</i>. For each format specifier or escape sequence in <i>fmt</i>,
replace that sequence with either the character(s) it represents, or the
sequence of characters within *this to which it refers. The bitmasks specified
in <i><A href="match_flag_type.html">flags</A></i> determines what <A href="format_syntax.html">
format specifiers or escape sequences are recognized</A>, by default this is
the format used by ECMA-262, ECMAScript Language Specification, Chapter 15 part
5.4.11 String.prototype.replace.</p>
<b></b>
<p><b>Returns:</b> <i>out</i>.</p>
<pre><A name=m13></A>
string_type format(const string_type&amp; fmt,
<A href="match_flag_type.html" >match_flag_type</A> flags = format_default);
</pre>
<b></b>
<p><b>Effects:</b> Returns a copy of the string <i>fmt</i>. For each format
specifier or escape sequence in <i>fmt</i>, replace that sequence with either
the character(s) it represents, or the sequence of characters within *this to
which it refers. The bitmasks specified in <i><A href="match_flag_type.html">flags</A></i>
determines what <A href="format_syntax.html">format specifiers or escape sequences
are recognized</A>, by default this is the format used by ECMA-262,
ECMAScript Language Specification, Chapter 15 part 5.4.11
String.prototype.replace.</p>
<H4>Allocator access</H4>
<pre>allocator_type get_allocator()const;
</pre>
<b></b>
<p><b>Effects:</b> Returns a copy of the Allocator that was passed to the object's
constructor.</p>
<H4><A name="m15"></A>Swap</H4>
<PRE>void swap(match_results&amp; that);
</PRE>
<b></b>
<p><b>Effects:</b> Swaps the contents of the two sequences.</p>
<b></b>
<p><b>Postcondition:</b> <code>*this</code> contains the sequence of matched
sub-expressions that were in <code>that</code>, <code>that</code> contains the
sequence of matched sub-expressions that were in <code>*this</code>.</p>
<b></b>
<p><b>Complexity:</b> constant time.</p>
<H4>Captures</H4>
<PRE><A name=m16></A>typedef typename value_type::capture_sequence_type capture_sequence_type;</PRE>
<P>Defines an implementation-specific type that&nbsp;satisfies the requirements of
a standard library Sequence (21.1.1 including the optional Table 68
operations),&nbsp;whose value_type is a <EM>sub_match&lt;BidirectionalIterator&gt;</EM>.&nbsp;This
type happens to be <EM>std::vector&lt;sub_match&lt;BidirectionalIterator&gt; &gt;</EM>,
but you shouldn't actually rely on that.</P>
<PRE><A name=m17></A>const capture_sequence_type&amp; <A href="#m8" >captures</A>(std::size_t i)const; </PRE>
<P><STRONG>Effects:</STRONG> returns a sequence containing all the captures
obtained for sub-expression <EM>i</EM>.</P>
<P><STRONG>Returns:</STRONG> <code>(*this)[i].captures();</code></P>
<P><STRONG>Preconditions:</STRONG> the library must be built and used with
BOOST_REGEX_MATCH_EXTRA defined, and you must pass the flag <A href="match_flag_type.html">
match_extra</A> to the regex matching functions (<A href="regex_match.html">regex_match</A>,
<A href="regex_search.html">regex_search</A>, <A href="regex_iterator.html">regex_iterator</A>
or <A href="regex_token_iterator.html">regex_token_iterator</A>) in order for
this member function to be defined and return useful information.</P>
<P><STRONG>Rationale:</STRONG> Enabling this feature has several consequences:
</P>
<UL>
<LI>
sub_match occupies more memory resulting in complex expressions running out of
memory or stack space more quickly during matching.
<LI>
The matching algorithms are less efficient at handling some features
(independent sub-expressions for example), even when match_extra is not used.
<LI>
The matching algorithms are much less efficient (i.e. slower), when match_extra
is used.&nbsp; Mostly this is down to the extra memory allocations that have to
take place.</LI></UL>
<h4>match_results non-members</h4>
<PRE><A name=n1></A>template &lt;class BidirectionalIterator, class Allocator&gt;
bool operator == (const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);</PRE>
<P><B>Effects:</B> Compares the two sequences for equality.</P>
<PRE><A name=n2></A>template &lt;class BidirectionalIterator, class Allocator&gt;
bool operator != (const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);</PRE>
<P><B>Effects:</B> Compares the two sequences for inequality.</P>
<PRE><A name=n3></A>template &lt;class charT, class traits, class BidirectionalIterator, class Allocator&gt;
basic_ostream&lt;charT, traits&gt;&amp;
operator &lt;&lt; (basic_ostream&lt;charT, traits&gt;&amp; os,
const match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m);</PRE>
<P><B>Effects:</B> Writes the contents of <EM>m</EM> to the stream <EM>os</EM> as
if by calling <code>os &lt;&lt; m.str();</code> Returns <EM>os</EM>..</P>
<PRE><A name=n4></A>template &lt;class BidirectionalIterator, class Allocator&gt;
void swap(match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m1,
match_results&lt;BidirectionalIterator, Allocator&gt;&amp; m2);</PRE>
<P><B>Effects:</B> Swaps the contents of the two sequences.</P>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,182 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Partial Matches</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Partial Matches</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>The <A href="match_flag_type.html">match-flag</A> <CODE>match_partial</CODE> can
be passed to the following algorithms: <A href="regex_match.html">regex_match</A>,
<A href="regex_search.html">regex_search</A>, and <A href="regex_grep.html">regex_grep</A>.
When used it indicates that partial as well as full matches should be found. A
partial match is one that matched one or more characters at the end of the text
input, but did not match all of the regular expression (although it may have
done so had more input been available). Partial matches are typically used when
either validating data input (checking each character as it is entered on the
keyboard), or when searching texts that are either too long to load into memory
(or even into a memory mapped file), or are of indeterminate length (for
example the source may be a socket or similar). Partial and full matches can be
differentiated as shown in the following table (the variable M represents an
instance of <A href="match_results.html">match_results&lt;&gt;</A> as filled in
by regex_match, regex_search or regex_grep):<BR>
</P>
<P>
<TABLE id="Table2" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD vAlign="top" width="20%">&nbsp;</TD>
<TD vAlign="top" width="20%">Result</TD>
<TD vAlign="top" width="20%">M[0].matched</TD>
<TD vAlign="top" width="20%">M[0].first</TD>
<TD vAlign="top" width="20%">M[0].second</TD>
</TR>
<TR>
<TD vAlign="top" width="20%">No match</TD>
<TD vAlign="top" width="20%">False</TD>
<TD vAlign="top" width="20%">Undefined</TD>
<TD vAlign="top" width="20%">Undefined</TD>
<TD vAlign="top" width="20%">Undefined</TD>
</TR>
<TR>
<TD vAlign="top" width="20%">Partial match</TD>
<TD vAlign="top" width="20%">True</TD>
<TD vAlign="top" width="20%">False</TD>
<TD vAlign="top" width="20%">Start of partial match.</TD>
<TD vAlign="top" width="20%">End of partial match (end of text).</TD>
</TR>
<TR>
<TD vAlign="top" width="20%">Full match</TD>
<TD vAlign="top" width="20%">True</TD>
<TD vAlign="top" width="20%">True</TD>
<TD vAlign="top" width="20%">Start of full match.</TD>
<TD vAlign="top" width="20%">End of full match.</TD>
</TR>
</TABLE>
</P>
<P>The following <A href="../example/snippets/partial_regex_match.cpp">example</A>
tests to see whether the text could be a valid credit card number, as the user
presses a key, the character entered would be added to the string being built
up, and passed to <CODE>is_possible_card_number</CODE>. If this returns true
then the text could be a valid card number, so the user interface's OK button
would be enabled. If it returns false, then this is not yet a valid card
number, but could be with more input, so the user interface would disable the
OK button. Finally, if the procedure throws an exception the input could never
become a valid number, and the inputted character must be discarded, and a
suitable error indication displayed to the user.</P>
<PRE>#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;boost/regex.hpp&gt;
boost::regex e("(\\d{3,4})[- ]?(\\d{4})[- ]?(\\d{4})[- ]?(\\d{4})");
bool is_possible_card_number(const std::string&amp; input)
{
//
// return false for partial match, true for full match, or throw for
// impossible match based on what we have so far...
boost::match_results&lt;std::string::const_iterator&gt; what;
if(0 == boost::regex_match(input, what, e, boost::match_default | boost::match_partial))
{
// the input so far could not possibly be valid so reject it:
throw std::runtime_error("Invalid data entered - this could not possibly be a valid card number");
}
// OK so far so good, but have we finished?
if(what[0].matched)
{
// excellent, we have a result:
return true;
}
// what we have so far is only a partial match...
return false;
}</PRE>
<P>In the following <A href="../example/snippets/partial_regex_grep.cpp">example</A>,
text input is taken from a stream containing an unknown amount of text; this
example simply counts the number of html tags encountered in the stream. The
text is loaded into a buffer and searched a part at a time, if a partial match
was encountered, then the partial match gets searched a second time as the
start of the next batch of text:</P>
<PRE>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;sstream&gt;
#include &lt;string&gt;
#include &lt;boost/regex.hpp&gt;
// match some kind of html tag:
boost::regex e("&lt;[^&gt;]*&gt;");
// count how many:
unsigned int tags = 0;
// saved position of partial match:
char* next_pos = 0;
bool grep_callback(const boost::match_results&lt;char*&gt;&amp; m)
{
if(m[0].matched == false)
{
// save position and return:
next_pos = m[0].first;
}
else
++tags;
return true;
}
void search(std::istream&amp; is)
{
char buf[4096];
next_pos = buf + sizeof(buf);
bool have_more = true;
while(have_more)
{
// how much do we copy forward from last try:
unsigned leftover = (buf + sizeof(buf)) - next_pos;
// and how much is left to fill:
unsigned size = next_pos - buf;
// copy forward whatever we have left:
memcpy(buf, next_pos, leftover);
// fill the rest from the stream:
unsigned read = is.readsome(buf + leftover, size);
// check to see if we've run out of text:
have_more = read == size;
// reset next_pos:
next_pos = buf + sizeof(buf);
// and then grep:
boost::regex_grep(grep_callback,
buf,
buf + read + leftover,
e,
boost::match_default | boost::match_partial);
}
}</PRE>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,52 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Performance</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Performance</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>The performance of Boost.regex in both recursive and non-recursive modes should
be broadly comparable to other regular expression libraries: recursive mode is
slightly faster (especially where memory allocation requires thread
synchronisation), but not by much.&nbsp; The following pages compare
Boost.regex with various other regular expression libraries for the following
compilers:</P>
<P><A href="vc71-performance.html">Visual Studio.Net 2003 (recursive Boost.regex
implementation)</A>.</P>
<P><A href="gcc-performance.html">Gcc 3.2 (cygwin) (non-recursive Boost.regex
implementation).</A></P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,286 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: POSIX API Compatibility Functions</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">POSIX API Compatibility Functions</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<PRE>#include &lt;boost/cregex.hpp&gt;
<I>or</I>:
#include &lt;boost/regex.h&gt;</PRE>
<P>The following functions are available for users who need a POSIX compatible C
library, they are available in both Unicode and narrow character versions, the
standard POSIX API names are macros that expand to one version or the other
depending upon whether UNICODE is defined or not.
</P>
<P><B>Important</B>: Note that all the symbols defined here are enclosed inside
namespace <I>boost</I> when used in C++ programs, unless you use #include
&lt;boost/regex.h&gt; instead - in which case the symbols are still defined in
namespace boost, but are made available in the global namespace as well.</P>
<P>The functions are defined as:
</P>
<PRE>extern "C" {
<B>int</B> regcompA(regex_tA*, <B>const</B> <B>char</B>*, <B>int</B>);
<B>unsigned</B> <B>int</B> regerrorA(<B>int</B>, <B>const</B> regex_tA*, <B>char</B>*, <B>unsigned</B> <B>int</B>);
<B>int</B> regexecA(<B>const</B> regex_tA*, <B>const</B> <B>char</B>*, <B>unsigned</B> <B>int</B>, regmatch_t*, <B>int</B>);
<B>void</B> regfreeA(regex_tA*);
<B>int</B> regcompW(regex_tW*, <B>const</B> <B>wchar_t</B>*, <B>int</B>);
<B>unsigned</B> <B>int</B> regerrorW(<B>int</B>, <B>const</B> regex_tW*, <B>wchar_t</B>*, <B>unsigned</B> <B>int</B>);
<B>int</B> regexecW(<B>const</B> regex_tW*, <B>const</B> <B>wchar_t</B>*, <B>unsigned</B> <B>int</B>, regmatch_t*, <B>int</B>);
<B>void</B> regfreeW(regex_tW*);
#ifdef UNICODE
#define regcomp regcompW
#define regerror regerrorW
#define regexec regexecW
#define regfree regfreeW
#define regex_t regex_tW
#else
#define regcomp regcompA
#define regerror regerrorA
#define regexec regexecA
#define regfree regfreeA
#define regex_t regex_tA
#endif
}</PRE>
<P>All the functions operate on structure <B>regex_t</B>, which exposes two public
members:
</P>
<P><B>unsigned int re_nsub</B> this is filled in by <B>regcomp</B> and indicates
the number of sub-expressions contained in the regular expression.
</P>
<P><B>const TCHAR* re_endp</B> points to the end of the expression to compile when
the flag REG_PEND is set.
</P>
<P><I>Footnote: regex_t is actually a #define - it is either regex_tA or regex_tW
depending upon whether UNICODE is defined or not, TCHAR is either char or
wchar_t again depending upon the macro UNICODE.</I>
</P>
<H3>regcomp</H3>
<P><B>regcomp</B> takes a pointer to a <B>regex_t</B>, a pointer to the expression
to compile and a flags parameter which can be a combination of:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table2" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_EXTENDED</TD>
<TD vAlign="top" width="45%">Compiles modern regular expressions. Equivalent to
regbase::char_classes | regbase::intervals | regbase::bk_refs.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_BASIC</TD>
<TD vAlign="top" width="45%">Compiles basic (obsolete) regular expression syntax.
Equivalent to regbase::char_classes | regbase::intervals | regbase::limited_ops
| regbase::bk_braces | regbase::bk_parens | regbase::bk_refs.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NOSPEC</TD>
<TD vAlign="top" width="45%">All characters are ordinary, the expression is a
literal string.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_ICASE</TD>
<TD vAlign="top" width="45%">Compiles for matching that ignores character case.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NOSUB</TD>
<TD vAlign="top" width="45%">Has no effect in this library.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NEWLINE</TD>
<TD vAlign="top" width="45%">When this flag is set a dot does not match the
newline character.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_PEND</TD>
<TD vAlign="top" width="45%">When this flag is set the re_endp parameter of the
regex_t structure must point to the end of the regular expression to compile.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NOCOLLATE</TD>
<TD vAlign="top" width="45%">When this flag is set then locale dependent collation
for character ranges is turned off.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_ESCAPE_IN_LISTS<BR>
, , ,
</TD>
<TD vAlign="top" width="45%">When this flag is set, then escape sequences are
permitted in bracket expressions (character sets).</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_NEWLINE_ALT&nbsp;</TD>
<TD vAlign="top" width="45%">When this flag is set then the newline character is
equivalent to the alternation operator |.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_PERL&nbsp;</TD>
<TD vAlign="top" width="45%">Compiles Perl like regular expressions.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_AWK</TD>
<TD vAlign="top" width="45%">A shortcut for awk-like behavior: REG_EXTENDED |
REG_ESCAPE_IN_LISTS</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_GREP</TD>
<TD vAlign="top" width="45%">A shortcut for grep like behavior: REG_BASIC |
REG_NEWLINE_ALT</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">REG_EGREP</TD>
<TD vAlign="top" width="45%">&nbsp;A shortcut for egrep like behavior:
REG_EXTENDED | REG_NEWLINE_ALT</TD>
<TD width="5%">&nbsp;</TD>
</TR>
</TABLE>
</P>
<H3>regerror</H3>
<P>regerror takes the following parameters, it maps an error code to a human
readable string:
<BR>
</P>
<P>
<TABLE id="Table3" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="50%">int code</TD>
<TD vAlign="top" width="50%">The error code.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">const regex_t* e</TD>
<TD vAlign="top" width="50%">The regular expression (can be null).</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">char* buf</TD>
<TD vAlign="top" width="50%">The buffer to fill in with the error message.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">unsigned int buf_size</TD>
<TD vAlign="top" width="50%">The length of buf.</TD>
<TD>&nbsp;</TD>
</TR>
</TABLE>
</P>
<P>If the error code is OR'ed with REG_ITOA then the message that results is the
printable name of the code rather than a message, for example "REG_BADPAT". If
the code is REG_ATIO then <B>e</B> must not be null and <B>e-&gt;re_pend</B> must
point to the printable name of an error code, the return value is then the
value of the error code. For any other value of <B>code</B>, the return value
is the number of characters in the error message, if the return value is
greater than or equal to <B>buf_size</B> then <B>regerror</B> will have to be
called again with a larger buffer.</P>
<H3>regexec</H3>
<P><B>regexec</B> finds the first occurrence of expression <B>e</B> within string <B>buf</B>.
If <B>len</B> is non-zero then *<B>m</B> is filled in with what matched the
regular expression, <B>m[0]</B> contains what matched the whole string, <B>m[1] </B>
the first sub-expression etc, see <B>regmatch_t</B> in the header file
declaration for more details. The <B>eflags</B> parameter can be a combination
of:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table4" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="50%">REG_NOTBOL</TD>
<TD vAlign="top" width="50%">Parameter <B>buf </B>does not represent the start of
a line.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">REG_NOTEOL</TD>
<TD vAlign="top" width="50%">Parameter <B>buf</B> does not terminate at the end of
a line.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">REG_STARTEND</TD>
<TD vAlign="top" width="50%">The string searched starts at buf + pmatch[0].rm_so
and ends at buf + pmatch[0].rm_eo.</TD>
<TD>&nbsp;</TD>
</TR>
</TABLE>
</P>
<H3>regfree</H3>
<P>Finally <B>regfree</B> frees all the memory that was allocated by regcomp.
</P>
<P><I>Footnote: this is an abridged reference to the POSIX API functions, it is
provided for compatibility with other libraries, rather than an API to be used
in new code (unless you need access from a language other than C++). This
version of these functions should also happily coexist with other versions, as
the names used are macros that expand to the actual function names.</I>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,84 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Redistributables and Library Names</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Redistributables and Library Names</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>If you are using Microsoft or Borland C++ and link to a dll version of the run
time library, then you can choose to also link to a dll version of boost.regex
by defining the symbol BOOST_REGEX_DYN_LINK when you compile your code. While
these dll's are redistributable, there are no "standard" versions, so when
installing on the users PC, you should place these in a directory private to
your application, and not in the PC's directory path. Note that if you link to
a static version of your run time library, then you will also link to a static
version of boost.regex and no dll's will need to be distributed. The possible
boost.regex dll and library names are computed according to the following
formula:<BR>
</P>
<P></P>
<P>BOOST_LIB_PREFIX<BR>
+ "boost_regex_"<BR>
+ BOOST_LIB_TOOLSET<BR>
+ "_"<BR>
+ BOOST_LIB_THREAD_OPT<BR>
+ BOOST_LIB_RT_OPT<BR>
+ BOOST_LIB_DEBUG_OPT<BR>
<BR>
These are defined as:</P>
<P>BOOST_LIB_PREFIX: Either "lib" if this is a static link library,
or&nbsp;nothing for dynamic / shared&nbsp;libraries.<BR>
<BR>
BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).<BR>
<BR>
BOOST_LIB_THREAD_OPT: "s" for single thread builds,<BR>
"m" for multithread builds.<BR>
<BR>
BOOST_LIB_RT_OPT: "s" for static runtime,<BR>
"d" for dynamic runtime.<BR>
<BR>
BOOST_LIB_LINK_OPT: "s" for static link,<BR>
"i" for dynamic link.<BR>
<BR>
BOOST_LIB_DEBUG_OPT: nothing for release builds,<BR>
"d" for debug builds,<BR>
"dd" for debug-diagnostic builds (_STLP_DEBUG).</P>
<P>
Note: you can disable automatic library selection by defining the symbol
BOOST_REGEX_NO_LIB when compiling, this is useful if you want to statically
link even though you're using the dll version of your run time library, or if
you need to debug boost.regex.
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,44 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Class reg_expression (deprecated)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Class reg_expression (deprecated)</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>The use of class template reg_expression is deprecated: use <A href="basic_regex.html">
basic_regex</A> instead.</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,82 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: regbase</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">regbase</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>Use of the type <code>boost::regbase</code> is now deprecated,
and the type does not form a part of the <a href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</a>.&nbsp; This type
still exists as a base class of <code>boost::basic_regex</code>,
and you can still refer to <code>
boost::regbase::constant_name</code> in your code, however for
maximum portability to other std regex implementations you should
instead use either:</p>
<pre>
boost::regex_constants::constant_name
</pre>
<p>or</p>
<pre>
boost::regex::constant_name
</pre>
<p>or</p>
<pre>
boost::wregex::constant_name
</pre>
<p></p>
<hr>
<br>
<br>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,611 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: class RegEx (deprecated)</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">class RegEx (deprecated)</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>The high level wrapper class RegEx is now deprecated and does
not form a part of the <a href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</a>.&nbsp; This type
still exists, and existing code will continue to compile, however
the following documentation is unlikely to be further updated.</p>
<pre>
#include &lt;boost/cregex.hpp&gt;
</pre>
<p>The class RegEx provides a high level simplified interface to
the regular expression library, this class only handles narrow
character strings, and regular expressions always follow the
"normal" syntax - that is the same as the perl / ECMAScript
synatx.</p>
<pre>
<b>typedef</b> <b>bool</b> (*GrepCallback)(<b>const</b> RegEx&amp; expression);
<b>typedef</b> <b>bool</b> (*GrepFileCallback)(<b>const</b> <b>char</b>* file, <b>const</b> RegEx&amp; expression);
<b>typedef</b> <b>bool</b> (*FindFilesCallback)(<b>const</b> <b>char</b>* file);
<b>class</b> RegEx
{
<b>public</b>:
RegEx();
RegEx(<b>const</b> RegEx&amp; o);
~RegEx();
RegEx(<b>const</b> <b>char</b>* c, <b>bool</b> icase = <b>false</b>);
<strong>explicit</strong> RegEx(<b>const</b> std::string&amp; s, <b>bool</b> icase = <b>false</b>);
RegEx&amp; <b>operator</b>=(<b>const</b> RegEx&amp; o);
RegEx&amp; <b>operator</b>=(<b>const</b> <b>char</b>* p);
RegEx&amp; <b>operator</b>=(<b>const</b> std::string&amp; s);
<b>unsigned</b> <b>int</b> SetExpression(<b>const</b> <b>char</b>* p, <b>bool</b> icase = <b>false</b>);
<b>unsigned</b> <b>int</b> SetExpression(<b>const</b> std::string&amp; s, <b>bool</b> icase = <b>false</b>);
std::string Expression()<b>const</b>;
<font color="#000080"><i>//
</i> <i>// now matching operators:</i>
<i>//</i></font>
<b>bool</b> Match(<b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>bool</b> Match(<b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>bool</b> Search(<b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>bool</b> Search(<b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(GrepCallback cb, <b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(GrepCallback cb, <b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(std::vector&lt;std::string&gt;&amp; v, <b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(std::vector&lt;std::string&gt;&amp; v, <b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(std::vector&lt;<b>unsigned</b> <b>int</b>&gt;&amp; v, <b>const</b> <b>char</b>* p, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> Grep(std::vector&lt;<b>unsigned</b> <b>int</b>&gt;&amp; v, <b>const</b> std::string&amp; s, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> GrepFiles(GrepFileCallback cb, <b>const</b> <b>char</b>* files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> GrepFiles(GrepFileCallback cb, <b>const</b> std::string&amp; files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> FindFiles(FindFilesCallback cb, <b>const</b> <b>char</b>* files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags = match_default);
<b>unsigned</b> <b>int</b> FindFiles(FindFilesCallback cb, <b>const</b> std::string&amp; files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags = match_default);
std::string Merge(<b>const</b> std::string&amp; in, <b>const</b> std::string&amp; fmt, <b>bool</b> copy = <b>true</b>, <b>unsigned</b> <b>int</b> flags = match_default);
std::string Merge(<b>const</b> char* in, <b>const</b> char* fmt, <b>bool</b> copy = <b>true</b>, <b>unsigned int</b> flags = match_default);
<b>unsigned</b> Split(std::vector&lt;std::string&gt;&amp; v, std::string&amp; s, <b>unsigned</b> flags = match_default, <b>unsigned</b> max_count = ~0);
<font color="#000080"><i>//
</i> <i>// now operators for returning what matched in more detail:
</i> <i>//
</i></font> <b>unsigned</b> <b>int</b> Position(<b>int</b> i = 0)<b>const</b>;
<b>unsigned</b> <b>int</b> Length(<b>int</b> i = 0)<b>const</b>;
<strong>bool</strong> Matched(<strong>int</strong> i = 0)<strong>const</strong>;
<b>unsigned</b> <b>int</b> Line()<b>const</b>;
<b>unsigned int</b> Marks() const;
std::string What(<b>int</b> i)<b>const</b>;
std::string <b>operator</b>[](<b>int</b> i)<b>const</b> ;
<strong>static const unsigned int</strong> npos;
};
</pre>
<p>Member functions for class RegEx are defined as follows:<br>
&nbsp;</p>
<p></p>
<table id="Table2" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx();</td>
<td valign="top" width="42%">Default constructor, constructs an
instance of RegEx without any valid expression.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx(<b>const</b> RegEx&amp; o);</td>
<td valign="top" width="42%">Copy constructor, all the properties
of parameter <i>o</i> are copied.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx(<b>const</b> <b>char</b>* c, <b>
bool</b> icase = <b>false</b>);</td>
<td valign="top" width="42%">Constructs an instance of RegEx,
setting the expression to <i>c</i>, if <i>icase</i> is <i>true</i>
then matching is insensitive to case, otherwise it is sensitive to
case. Throws <i>bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx(<b>const</b> std::string&amp; s,
<b>bool</b> icase = <b>false</b>);</td>
<td valign="top" width="42%">Constructs an instance of RegEx,
setting the expression to <i>s</i>, if <i>icase</i> is <i>true</i>
then matching is insensitive to case, otherwise it is sensitive to
case. Throws <i>bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx&amp; <b>
operator</b>=(<b>const</b> RegEx&amp; o);</td>
<td valign="top" width="42%">Default assignment operator.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx&amp; <b>
operator</b>=(<b>const</b> <b>char</b>* p);</td>
<td valign="top" width="42%">Assignment operator, equivalent to
calling <i>SetExpression(p, false).</i> Throws <i>
bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">RegEx&amp; <b>
operator</b>=(<b>const</b> std::string&amp; s);</td>
<td valign="top" width="42%">Assignment operator, equivalent to
calling <i>SetExpression(s, false).</i> Throws <i>
bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
SetExpression(<b>constchar</b>* p, <b>bool</b> icase = <b>
false</b>);</td>
<td valign="top" width="42%">Sets the current expression to <i>
p</i>, if <i>icase</i> is <i>true</i> then matching is insensitive
to case, otherwise it is sensitive to case. Throws <i>
bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
SetExpression(<b>const</b> std::string&amp; s, <b>bool</b> icase =
<b>false</b>);</td>
<td valign="top" width="42%">Sets the current expression to <i>
s</i>, if <i>icase</i> is <i>true</i> then matching is insensitive
to case, otherwise it is sensitive to case. Throws <i>
bad_expression</i> on failure.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string
Expression()<b>const</b>;</td>
<td valign="top" width="42%">Returns a copy of the current regular
expression.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>bool</b> Match(<b>const</b> <b>
char</b>* p, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Attempts to match the current
expression against the text <i>p</i> using the match flags <i>
flags</i> - see <a href="match_flag_type.html">match flags</a>.
Returns <i>true</i> if the expression matches the whole of the
input string.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>bool</b> Match(<b>const</b>
std::string&amp; s, <b>unsigned</b> <b>int</b> flags =
match_default) ;</td>
<td valign="top" width="42%">Attempts to match the current
expression against the text <i>s</i> using the match flags <i>
flags</i> - see <a href="match_flag_type.html">match flags</a>.
Returns <i>true</i> if the expression matches the whole of the
input string.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>bool</b> Search(<b>const</b> <b>
char</b>* p, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Attempts to find a match for the
current expression somewhere in the text <i>p</i> using the match
flags <i>flags</i> - see <a href="match_flag_type.html">match
flags</a>. Returns <i>true</i> if the match succeeds.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>bool</b> Search(<b>const</b>
std::string&amp; s, <b>unsigned</b> <b>int</b> flags =
match_default) ;</td>
<td valign="top" width="42%">Attempts to find a match for the
current expression somewhere in the text <i>s</i> using the match
flags <i>flags</i> - see <a href="match_flag_type.html">match
flags</a>. Returns <i>true</i> if the match succeeds.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(GrepCallback cb, <b>const</b> <b>char</b>* p, <b>unsigned</b>
<b>int</b> flags = match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>p</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match found calls the call-back function <i>cb</i> as: cb(*this);
<p>If at any stage the call-back function returns false then the
grep operation terminates, otherwise continues until no further
matches are found. Returns the number of matches found.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(GrepCallback cb, <b>const</b> std::string&amp; s, <b>
unsigned</b> <b>int</b> flags = match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>s</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match found calls the call-back function <i>cb</i> as: cb(*this);
<p>If at any stage the call-back function returns false then the
grep operation terminates, otherwise continues until no further
matches are found. Returns the number of matches found.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(std::vector&lt;std::string&gt;&amp; v, <b>const</b> <b>
char</b>* p, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>p</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match pushes a copy of what matched onto <i>v</i>. Returns the
number of matches found.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(std::vector&lt;std::string&gt;&amp; v, <b>const</b>
std::string&amp; s, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>s</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match pushes a copy of what matched onto <i>v</i>. Returns the
number of matches found.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(std::vector&lt;<b>unsigned int</b>&gt;&amp; v, <b>const</b>
<b>char</b>* p, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>p</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match pushes the starting index of what matched onto <i>v</i>.
Returns the number of matches found.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Grep(std::vector&lt;<b>unsigned int</b>&gt;&amp; v, <b>const</b>
std::string&amp; s, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the text <i>s</i> using the match flags <i>flags</i>
- see <a href="match_flag_type.html">match flags</a>. For each
match pushes the starting index of what matched onto <i>v</i>.
Returns the number of matches found.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
GrepFiles(GrepFileCallback cb, <b>const</b> <b>char</b>* files, <b>
bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the files <i>files</i> using the match flags <i>
flags</i> - see <a href="match_flag_type.html">match flags</a>. For
each match calls the call-back function cb.&nbsp;
<p>If the call-back returns false then the algorithm returns
without considering further matches in the current file, or any
further files.&nbsp;</p>
<p>The parameter <i>files</i> can include wild card characters '*'
and '?', if the parameter <i>recurse</i> is true then searches
sub-directories for matching file names.&nbsp;</p>
<p>Returns the total number of matches found.</p>
<p>May throw an exception derived from std::runtime_error if file
io fails.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
GrepFiles(GrepFileCallback cb, <b>const</b> std::string&amp; files,
<b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b>
flags = match_default);</td>
<td valign="top" width="42%">Finds all matches of the current
expression in the files <i>files</i> using the match flags <i>
flags</i> - see <a href="match_flag_type.html">match flags</a>. For
each match calls the call-back function cb.&nbsp;
<p>If the call-back returns false then the algorithm returns
without considering further matches in the current file, or any
further files.&nbsp;</p>
<p>The parameter <i>files</i> can include wild card characters '*'
and '?', if the parameter <i>recurse</i> is true then searches
sub-directories for matching file names.&nbsp;</p>
<p>Returns the total number of matches found.</p>
<p>May throw an exception derived from std::runtime_error if file
io fails.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
FindFiles(FindFilesCallback cb, <b>const</b> <b>char</b>* files,
<b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>int</b>
flags = match_default);</td>
<td valign="top" width="42%">Searches <i>files</i> to find all
those which contain at least one match of the current expression
using the match flags <i>flags</i> - see <a href="match_flag_type.html">match flags</a>. For each matching file
calls the call-back function cb.&nbsp;
<p>If the call-back returns false then the algorithm returns
without considering any further files.&nbsp;</p>
<p>The parameter <i>files</i> can include wild card characters '*'
and '?', if the parameter <i>recurse</i> is true then searches
sub-directories for matching file names.&nbsp;</p>
<p>Returns the total number of files found.</p>
<p>May throw an exception derived from std::runtime_error if file
io fails.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
FindFiles(FindFilesCallback cb, <b>const</b> std::string&amp;
files, <b>bool</b> recurse = <b>false</b>, <b>unsigned</b> <b>
int</b> flags = match_default);</td>
<td valign="top" width="42%">Searches <i>files</i> to find all
those which contain at least one match of the current expression
using the match flags <i>flags</i> - see <a href="match_flag_type.html">match flags</a>. For each matching file
calls the call-back function cb.&nbsp;
<p>If the call-back returns false then the algorithm returns
without considering any further files.&nbsp;</p>
<p>The parameter <i>files</i> can include wild card characters '*'
and '?', if the parameter <i>recurse</i> is true then searches
sub-directories for matching file names.&nbsp;</p>
<p>Returns the total number of files found.</p>
<p>May throw an exception derived from std::runtime_error if file
io fails.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string Merge(<b>const</b>
std::string&amp; in, <b>const</b> std::string&amp; fmt, <b>bool</b>
copy = <b>true</b>, <b>unsigned</b> <b>int</b> flags =
match_default);</td>
<td valign="top" width="42%">Performs a search and replace
operation: searches through the string <i>in</i> for all
occurrences of the current expression, for each occurrence replaces
the match with the format string <i>fmt</i>. Uses <i>flags</i> to
determine what gets matched, and how the format string should be
treated. If <i>copy</i> is true then all unmatched sections of
input are copied unchanged to output, if the flag <em>
format_first_only</em> is set then only the first occurance of the
pattern found is replaced. Returns the new string. See <a href="format_syntax.html">also format string syntax</a>, <a href="match_flag_type.html">match flags</a> and <a href="match_flag_type.html">format flags</a>.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string Merge(<b>const</b> char*
in, <b>const</b> char* fmt, <b>bool</b> copy = <b>true</b>, <b>
unsigned int</b> flags = match_default);</td>
<td valign="top" width="42%">Performs a search and replace
operation: searches through the string <i>in</i> for all
occurrences of the current expression, for each occurrence replaces
the match with the format string <i>fmt</i>. Uses <i>flags</i> to
determine what gets matched, and how the format string should be
treated. If <i>copy</i> is true then all unmatched sections of
input are copied unchanged to output, if the flag <em>
format_first_only</em> is set then only the first occurance of the
pattern found is replaced. Returns the new string. See <a href="format_syntax.html">also format string syntax</a>, <a href="match_flag_type.html">match flags</a> and <a href="match_flag_type.html">format flags</a>.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top"><b>unsigned</b>
Split(std::vector&lt;std::string&gt;&amp; v, std::string&amp; s,
<b>unsigned</b> flags = match_default, <b>unsigned</b> max_count =
~0);</td>
<td valign="top">Splits the input string and pushes each one onto
the vector. If the expression contains no marked sub-expressions,
then one string is outputted for each section of the input that
does not match the expression. If the expression does contain
marked sub-expressions, then outputs one string for each marked
sub-expression each time a match occurs. Outputs no more than <i>
max_count</i> strings. Before returning, deletes from the input
string <i>s</i> all of the input that has been processed (all of
the string if <i>max_count</i> was not reached). Returns the number
of strings pushed onto the vector.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Position(<b>int</b> i = 0)<b>const</b>;</td>
<td valign="top" width="42%">Returns the position of what matched
sub-expression <i>i</i>. If <i>i = 0</i> then returns the position
of the whole match. Returns RegEx::npos if the supplied index is
invalid, or if the specified sub-expression did not participate in
the match.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Length(<b>int</b> i = 0)<b>const</b>;</td>
<td valign="top" width="42%">Returns the length of what matched
sub-expression <i>i</i>. If <i>i = 0</i> then returns the length of
the whole match. Returns RegEx::npos if the supplied index is
invalid, or if the specified sub-expression did not participate in
the match.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><strong>bool</strong> Matched(<strong>int</strong> i =
0)<strong>const</strong>;</td>
<td>Returns true if sub-expression <em>i</em> was matched, false
otherwise.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned</b> <b>int</b>
Line()<b>const</b>;</td>
<td valign="top" width="42%">Returns the line on which the match
occurred, indexes start from 1 not zero, if no match occurred then
returns RegEx::npos.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%"><b>unsigned int</b> Marks()
const;</td>
<td valign="top" width="42%">Returns the number of marked
sub-expressions contained in the expression. Note that this
includes the whole match (sub-expression zero), so the value
returned is always &gt;= 1.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string What(<b>int</b>
i)<b>const</b>;</td>
<td valign="top" width="42%">Returns a copy of what matched
sub-expression <i>i</i>. If <i>i = 0</i> then returns a copy of the
whole match. Returns a null string if the index is invalid or if
the specified sub-expression did not participate in a match.</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="7%">&nbsp;</td>
<td valign="top" width="43%">std::string <b>
operator</b>[](<b>int</b> i)<b>const</b> ;</td>
<td valign="top" width="42%">Returns <i>what(i);</i>
<p>Can be used to simplify access to sub-expression matches, and
make usage more perl-like.</p>
</td>
<td valign="top" width="7%">&nbsp;</td>
</tr>
</table>
<br>
<br>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,204 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>Boost.Regex: Algorithm regex_format (deprecated)</title>
<meta http-equiv="Content-Type" content=
"text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%"
border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt=
"C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Algorithm regex_format (deprecated)</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt=
"Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>The algorithm regex_format is deprecated; new code should use
match_results::format instead.&nbsp; Existing code will continue to
compile, the following documentation is taken from the previous
version of boost.regex and will not be further updated:</p>
<h3>Algorithm regex_format</h3>
<pre>
#include &lt;<a href="../../../boost/regex.hpp">boost/regex.hpp</a>&gt;
</pre>
<p>The algorithm regex_format takes the results of a match and
creates a new string based upon a <a href="format_syntax.html">
format string</a>, regex_format can be used for search and replace
operations:</p>
<pre>
<b>template</b> &lt;<b>class</b> OutputIterator, <b>class</b> iterator, <b>class</b> Allocator, <b>class</b> charT&gt;
OutputIterator regex_format(OutputIterator out,
<b>const</b> match_results&lt;iterator, Allocator&gt;&amp; m,
<b>const</b> charT* fmt,
match_flag_type flags = 0);
<b>template</b> &lt;<b>class</b> OutputIterator, <b>class</b> iterator, <b>class</b> Allocator, <b>class</b> charT&gt;
OutputIterator regex_format(OutputIterator out,
<b>const</b> match_results&lt;iterator, Allocator&gt;&amp; m,
<b>const</b> std::basic_string&lt;charT&gt;&amp; fmt,
match_flag_type flags = 0);
</pre>
<p>The library also defines the following convenience variation of
regex_format, which returns the result directly as a string, rather
than outputting to an iterator [note - this version may not be
available, or may be available in a more limited form, depending
upon your compilers capabilities]:</p>
<pre>
<b>template</b> &lt;<b>class</b> iterator, <b>class</b> Allocator, <b>class</b> charT&gt;
std::basic_string&lt;charT&gt; regex_format
(<b>const</b> match_results&lt;iterator, Allocator&gt;&amp; m,
<b>const</b> charT* fmt,
match_flag_type flags = 0);
<b>template</b> &lt;<b>class</b> iterator, <b>class</b> Allocator, <b>class</b> charT&gt;
std::basic_string&lt;charT&gt; regex_format
(<b>const</b> match_results&lt;iterator, Allocator&gt;&amp; m,
<b>const</b> std::basic_string&lt;charT&gt;&amp; fmt,
match_flag_type flags = 0);
</pre>
<p>Parameters to the main version of the function are passed as
follows:</p>
<p></p>
<table id="Table2" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">OutputIterator out</td>
<td valign="top" width="44%">An output iterator type, the output
string is sent to this iterator. Typically this would be a
std::ostream_iterator.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%"><b>const</b>
match_results&lt;iterator, Allocator&gt;&amp; m</td>
<td valign="top" width="44%">An instance of match_results&lt;&gt;
obtained from one of the matching algorithms above, and denoting
what matched.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%"><b>const</b> charT* fmt</td>
<td valign="top" width="44%">A format string that determines how
the match is transformed into the new string.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%"><b>unsigned</b> flags</td>
<td valign="top" width="44%">Optional flags which describe how the
format string is to be interpreted.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
</table>
<br>
<br>
<p><a name="format_flags"></a>Format flags are defined as
follows:</p>
<p></p>
<table id="Table3" cellspacing="0" cellpadding="7" width="100%"
border="0">
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">format_all</td>
<td valign="top" width="43%">Enables all syntax options (perl-like
plus extentions).</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">format_sed</td>
<td valign="top" width="43%">Allows only a sed-like syntax.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">format_perl</td>
<td valign="top" width="43%">Allows only a perl-like syntax.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td valign="top" width="9%">&nbsp;</td>
<td valign="top" width="39%">format_no_copy</td>
<td valign="top" width="43%">Disables copying of unmatched sections
to the output string during <a href="regex_merge.html">
regex_merge</a> operations.</td>
<td valign="top" width="9%">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>format_first_only</td>
<td>When this flag is set only the first occurance will be replaced
(applies to regex_merge only).</td>
<td>&nbsp;</td>
</tr>
</table>
<br>
<br>
<p>The format string syntax (and available options) is described
more fully under <a href="format_syntax.html">format strings</a>
.</p>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,382 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_grep (deprecated)</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">Algorithm regex_grep (deprecated)</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<p>The algorithm regex_grep is deprecated in favor of <a href="regex_iterator.html">regex_iterator</a>
which provides a more convenient and standard library friendly interface.</p>
<p>The following documentation is taken unchanged from the previous boost release,
and will not be updated in future.</p>
<hr>
<pre>
#include &lt;<a href="../../../boost/regex.hpp">boost/regex.hpp</a>&gt;
</pre>
<p>regex_grep allows you to search through a bidirectional-iterator range and
locate all the (non-overlapping) matches with a given regular expression. The
function is declared as:</p>
<pre>
<b>template</b> &lt;<b>class</b> Predicate, <b>class</b> iterator, <b>class</b> charT, <b>class</b> traits, <b>class</b> Allocator&gt;
<b>unsigned</b> <b>int</b> regex_grep(Predicate foo,
iterator first,
iterator last,
<b>const</b> basic_regex&lt;charT, traits, Allocator&gt;&amp; e,
<b>unsigned</b> flags = match_default)
</pre>
<p>The library also defines the following convenience versions, which take either
a const charT*, or a const std::basic_string&lt;&gt;&amp; in place of a pair of
iterators [note - these versions may not be available, or may be available in a
more limited form, depending upon your compilers capabilities]:</p>
<pre>
<b>template</b> &lt;<b>class</b> Predicate, <b>class</b> charT, <b>class</b> Allocator, <b>class</b> traits&gt;
<b>unsigned</b> <b>int</b> regex_grep(Predicate foo,
<b>const</b> charT* str,
<b>const</b> basic_regex&lt;charT, traits, Allocator&gt;&amp; e,
<b>unsigned</b> flags = match_default);
<b>template</b> &lt;<b>class</b> Predicate, <b>class</b> ST, <b>class</b> SA, <b>class</b> Allocator, <b>class</b> charT, <b>class</b> traits&gt;
<b>unsigned</b> <b>int</b> regex_grep(Predicate foo,
<b>const</b> std::basic_string&lt;charT, ST, SA&gt;&amp; s,
<b>const</b> basic_regex&lt;charT, traits, Allocator&gt;&amp; e,
<b>unsigned</b> flags = match_default);
</pre>
<p>The parameters for the primary version of regex_grep have the following
meanings:&nbsp;</p>
<p></p>
<table id="Table2" cellspacing="0" cellpadding="7" width="624" border="0">
<tr>
<td width="5%">&nbsp;</td>
<td valign="top" width="50%">foo</td>
<td valign="top" width="50%">A predicate function object or function pointer, see
below for more information.</td>
<td width="5%">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top" width="50%">first</td>
<td valign="top" width="50%">The start of the range to search.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top" width="50%">last</td>
<td valign="top" width="50%">The end of the range to search.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top" width="50%">e</td>
<td valign="top" width="50%">The regular expression to search for.</td>
<td>&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td valign="top" width="50%">flags</td>
<td valign="top" width="50%">The flags that determine how matching is carried out,
one of the <a href="#match_type">match_flags</a> enumerators.</td>
<td>&nbsp;</td>
</tr>
</table>
<br>
<br>
<p>The algorithm finds all of the non-overlapping matches of the expression e, for
each match it fills a <a href="#reg_match">match_results</a>&lt;iterator,
Allocator&gt; structure, which contains information on what matched, and calls
the predicate foo, passing the match_results&lt;iterator, Allocator&gt; as a
single argument. If the predicate returns true, then the grep operation
continues, otherwise it terminates without searching for further matches. The
function returns the number of matches found.</p>
<p>The general form of the predicate is:</p>
<pre>
<b>struct</b> grep_predicate
{
<b> bool</b> <b>operator</b>()(<b>const</b> match_results&lt;iterator_type, typename expression_type::alloc_type::template rebind&lt;sub_match&lt;BidirectionalIterator&gt; &gt;::other&gt;&amp; m);
};
</pre>
<p>Note that in almost every case the allocator parameter can be omitted, when
specifying the <a href="match_results.html">match_results</a> type,
alternatively one of the typedefs cmatch, wcmatch, smatch or wsmatch can be
used.</p>
<p>For example the regular expression "a*b" would find one match in the string
"aaaaab" and two in the string "aaabb".</p>
<p>Remember this algorithm can be used for a lot more than implementing a version
of grep, the predicate can be and do anything that you want, grep utilities
would output the results to the screen, another program could index a file
based on a regular expression and store a set of bookmarks in a list, or a text
file conversion utility would output to file. The results of one regex_grep can
even be chained into another regex_grep to create recursive parsers.</p>
<P>The algorithm may throw&nbsp;<CODE>std::runtime_error</CODE> if the complexity
of matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<p><a href="../example/snippets/regex_grep_example_1.cpp"> Example</a>: convert
the example from <i>regex_search</i> to use <i>regex_grep</i> instead:</p>
<pre>
<font color="#008000">#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
</font><font color="#000080"><i>// IndexClasses:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</i></font><b>typedef</b> std::map&lt;std::string, <b>int</b>, std::less&lt;std::string&gt; &gt; map_type;
const char* re =
// possibly leading whitespace:
"^[[:space:]]*"
// possible template declaration:
"(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"
// class or struct:
"(class|struct)[[:space:]]*"
// leading declspec macros etc:
"("
"\\&lt;\\w+\\&gt;"
"("
"[[:blank:]]*\\([^)]*\\)"
")?"
"[[:space:]]*"
")*"
// the class name
"(\\&lt;\\w*\\&gt;)[[:space:]]*"
// template specialisation parameters
"(&lt;[^;:{]+&gt;)?[[:space:]]*"
// terminate in { or :
"(\\{|:[^;\\{()]*\\{)";
boost::regex expression(re);
<b>class</b> IndexClassesPred
{
map_type&amp; m;
std::string::const_iterator base;
<b>public</b>:
IndexClassesPred(map_type&amp; a, std::string::const_iterator b) : m(a), base(b) {}
<b>bool</b> <b>operator</b>()(<b>const</b> smatch&amp; what)
{
<font color=
#000080> <i>// what[0] contains the whole string
</i> <i>// what[5] contains the class name.
</i> <i>// what[6] contains the template specialisation if any.
</i> <i>// add class name and position to map:
</i></font> m[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =
what[5].first - base;
<b>return</b> <b>true</b>;
}
};
<b>void</b> IndexClasses(map_type&amp; m, <b>const</b> std::string&amp; file)
{
std::string::const_iterator start, end;
start = file.begin();
end = file.end();
regex_grep(IndexClassesPred(m, start), start, end, expression);
}
</pre>
<p><a href="../example/snippets/regex_grep_example_2.cpp"> Example</a>: Use
regex_grep to call a global callback function:</p>
<pre>
<font color="#008000">#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
</font><font color="#000080"><i>// purpose:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</i></font><b>typedef</b> std::map&lt;std::string, <b>int</b>, std::less&lt;std::string&gt; &gt; map_type;
const char* re =
// possibly leading whitespace:
"^[[:space:]]*"
// possible template declaration:
"(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"
// class or struct:
"(class|struct)[[:space:]]*"
// leading declspec macros etc:
"("
"\\&lt;\\w+\\&gt;"
"("
"[[:blank:]]*\\([^)]*\\)"
")?"
"[[:space:]]*"
")*"
// the class name
"(\\&lt;\\w*\\&gt;)[[:space:]]*"
// template specialisation parameters
"(&lt;[^;:{]+&gt;)?[[:space:]]*"
// terminate in { or :
"(\\{|:[^;\\{()]*\\{)";
boost::regex expression(re);
map_type class_index;
std::string::const_iterator base;
<b>bool</b> grep_callback(<b>const</b> boost::smatch&amp; what)
{
<font color="#000080"> <i>// what[0] contains the whole string
</i> <i>// what[5] contains the class name.
</i> <i>// what[6] contains the template specialisation if any.
</i> <i>// add class name and position to map:
</i></font> class_index[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =
what[5].first - base;
<b>return</b> <b>true</b>;
}
<b>void</b> IndexClasses(<b>const</b> std::string&amp; file)
{
std::string::const_iterator start, end;
start = file.begin();
end = file.end();
base = start;
regex_grep(grep_callback, start, end, expression, match_default);
}
</pre>
<p><a href="../example/snippets/regex_grep_example_3.cpp"> Example</a>: use
regex_grep to call a class member function, use the standard library adapters <i>std::mem_fun</i>
and <i>std::bind1st</i> to convert the member function into a predicate:</p>
<pre>
<font color="#008000">#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
#include &lt;functional&gt;
</font><font color="#000080"><i>// purpose:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</i></font><b>typedef</b> std::map&lt;std::string, <b>int</b>, std::less&lt;std::string&gt; &gt; map_type;
<b>class</b> class_index
{
boost::regex expression;
map_type index;
std::string::const_iterator base;
<b>bool</b> grep_callback(boost::smatch what);
<b>public</b>:
<b> void</b> IndexClasses(<b>const</b> std::string&amp; file);
class_index()
: index(),
expression(<font color=
#000080>"^(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"
"(class|struct)[[:space:]]*(\\&lt;\\w+\\&gt;([[:blank:]]*\\([^)]*\\))?"
"[[:space:]]*)*(\\&lt;\\w*\\&gt;)[[:space:]]*(&lt;[^;:{]+&gt;[[:space:]]*)?"
"(\\{|:[^;\\{()]*\\{)"
</font> ){}
};
<b>bool</b> class_index::grep_callback(boost::smatch what)
{
<font color="#000080"> <i>// what[0] contains the whole string
</i> <i>// what[5] contains the class name.
</i> <i>// what[6] contains the template specialisation if any.
</i> <i>// add class name and position to map:
</i></font> index[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =
what[5].first - base;
<b>return</b> <b>true</b>;
}
<b>void</b> class_index::IndexClasses(<b>const</b> std::string&amp; file)
{
std::string::const_iterator start, end;
start = file.begin();
end = file.end();
base = start;
regex_grep(std::bind1st(std::mem_fun(&amp;class_index::grep_callback), <b>this</b>),
start,
end,
expression);
}
</pre>
<p><a href="../example/snippets/regex_grep_example_4.cpp"> Finally</a>, C++
Builder users can use C++ Builder's closure type as a callback argument:</p>
<pre>
<font color="#008000">#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
#include &lt;functional&gt;
</font><font color="#000080"><i>// purpose:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</i></font><b>typedef</b> std::map&lt;std::string, <b>int</b>, std::less&lt;std::string&gt; &gt; map_type;
<b>class</b> class_index
{
boost::regex expression;
map_type index;
std::string::const_iterator base;
<b>typedef</b> boost::smatch arg_type;
<b>bool</b> grep_callback(<b>const</b> arg_type&amp; what);
<b>public</b>:
<b>typedef</b> <b>bool</b> (<b>__closure</b>* grep_callback_type)(<b>const</b> arg_type&amp;);
<b>void</b> IndexClasses(<b>const</b> std::string&amp; file);
class_index()
: index(),
expression(<font color=
#000080>"^(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"
"(class|struct)[[:space:]]*(\\&lt;\\w+\\&gt;([[:blank:]]*\\([^)]*\\))?"
"[[:space:]]*)*(\\&lt;\\w*\\&gt;)[[:space:]]*(&lt;[^;:{]+&gt;[[:space:]]*)?"
"(\\{|:[^;\\{()]*\\{)"
</font> ){}
};
<b>bool</b> class_index::grep_callback(<b>const</b> arg_type&amp; what)
{
<font color=
#000080> <i>// what[0] contains the whole string</i>
<i>// what[5] contains the class name.</i>
<i>// what[6] contains the template specialisation if any.</i>
<i>// add class name and position to map:</i></font>
index[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =
what[5].first - base;
<b>return</b> <b>true</b>;
}
<b>void</b> class_index::IndexClasses(<b>const</b> std::string&amp; file)
{
std::string::const_iterator start, end;
start = file.begin();
end = file.end();
base = start;
class_index::grep_callback_type cl = &amp;(<b>this</b>-&gt;grep_callback);
regex_grep(cl,
start,
end,
expression);
}
</pre>
<p></p>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,432 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: regex_iterator</title>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../../../boost.css" type="text/css" rel="stylesheet">
</head>
<body>
<p></p>
<table id="Table1" cellspacing="1" cellpadding="1" width="100%" border="0">
<tr>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></a></h3>
</td>
<td width="353">
<h1 align="center">Boost.Regex</h1>
<h2 align="center">regex_iterator</h2>
</td>
<td width="50">
<h3><a href="index.html"><img height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></a></h3>
</td>
</tr>
</table>
<br>
<br>
<hr>
<h3>Contents</h3>
<dl class="index">
<dt><a href="#synopsis">Synopsis</a> <dt><a href="#description">Description</a> <dt><a href="#examples">
Examples</a></dt>
</dl>
<h3><a name="synopsis"></a>Synopsis</h3>
<p>The iterator type regex_iterator will enumerate all of the regular expression
matches found in some sequence: dereferencing a regex_iterator yields a
reference to a&nbsp;<a href="match_results.html">match_results</a> object.</p>
<pre>
template &lt;class BidirectionalIterator,
class charT = iterator_traits&lt;BidirectionalIterator&gt;::value_type,
class traits = regex_traits&lt;charT&gt;,
class Allocator = allocator&lt;charT&gt; &gt;
class regex_iterator
{
public:
typedef <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt; regex_type;
typedef <A href="match_results.html">match_results</A>&lt;BidirectionalIterator&gt; value_type;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::difference_type difference_type;
typedef const value_type* pointer;
typedef const value_type&amp; reference;
typedef std::forward_iterator_tag iterator_category;
<A href="#c1">regex_iterator</A>();
<A href="#c2">regex_iterator</A>(BidirectionalIterator a, BidirectionalIterator b,
const regex_type&amp; re,
<A href="match_flag_type.html">match_flag_type</A> m = match_default);
<A href="#c3">regex_iterator</A>(const regex_iterator&amp;);
regex_iterator&amp; <A href="#o1">operator</A>=(const regex_iterator&amp;);
bool <A href="#o2">operator</A>==(const regex_iterator&amp;)const;
bool <A href="#o3">operator</A>!=(const regex_iterator&amp;)const;
const value_type&amp; <A href="#o4">operator</A>*()const;
const value_type* <A href="#o5">operator</A>-&gt;()const;
regex_iterator&amp; <A href="#o6">operator</A>++();
regex_iterator <A href="#o7">operator</A>++(int);
};
typedef regex_iterator&lt;const char*&gt; cregex_iterator;
typedef regex_iterator&lt;std::string::const_iterator&gt; sregex_iterator;
#ifndef BOOST_NO_WREGEX
typedef regex_iterator&lt;const wchar_t*&gt; wcregex_iterator;
typedef regex_iterator&lt;std::wstring::const_iterator&gt; wsregex_iterator;
#endif
</pre>
<h3><a name="description"></a>Description</h3>
<p>A regex_iterator is constructed from a pair of iterators, and enumerates all
occurrences of a regular expression within that iterator range.</p>
<pre><A name=c1></A>
regex_iterator();
</pre>
<b></b>
<p><b>Effects:</b> constructs an end of sequence regex_iterator.</p>
<pre><A name=c2></A>regex_iterator(BidirectionalIterator a, BidirectionalIterator b,
const regex_type&amp; re,
<A href="match_flag_type.html">match_flag_type</A> m = match_default);
</pre>
<b></b>
<p><b>Effects:</b> constructs a regex_iterator that will enumerate all occurrences
of the expression <em>re</em>, within the sequence <em>[a,b)</em>, and found
using match flags <em>m</em>.&nbsp; The object <em>re</em> must exist for the
lifetime of the regex_iterator.</p>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<pre><A name=c3></A>
regex_iterator(const regex_iterator&amp; that);
</pre>
<b></b>
<p><b>Effects:</b> constructs a copy of <code>that</code>.</p>
<b></b>
<p><b>Postconditions:</b> <code>*this == that</code>.</p>
<pre><A name=o1></A>
regex_iterator&amp; operator=(const regex_iterator&amp;);
</pre>
<b></b>
<p><b>Effects:</b> sets&nbsp;<code>*this</code> equal to those in <code>that</code>.</p>
<b></b>
<p><b>Postconditions:</b> <code>*this == that</code>.</p>
<pre><A name=o2></A>
bool operator==(const regex_iterator&amp; that)const;
</pre>
<b></b>
<p><b>Effects:</b> returns true if *this is equal to that.</p>
<pre><A name=o3></A>
bool operator!=(const regex_iterator&amp;)const;
</pre>
<b></b>
<p><b>Effects:</b> returns <code>!(*this == that)</code>.</p>
<pre><A name=o4></A>
const value_type&amp; operator*()const;
</pre>
<p><b>Effects:</b> dereferencing a regex_iterator object <em>it</em> yields a
const reference to a <a href="match_results.html">match_results</a> object,
whose members are set as follows:</p>
<p></p>
<table id="Table2" cellspacing="1" cellpadding="7" width="624" border="1">
<tbody>
<tr>
<td valign="top" width="50%"><b></b>
<p><b>Element</b></p>
</td>
<td valign="top" width="50%"><b></b>
<p><b>Value</b></p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).size()</p>
</td>
<td valign="top" width="50%">
<p>re.mark_count()</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).empty()</p>
</td>
<td valign="top" width="50%">
<p>false</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).prefix().first</p>
</td>
<td valign="top" width="50%">
<p>The end of the last match found, or the start of the underlying sequence if
this is the first match enumerated</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).prefix().last</p>
</td>
<td valign="top" width="50%">
<p>The same as the start of the match found:<BR>
(*it)[0].first</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).prefix().matched</p>
</td>
<td valign="top" width="50%">
<p>True if the prefix did not match an empty string:<BR>
(*it).prefix().first != (*it).prefix().second</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).suffix().first</p>
</td>
<td valign="top" width="50%">
<p>The same as the end of the match found:<BR>
(*it)[0].second</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).suffix().last</p>
</td>
<td valign="top" width="50%">
<p>The end of the underlying sequence.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it).suffix().matched</p>
</td>
<td valign="top" width="50%">
<p>True if the suffix did not match an empty string:<BR>
(*it).suffix().first != (*it).suffix().second</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[0].first</p>
</td>
<td valign="top" width="50%">
<p>The start of the sequence of characters that matched the regular expression</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[0].second</p>
</td>
<td valign="top" width="50%">
<p>The end of the sequence of characters that matched the regular expression</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[0].matched</p>
</td>
<td valign="top" width="50%">
<p><code>true</code> if a full match was found, and <code>false</code> if it was a
partial match (found as a result of the <code>match_partial</code> flag being
set).</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[n].first</p>
</td>
<td valign="top" width="50%">
<p>For all integers n &lt; (*it).size(), the start of the sequence that matched
sub-expression <i>n</i>. Alternatively, if sub-expression n did not participate
in the match, then <i>last</i>.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[n].second</p>
</td>
<td valign="top" width="50%">
<p>For all integers n &lt; (*it).size(), the end of the sequence that matched
sub-expression <i>n</i>. Alternatively, if sub-expression n did not participate
in the match, then <i>last</i>.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">
<p>(*it)[n].matched</p>
</td>
<td valign="top" width="50%">
<p>For all integers n &lt; (*it).size(), true if sub-expression <i>n</i> participated
in the match, false otherwise.</p>
</td>
</tr>
<tr>
<td valign="top" width="50%">(*it).position(n)</td>
<td valign="top" width="50%">For all integers n &lt; (*it).size(), then the
distance from the start of the underlying sequence to the start of
sub-expression match <em>n</em>.</td>
</tr>
</tbody>
</table>
<br>
<br>
<pre><A name=o5></A>
const value_type* operator-&gt;()const;
</pre>
<b></b>
<p><b>Effects:</b> returns <code>&amp;(*this)</code>.</p>
<pre><A name=o6></A>
regex_iterator&amp; operator++();
</pre>
<p><strong>Effects:</strong> moves the iterator to the next match in the
underlying sequence, or the end of sequence iterator if none if found.
&nbsp;When the last match found matched a zero length string, then the
regex_iterator will find the next match as follows: if there exists a non-zero
length match that starts at the same location as the last one, then returns it,
otherwise starts looking for the next (possibly zero length) match from one
position to the right of the last match.</p>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<b></b>
<p><b>Returns:</b> <code>*this</code>.</p>
<pre><A name=o7></A>
regex_iterator operator++(int);
</pre>
<b></b>
<p><b>Effects:</b> constructs a copy <code>result</code> of <code>*this</code>,
then calls <code>++(*this)</code>.</p>
<b></b>
<p><b>Returns:</b> <code>result</code>.</p>
<h3>Examples</h3>
<p>The following <a href="../example/snippets/regex_iterator_example.cpp">example</a>
takes a C++ source file and builds up an index of class names, and the location
of that class in the file.</p>
<pre>
<font color="#008040">#include &lt;string&gt;</font>
<font color="#008040">#include &lt;map&gt;</font>
<font color="#008040">#include &lt;fstream&gt;</font>
<font color="#008040">#include &lt;iostream&gt;</font>
<font color="#008040">#include &lt;boost/regex.hpp&gt;</font>
<b>using</b> <b>namespace</b> std;
<i><font color="#000080">// purpose:</font></i>
<i><font color=
#000080>// takes the contents of a file in the form of a string</font></i>
<i><font color=
#000080>// and searches for all the C++ class definitions, storing</font></i>
<i><font color=
#000080>// their locations in a map of strings/int's</font></i>
<b>typedef</b> std::map&lt;std::string, std::string::difference_type, std::less&lt;std::string&gt; &gt; map_type;
<b>const</b> <b>char</b>* re =
<i><font color=
#000080>// possibly leading whitespace: </font></i>
<font color="#0000ff">"^[[:space:]]*"</font>
<i><font color=
#000080>// possible template declaration:</font></i>
<font color=
#0000ff>"(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?"</font>
<i><font color="#000080">// class or struct:</font></i>
<font color="#0000ff">"(class|struct)[[:space:]]*"</font>
<i><font color=
#000080>// leading declspec macros etc:</font></i>
<font color="#0000ff">"("</font>
<font color="#0000ff">"\\&lt;\\w+\\&gt;"</font>
<font color="#0000ff">"("</font>
<font color="#0000ff">"[[:blank:]]*\\([^)]*\\)"</font>
<font color="#0000ff">")?"</font>
<font color="#0000ff">"[[:space:]]*"</font>
<font color="#0000ff">")*"</font>
<i><font color="#000080">// the class name</font></i>
<font color="#0000ff">"(\\&lt;\\w*\\&gt;)[[:space:]]*"</font>
<i><font color=
#000080>// template specialisation parameters</font></i>
<font color="#0000ff">"(&lt;[^;:{]+&gt;)?[[:space:]]*"</font>
<i><font color="#000080">// terminate in { or :</font></i>
<font color="#0000ff">"(\\{|:[^;\\{()]*\\{)"</font>;
boost::regex expression(re);
map_type class_index;
<b>bool</b> regex_callback(<b>const</b> boost::match_results&lt;std::string::const_iterator&gt;&amp; what)
{
<i><font color=
#000080>// what[0] contains the whole string</font></i>
<i><font color=
#000080>// what[5] contains the class name.</font></i>
<i><font color=
#000080>// what[6] contains the template specialisation if any.</font></i>
<i><font color=
#000080>// add class name and position to map:</font></i>
class_index[what[<font color=
#0000a0>5</font>].str() + what[<font color=
#0000a0>6</font>].str()] = what.position(<font color=
#0000a0>5</font>);
<b>return</b> <b>true</b>;
}
<b>void</b> load_file(std::string&amp; s, std::istream&amp; is)
{
s.erase();
s.reserve(is.rdbuf()-&gt;in_avail());
<b>char</b> c;
<b>while</b>(is.get(c))
{
<b>if</b>(s.capacity() == s.size())
s.reserve(s.capacity() * <font color="#0000a0">3</font>);
s.append(<font color="#0000a0">1</font>, c);
}
}
<b>int</b> main(<b>int</b> argc, <b>const</b> <b>char</b>** argv)
{
std::string text;
<b>for</b>(<b>int</b> i = <font color=
#0000a0>1</font>; i &lt; argc; ++i)
{
cout &lt;&lt; <font color=
#0000ff>"Processing file "</font> &lt;&lt; argv[i] &lt;&lt; endl;
std::ifstream fs(argv[i]);
load_file(text, fs);
<i><font color=
#000080>// construct our iterators:</font></i>
boost::sregex_iterator m1(text.begin(), text.end(), expression);
boost::sregex_iterator m2;
std::for_each(m1, m2, &amp;regex_callback);
<i><font color="#000080">// copy results:</font></i>
cout &lt;&lt; class_index.size() &lt;&lt; <font color=
#0000ff>" matches found"</font> &lt;&lt; endl;
map_type::iterator c, d;
c = class_index.begin();
d = class_index.end();
<b>while</b>(c != d)
{
cout &lt;&lt; <font color=
#0000ff>"class \""</font> &lt;&lt; (*c).first &lt;&lt; <font
color=
#0000ff>"\" found at index: "</font> &lt;&lt; (*c).second &lt;&lt; endl;
++c;
}
class_index.erase(class_index.begin(), class_index.end());
}
<b>return</b> <font color="#0000a0">0</font>;
}
</pre>
<hr>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,321 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_match</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_match</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<H3>Contents</H3>
<dl class="index">
<dt><a href="#synopsis">Synopsis</a> <dt><a href="#description">Description</a> <dt><a href="#examples">
Examples</a></dt>
</dl>
<H3><A name="synopsis"></A>Synopsis</H3>
<PRE><A name=query_match></A>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt; </PRE>
<P>
The algorithm regex _match determines whether a given regular expression
matches all of a given character sequence denoted by a pair of
bidirectional-iterators, the algorithm is defined as follows, the main use of
this function is data input validation.
<P><STRONG>Note that the result is true only if the expression matches the whole of
the input sequence.&nbsp;</STRONG> If you want to search for an expression
somewhere within the sequence then use <A href="regex_search.html">regex_search</A>.&nbsp;
If you want to match a prefix of the character string then use <A href="regex_search.html">
regex_search</A> with the flag <A href="match_flag_type.html">match_continuous</A>
set.
<PRE>template &lt;class BidirectionalIterator, class Allocator, class charT,
class traits, class Allocator2&gt;
bool <A href="#f1">regex_match</A>(BidirectionalIterator first, BidirectionalIterator last,
<A href="match_results.html">match_results</A>&lt;BidirectionalIterator, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class BidirectionalIterator, class charT, class traits, class Allocator2&gt;
bool <A href="#f2">regex_match</A>(BidirectionalIterator first, BidirectionalIterator last,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class charT, class Allocator, class traits, class Allocator2&gt;
bool <A href="#f3">regex_match</A>(const charT* str, <A href="match_results.html">match_results</A>&lt;const charT*, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class ST, class SA, class Allocator, class charT,
class traits, class Allocator2&gt;
bool <A href="#f4">regex_match</A>(const basic_string&lt;charT, ST, SA&gt;&amp; s,
<A href="match_results.html">match_results</A>&lt;typename basic_string&lt;charT, ST, SA&gt;::const_iterator, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class charT, class traits, class Allocator2&gt;
bool <A href="#f5">regex_match</A>(const charT* str,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
template &lt;class ST, class SA, class charT, class traits, class Allocator2&gt;
bool <A href="#f6">regex_match</A>(const basic_string&lt;charT, ST, SA&gt;&amp; s,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);
</PRE>
<H3><A name="description"></A>Description</H3>
<PRE><A name=f1></A>template &lt;class BidirectionalIterator, class Allocator, class charT,
class traits, class Allocator2&gt;
bool regex_match(BidirectionalIterator first, BidirectionalIterator last,
<A href="match_results.html">match_results</A>&lt;BidirectionalIterator, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Requires:</B> Type BidirectionalIterator meets the requirements of a
Bidirectional Iterator (24.1.4).</P>
<P><B> Effects: </B>Determines whether there is an exact match between the regular
expression <I>e</I>, and all of the character sequence [first, last), parameter <I>
flags</I> is used to <A href="match_flag_type.html">control how the expression
is matched</A> against the character sequence. Returns true if such a match
exists, false otherwise.</P>
<P><STRONG>Throws:</STRONG> <code>std::runtime_error</code> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<P><B> Postconditions: </B>If the function returns false, then the effect on
parameter <I>m</I> is undefined, otherwise the effects on parameter <I>m</I> are
given in the table:</P>
<P align="center">
<CENTER>
<TABLE id="Table2" cellSpacing="1" cellPadding="7" width="624" border="1">
<TBODY>
<TR>
<TD vAlign="top" width="50%">
<P><B> Element</B>
</P>
</TD>
<TD vAlign="top" width="50%">
<P><B> Value</B>
</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.size()</P>
</TD>
<TD vAlign="top" width="50%">
<P>e.mark_count()</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.empty()</P>
</TD>
<TD vAlign="top" width="50%">
<P>false</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().first</P>
</TD>
<TD vAlign="top" width="50%">
<P>first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().last</P>
</TD>
<TD vAlign="top" width="50%">
<P>first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>false</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().first</P>
</TD>
<TD vAlign="top" width="50%">
<P>last</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().last</P>
</TD>
<TD vAlign="top" width="50%">
<P>last</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>false</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].first</P>
</TD>
<TD vAlign="top" width="50%">
<P>first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].second</P>
</TD>
<TD vAlign="top" width="50%">
<P>last</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].matched</P>
</TD>
<TD vAlign="top" width="50%">
<P><CODE> true</CODE> if a full match was found, and <CODE>false</CODE> if it was
a partial match (found as a result of the <CODE>match_partial</CODE> flag being
set).</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].first</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), the start of the sequence that matched
sub-expression <I>n</I>. Alternatively, if sub-expression n did not participate
in the match, then <I>last</I>.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].second</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), the end of the sequence that matched
sub-expression <I>n</I>. Alternatively, if sub-expression n did not participate
in the match, then <I>last</I>.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), true if sub-expression <I>n</I> participated
in the match, false otherwise.</P>
</TD>
</TR>
</TBODY></TD></TR></TABLE>
</CENTER>
<P></P>
<DIV></DIV>
<PRE>&nbsp;</PRE>
<PRE><A name=f2></A>template &lt;class BidirectionalIterator, class charT, class traits, class Allocator2&gt;
bool regex_match(BidirectionalIterator first, BidirectionalIterator last,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Behaves "as if" by constructing an instance of <CODE><A href="match_results.html">
match_results</A>&lt;</CODE>BidirectionalIterator<CODE>&gt; what</CODE>,
and then returning the result of <CODE>regex_match(first, last, what, e, flags)</CODE>.</P>
<PRE><A name=f3></A>template &lt;class charT, class Allocator, class traits, class Allocator2&gt;
bool regex_match(const charT* str, <A href="match_results.html">match_results</A>&lt;const charT*, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_match(str, str +
char_traits&lt;charT&gt;::length(str), m, e, flags)</CODE>.</P>
<PRE><A name=f4></A>template &lt;class ST, class SA, class Allocator, class charT,
class traits, class Allocator2&gt;
bool regex_match(const basic_string&lt;charT, ST, SA&gt;&amp; s,
<A href="match_results.html">match_results</A>&lt;typename basic_string&lt;charT, ST, SA&gt;::const_iterator, Allocator&gt;&amp; m,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_match(s.begin(), s.end(), m, e,
flags)</CODE>.</P>
<PRE><A name=f5></A>template &lt;class charT, class traits, class Allocator2&gt;
bool regex_match(const charT* str,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_match(str, str +
char_traits&lt;charT&gt;::length(str), e, flags)</CODE>.</P>
<PRE><A name=f6></A>template &lt;class ST, class SA, class charT, class traits, class Allocator2&gt;
bool regex_match(const basic_string&lt;charT, ST, SA&gt;&amp; s,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator2&gt;&amp; e,
<A href="match_flag_type.html">match_flag_type</A> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_match(s.begin(), s.end(), e,
flags)</CODE>.
<H3><A name="examples"></A>Examples</H3>
<P>The following <A href="../example/snippets/regex_match_example.cpp">example</A>
processes an ftp response:
<P></P>
<PRE><FONT color=#008000>#include &lt;stdlib.h&gt;
#include &lt;boost/regex.hpp&gt;
#include &lt;string&gt;
#include &lt;iostream&gt;
</FONT><B>using namespace</B> boost;
regex expression(<FONT color=#000080>"([0-9]+)(\\-| |$)(.*)"</FONT>);
<FONT color=#000080><I>// process_ftp:
// on success returns the ftp response code, and fills
// msg with the ftp response message.
</I></FONT><B>int</B> process_ftp(<B>const</B> <B>char</B>* response, std::string* msg)
{
&nbsp;&nbsp; cmatch what;
&nbsp;&nbsp; <B>if</B>(regex_match(response, what, expression))
&nbsp;&nbsp; {
<FONT color=#000080>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[0] contains the whole string
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[1] contains the response code
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[2] contains the separator character
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[3] contains the text message.
</I></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>if</B>(msg)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg-&gt;assign(what[3].first, what[3].second);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>return</B> std::atoi(what[1].first);
&nbsp;&nbsp; }
<FONT color=#000080>&nbsp;&nbsp; <I>// failure did not match
</I></FONT>&nbsp;&nbsp; <B>if</B>(msg)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; msg-&gt;erase();
&nbsp;&nbsp; <B>return</B> -1;
}
<P>
<HR></PRE>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,45 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_merge (deprecated)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_merge (deprecated)</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Algorithm regex_merge has been renamed <A href="regex_replace.html">regex_replace</A>,
existing code will continue to compile, but new code should use <A href="regex_replace.html">
regex_replace</A> instead.</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,259 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_replace</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_replace</H2>
</TD>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Contents</H3>
<dl class="index">
<dt><A href="#synopsis">Synopsis</A> <dt><a href="#description">Description</a> <dt><A href="#examples">
Examples</A></dt></dl>
<H3><A name="synopsis"></A>Synopsis</H3>
<PRE>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt; </PRE>
<P>The algorithm regex_replace&nbsp;searches&nbsp;through&nbsp;a string finding
all the matches to the regular expression: for each match it then calls <A href="match_results.html#format">
match_results::format</A> to format the string and sends the result to the
output iterator. Sections of text that do not match are copied to the output
unchanged only if the <EM>flags</EM> parameter does not have the flag <A href="match_flag_type.html">
format_no_copy</A> set. If the flag <A href="match_flag_type.html">format_first_only</A>
is set then only the first occurrence is replaced rather than all
occurrences.&nbsp;<PRE>template &lt;class OutputIterator, class BidirectionalIterator, class traits,
class Allocator, class charT&gt;
OutputIterator <A href="#f1">regex_replace</A>(OutputIterator out,
BidirectionalIterator first,
BidirectionalIterator last,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt;&amp; e,
const basic_string&lt;charT&gt;&amp; fmt,
<A href="match_flag_type.html">match_flag_type flags = match_default</A>);
template &lt;class traits, class Allocator, class charT&gt;
basic_string&lt;charT&gt; <A href="#f2">regex_replace</A>(const basic_string&lt;charT&gt;&amp; s,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt;&amp; e,
const basic_string&lt;charT&gt;&amp; fmt,
<A href="match_flag_type.html">match_flag_type flags = match_default</A>);
</PRE>
<H3><A name="description"></A>Description</H3>
<PRE><A name=f1></A>template &lt;class OutputIterator, class BidirectionalIterator, class traits,
class Allocator, class charT&gt;
OutputIterator regex_replace(OutputIterator out,
BidirectionalIterator first,
BidirectionalIterator last,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt;&amp; e,
const basic_string&lt;charT&gt;&amp; fmt,
<A href="match_flag_type.html">match_flag_type flags = match_default</A>);</PRE>
<P>Enumerates all the occurences of expression <EM>e</EM> in the sequence [first,
last), replacing each occurence with the string that results by merging the
match found with the format string <EM>fmt</EM>, and copies the resulting
string to <EM>out</EM>.&nbsp;</P>
<P>If the flag format_no_copy is set in <EM>flags</EM> then unmatched sections of
text are not copied to output.&nbsp;
</P>
<P>If the flag format_first_only is set in <EM>flags</EM> then only the first
occurence of <EM>e</EM> is replaced.&nbsp;
</P>
<P>The manner in which the format string <EM>fmt</EM> is interpretted, along with
the rules used&nbsp;for finding matches,&nbsp;are determined by the <A href="match_flag_type.html">
flags</A> set in <EM>flags</EM></P>
<P><B>Effects:</B> Constructs an
<SPAN class="spelle">regex_iterator</SPAN>
object:
</P>
<PRE><SPAN style="FONT-SIZE: 10pt">regex_iterator&lt;</SPAN><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">BidirectionalIterator</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt">, </SPAN><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">charT</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt">, traits, Allocator&gt; <BR> </SPAN><SPAN class=grame><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">i(</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt">first, last, e, flags)</SPAN>, </PRE>
<P>and uses
<SPAN class="spelle">
<I>i</I></SPAN>
to enumerate through all of the matches <I>m</I> of type
<SPAN class="spelle">
<SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">match_results</SPAN>
</SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">&lt;<SPAN class="spelle">BidirectionalIterator</SPAN>&gt; </SPAN>that
occur within the sequence [first, last).
</P>
<P>If no such matches are found
<SPAN class="grame">and </SPAN></P>
<PRE><SPAN class=grame></SPAN><SPAN class=grame><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">!</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(flags &amp; <SPAN class=spelle>format_no_copy</SPAN>)</SPAN> </PRE>
<P>then calls
</P>
<PRE><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">std::copy</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(first, last, out)</SPAN>. </PRE>
<P>Otherwise, for each match found,
<SPAN class="grame">if </SPAN></P>
<PRE><SPAN class=grame></SPAN><SPAN class=grame><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">!</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(flags &amp; <SPAN class=spelle>format_no_copy</SPAN>)</SPAN> </PRE>
<P>calls
</P>
<PRE><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">std::copy</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(<SPAN class=spelle>m.prefix</SPAN>().first, <SPAN class=spelle>m.prefix</SPAN>().last, out)</SPAN>, </PRE>
<P>and then calls
</P>
<PRE><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">m.format</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(out, <SPAN class=spelle>fmt</SPAN>, flags)</SPAN>. </PRE>
<P>Finally
<SPAN class="grame">if </SPAN></P>
<PRE><SPAN class=grame></SPAN><SPAN class=grame><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">!</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(flags &amp; <SPAN class=spelle>format_no_copy</SPAN>)</SPAN> </PRE>
<P>calls
</P>
<PRE><SPAN class=spelle><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">std::copy</SPAN></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">(<SPAN class=spelle>last_m.suffix</SPAN>().first, <SPAN class=spelle>last_m,suffix</SPAN>().last, out) </SPAN></PRE>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'"></SPAN>where
<SPAN class="spelle">
<SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">last_m</SPAN>
</SPAN>
is a copy of the last match found.
</P>
<P>If
<SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Courier New'">flags &amp;
<SPAN class="spelle">format_first_only</SPAN></SPAN>
is non-zero then only the first match found is replaced.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<P><B> Returns:</B> <CODE>out</CODE>.
</P>
<PRE><A name=f2></A>template &lt;class traits, class Allocator, class charT&gt;
basic_string&lt;charT&gt; regex_replace(const basic_string&lt;charT&gt;&amp; s,
const <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt;&amp; e,
const basic_string&lt;charT&gt;&amp; fmt,
<A href="match_flag_type.html">match_flag_type flags = match_default</A>);</PRE>
<P><B> Effects:</B> Constructs an object <CODE>basic_string&lt;charT&gt; result</CODE>,
calls <CODE>regex_replace(back_inserter(result), s.begin(), s.end(), e, fmt,
flags)</CODE>, and then returns <CODE>result</CODE>.
<H3><A name="examples"></A>Examples</H3>
<P>The following <A href="../example/snippets/regex_replace_example.cpp">example</A>
takes C/C++ source code as input, and outputs syntax highlighted HTML code.</P>
<P></P>
<PRE><FONT color=#008080>#include &lt;fstream&gt;
#include &lt;sstream&gt;
#include &lt;string&gt;
#include &lt;iterator&gt;
#include &lt;boost/regex.hpp&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
</FONT>
<FONT color=#000080><I>// purpose:
// takes the contents of a file and transform to
// syntax highlighted code in html format
</I></FONT>
boost::regex e1, e2;
<B>extern</B> <B>const</B> <B>char</B>* expression_text;
<B>extern</B> <B>const</B> <B>char</B>* format_string;
<B>extern</B> <B>const</B> <B>char</B>* pre_expression;
<B>extern</B> <B>const</B> <B>char</B>* pre_format;
<B>extern</B> <B>const</B> <B>char</B>* header_text;
<B>extern</B> <B>const</B> <B>char</B>* footer_text;
<B>void</B> load_file(std::string&amp; s, std::istream&amp; is)
{
s.erase();
s.reserve(is.rdbuf()-&gt;in_avail());
<B>char</B> c;
<B>while</B>(is.get(c))
{
<B>if</B>(s.capacity() == s.size())
s.reserve(s.capacity() * <FONT color=#000080>3</FONT>);
s.append(<FONT color=#000080>1</FONT>, c);
}
}
<B>int</B> main(<B>int</B> argc, <B>const</B> <B>char</B>** argv)
{
try{
e1.assign(expression_text);
e2.assign(pre_expression);
<B>for</B>(<B>int</B> i = <FONT color=#000080>1</FONT>; i &lt; argc; ++i)
{
std::cout &lt;&lt; <FONT color=#0000ff>"Processing file "</FONT> &lt;&lt; argv[i] &lt;&lt; std::endl;
std::ifstream fs(argv[i]);
std::string in;
load_file(in, fs);
std::string out_name(std::string(argv[i]) + std::string(<FONT color=#0000ff>".htm"</FONT>));
std::ofstream os(out_name.c_str());
os &lt;&lt; header_text;
<FONT color=#000080><I>// strip '&lt;' and '&gt;' first by outputting to a
</I></FONT> <FONT color=#000080><I>// temporary string stream
</I></FONT> std::ostringstream t(std::ios::out | std::ios::binary);
std::ostream_iterator&lt;<B>char</B>, <B>char</B>&gt; oi(t);
boost::regex_replace(oi, in.begin(), in.end(),
e2, pre_format, boost::match_default | boost::format_all);
<FONT color=#000080><I>// then output to final output stream
</I></FONT> <FONT color=#000080><I>// adding syntax highlighting:
</I></FONT> std::string s(t.str());
std::ostream_iterator&lt;<B>char</B>, <B>char</B>&gt; out(os);
boost::regex_replace(out, s.begin(), s.end(),
e1, format_string, boost::match_default | boost::format_all);
os &lt;&lt; footer_text;
}
}
<STRONG>catch</STRONG>(...)
{ <STRONG>return</STRONG> -1; }
<B>return</B> <FONT color=#000080>0</FONT>;
}
<B>extern</B> <B>const</B> <B>char</B>* pre_expression = <FONT color=#0000ff>"(&lt;)|(&gt;)|\\r"</FONT>;
<B>extern</B> <B>const</B> <B>char</B>* pre_format = <FONT color=#0000ff>"(?1&lt;)(?2&gt;)"</FONT>;
<B>const</B> <B>char</B>* expression_text = <FONT color=#000080><I>// preprocessor directives: index 1
</I></FONT> <FONT color=#0000ff>"(^[[:blank:]]*#(?:[^\\\\\\n]|\\\\[^\\n[:punct:][:word:]]*[\\n[:punct:][:word:]])*)|"
</FONT> <FONT color=#000080><I>// comment: index 2
</I></FONT> <FONT color=#0000ff>"(//[^\\n]*|/\\*.*?\\*/)|"
</FONT> <FONT color=#000080><I>// literals: index 3
</I></FONT> <FONT color=#0000ff>"\\&lt;([+-]?(?:(?:0x[[:xdigit:]]+)|(?:(?:[[:digit:]]*\\.)?[[:digit:]]+(?:[eE][+-]?[[:digit:]]+)?))u?(?:(?:int(?:8|16|32|64))|L)?)\\&gt;|"
</FONT> <FONT color=#000080><I>// string literals: index 4
</I></FONT> <FONT color=#0000ff>"('(?:[^\\\\']|\\\\.)*'|\"(?:[^\\\\\"]|\\\\.)*\")|"
</FONT> <FONT color=#000080><I>// keywords: index 5
</I></FONT> <FONT color=#0000ff>"\\&lt;(__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import"
</FONT> <FONT color=#0000ff>"|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall"
</FONT> <FONT color=#0000ff>"|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|bool"
</FONT> <FONT color=#0000ff>"|break|case|catch|cdecl|char|class|const|const_cast|continue|default|delete"
</FONT> <FONT color=#0000ff>"|do|double|dynamic_cast|else|enum|explicit|extern|false|float|for|friend|goto"
</FONT> <FONT color=#0000ff>"|if|inline|int|long|mutable|namespace|new|operator|pascal|private|protected"
</FONT> <FONT color=#0000ff>"|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_cast"
</FONT> <FONT color=#0000ff>"|struct|switch|template|this|throw|true|try|typedef|typeid|typename|union|unsigned"
</FONT> <FONT color=#0000ff>"|using|virtual|void|volatile|wchar_t|while)\\&gt;"
</FONT> ;
<B>const</B> <B>char</B>* format_string = <FONT color=#0000ff>"(?1&lt;font color=\"#008040\"&gt;$&amp;&lt;/font&gt;)"
</FONT> <FONT color=#0000ff>"(?2&lt;I&gt;&lt;font color=\"#000080\"&gt;$&amp;&lt;/font&gt;&lt;/I&gt;)"
</FONT> <FONT color=#0000ff>"(?3&lt;font color=\"#0000A0\"&gt;$&amp;&lt;/font&gt;)"
</FONT> <FONT color=#0000ff>"(?4&lt;font color=\"#0000FF\"&gt;$&amp;&lt;/font&gt;)"
</FONT> <FONT color=#0000ff>"(?5&lt;B&gt;$&amp;&lt;/B&gt;)"</FONT>;
<B>const</B> <B>char</B>* header_text = <FONT color=#0000ff>"&lt;HTML&gt;\n&lt;HEAD&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;TITLE&gt;Auto-generated html formated source&lt;/TITLE&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=windows-1252\"&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;/HEAD&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;BODY LINK=\"#0000ff\" VLINK=\"#800080\" BGCOLOR=\"#ffffff\"&gt;\n"
</FONT> <FONT color=#0000ff>"&lt;P&gt; &lt;/P&gt;\n&lt;PRE&gt;"</FONT>;
<B>const</B> <B>char</B>* footer_text = <FONT color=#0000ff>"&lt;/PRE&gt;\n&lt;/BODY&gt;\n\n"</FONT>;
</PRE>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,326 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_search</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_search</H2>
</TD>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Contents</H3>
<dl class="index">
<dt><A href="#synopsis">Synopsis</A> <dt><a href="#description">Description</a> <dt><A href="#examples">
Examples</A></dt></dl>
<H3><A name="synopsis"></A>Synopsis</H3>
<PRE>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt; </PRE>
<P></P>
<P>The algorithm regex_search will search a range denoted by a pair of
bidirectional-iterators for a given regular expression. The algorithm uses
various heuristics to reduce the search time by only checking for a match if a
match could conceivably start at that position. The algorithm is defined as
follows:
<PRE>template &lt;class BidirectionalIterator,
class Allocator, class charT,
class traits, class Allocator2&gt;
bool <A href="#f1">regex_search</A>(BidirectionalIterator first, BidirectionalIterator last,
<a href="match_results.html">match_results</a>&lt;BidirectionalIterator, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template &lt;class ST, class SA,
class Allocator, class charT,
class traits, class Allocator2&gt;
bool <A href="#f2">regex_search</A>(const basic_string&lt;charT, ST, SA&gt;&amp; s,
<a href="match_results.html">match_results</a>&lt;
typename basic_string&lt;charT, ST,SA&gt;::const_iterator,
Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template&lt;class charT, class Allocator, class traits,
class Allocator2&gt;
bool <A href="#f3">regex_search</A>(const charT* str,
<a href="match_results.html">match_results</a>&lt;const charT*, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template &lt;class BidirectionalIterator, class Allocator,
class charT, class traits&gt;
bool <A href="#f4">regex_search</A>(BidirectionalIterator first, BidirectionalIterator last,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template &lt;class charT, class Allocator,
class traits&gt;
bool <A href="#f5">regex_search</A>(const charT* str,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
template&lt;class ST, class SA,
class Allocator, class charT,
class traits&gt;
bool <A href="#f6">regex_search</A>(const basic_string&lt;charT, ST, SA&gt;&amp; s,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);
</PRE>
<H3><A name="description"></A>Description</H3>
<PRE><A name=f1></A>template &lt;class BidirectionalIterator, class Allocator, class charT,
class traits, class Allocator2&gt;
bool regex_search(BidirectionalIterator first, BidirectionalIterator last,
<a href="match_results.html">match_results</a>&lt;BidirectionalIterator, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Requires:</B> Type BidirectionalIterator meets the requirements of a
Bidirectional Iterator (24.1.4).</P>
<P><B> Effects: </B>Determines whether there is some sub-sequence within
[first,last) that matches the regular expression <I>e</I>, parameter <I>flags</I>
is used to control how the expression is matched against the character
sequence. Returns true if such a sequence exists, false otherwise.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<P><B> Postconditions: </B>If the function returns false, then the effect on
parameter <I>m</I> is undefined, otherwise the effects on parameter <I>m</I> are
given in the table:</P>
<DIV align="center">
<CENTER>
<TABLE id="Table2" cellSpacing="1" cellPadding="7" width="624" border="1">
<TR>
<TD vAlign="top" width="50%">
<P><B> Element</B></P>
</TD>
<TD vAlign="top" width="50%">
<P><B> Value</B>
</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.size()</P>
</TD>
<TD vAlign="top" width="50%">
<P>e.mark_count()</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.empty()</P>
</TD>
<TD vAlign="top" width="50%">
<P>false</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().first</P>
</TD>
<TD vAlign="top" width="50%">
<P>first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().last</P>
</TD>
<TD vAlign="top" width="50%">
<P>m[0].first</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.prefix().matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>m.prefix().first != m.prefix().second</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().first</P>
</TD>
<TD vAlign="top" width="50%">
<P>m[0].second</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().last</P>
</TD>
<TD vAlign="top" width="50%">
<P>last</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m.suffix().matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>m.suffix().first != m.suffix().second</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].first</P>
</TD>
<TD vAlign="top" width="50%">
<P>The start of the sequence of characters that matched the regular expression</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].second</P>
</TD>
<TD vAlign="top" width="50%">
<P>The end of the sequence of characters that matched the regular expression</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[0].matched</P>
</TD>
<TD vAlign="top" width="50%">
<P><CODE> true</CODE> if a full match was found, and <CODE>false</CODE> if it was
a partial match (found as a result of the <CODE>match_partial</CODE> flag being
set).</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].first</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), the start of the sequence that matched
sub-expression <I>n</I>. Alternatively, if sub-expression n did not participate
in the match, then <I>last</I>.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].second</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), the end of the sequence that matched
sub-expression <I>n</I>. Alternatively, if sub-expression n did not participate
in the match, then <I>last</I>.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="50%">
<P>m[n].matched</P>
</TD>
<TD vAlign="top" width="50%">
<P>For all integers n &lt; m.size(), true if sub-expression <I>n</I> participated
in the match, false otherwise.</P>
</TD>
</TR>
</TD></TR></TABLE>
</CENTER>
</DIV>
<PRE><A name=f2></A>template &lt;class charT, class Allocator, class traits, class Allocator2&gt;
bool regex_search(const charT* str, <a href="match_results.html">match_results</a>&lt;const charT*, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_search(str, str +
char_traits&lt;charT&gt;::length(str), m, e, flags)</CODE>.</P>
<PRE><A name=f3></A>template &lt;class ST, class SA, class Allocator, class charT,
class traits, class Allocator2&gt;
bool regex_search(const basic_string&lt;charT, ST, SA&gt;&amp; s,
<a href="match_results.html">match_results</a>&lt;typename basic_string&lt;charT, ST, SA&gt;::const_iterator, Allocator&gt;&amp; m,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator2&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_search(s.begin(), s.end(), m,
e, flags)</CODE>.</P>
<PRE><A name=f4></A>template &lt;class iterator, class Allocator, class charT,
class traits&gt;
bool regex_search(iterator first, iterator last,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Behaves "as if" by constructing an instance of <CODE><a href="match_results.html">
match_results</a>&lt;</CODE>BidirectionalIterator<CODE>&gt; what</CODE>,
and then returning the result of <CODE>regex_search(first, last, what, e, flags)</CODE>.</P>
<PRE><A name=f5></A>template &lt;class charT, class Allocator, class traits&gt;
bool regex_search(const charT* str
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_search(str, str +
char_traits&lt;charT&gt;::length(str), e, flags)</CODE>.</P>
<PRE><A name=f6></A>template &lt;class ST, class SA, class Allocator, class charT,
class traits&gt;
bool regex_search(const basic_string&lt;charT, ST, SA&gt;&amp; s,
const <a href="basic_regex.html">basic_regex</a>&lt;charT, traits, Allocator&gt;&amp; e,
<a href="match_flag_type.html">match_flag_type</a> flags = match_default);</PRE>
<P><B> Effects:</B> Returns the result of <CODE>regex_search(s.begin(), s.end(), e,
flags)</CODE>.
<H3><A name="examples"></A>Examples</H3>
<P>The following <A href="../example/snippets/regex_search_example.cpp">example</A>,
takes the contents of a file in the form of a string, and searches for all the
C++ class declarations in the file. The code will work regardless of the way
that std::string is implemented, for example it could easily be modified to
work with the SGI rope class, which uses a non-contiguous storage strategy.</P>
<P></P>
<PRE><FONT color=#008000>#include &lt;string&gt;
#include &lt;map&gt;
#include &lt;boost/regex.hpp&gt;
</FONT><FONT color=#000080><I>
// purpose:
// takes the contents of a file in the form of a string
// and searches for all the C++ class definitions, storing
// their locations in a map of strings/int's
</I></FONT><B>typedef</B> std::map&lt;std::string, <B>int</B>, std::less&lt;std::string&gt; &gt; map_type;
boost::regex expression("^(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?(class|struct)[[:space:]]*(\\&lt;\\w+\\&gt;([[:blank:]]*\\([^)]*\\))?[[:space:]]*)*(\\&lt;\\w*\\&gt;)[[:space:]]*(&lt;[^;:{]+&gt;[[:space:]]*)?(\\{|:[^;\\{()]*\\{)");
<B>
void</B> IndexClasses(map_type&amp; m, <B>const</B> std::string&amp; file)
{
&nbsp;&nbsp; std::string::const_iterator start, end;
&nbsp;&nbsp; start = file.begin();
&nbsp;&nbsp; end = file.end();&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp; boost::<a href="match_results.html">match_results</a>&lt;std::string::const_iterator&gt; what;
&nbsp;&nbsp; <B>unsigned</B> <B>int</B> flags = boost::match_default;
&nbsp;&nbsp; <B>while</B>(regex_search(start, end, what, expression, flags))&nbsp;
&nbsp;&nbsp; {
<FONT color=#000080>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[0] contains the whole string
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[5] contains the class name.
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// what[6] contains the template specialisation if any.
</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <I>// add class name and position to map:
</I></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m[std::string(what[5].first, what[5].second) + std::string(what[6].first, what[6].second)] =&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; what[5].first - file.begin();&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#000080><I>// update search position:
</I></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; start = what[0].second;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#000080><I>// update flags:
</I></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flags |= boost::match_prev_avail;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flags |= boost::match_not_bob;&nbsp;
&nbsp;&nbsp; }
}
</PRE>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,146 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Algorithm regex_split (deprecated)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Algorithm regex_split (deprecated)</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>The algorithm regex_split has been deprecated in favor of the iterator <A href="regex_token_iterator.html">
regex_token_iterator</A> which has a more flexible and powerful interface,
as well as following the more usual standard library "pull" rather than "push"
semantics.</P>
<P>Code which uses regex_split will continue to compile, the following
documentation is taken from the previous boost.regex version:</P>
<H3><A name="regex_split"></A>Algorithm regex_split</H3>
<PRE>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt; </PRE>
<P>Algorithm regex_split performs a similar operation to the perl split operation,
and comes in three overloaded forms:
</P>
<PRE><B>template</B> &lt;<B>class</B> OutputIterator, <B>class</B> charT, <B>class</B> Traits1, <B>class</B> Alloc1, <B>class</B> Traits2, <B>class</B> Alloc2&gt;
std::size_t regex_split(OutputIterator out,&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::basic_string&lt;charT, Traits1, Alloc1&gt;&amp; s,&nbsp;
&nbsp;<B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const</B> basic_regex&lt;charT, Traits2, Alloc2&gt;&amp; e,
&nbsp;<B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned</B> flags,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::size_t max_split);
<B>template</B> &lt;<B>class</B> OutputIterator, <B>class</B> charT, <B>class</B> Traits1, <B>class</B> Alloc1, <B>class</B> Traits2, <B>class</B> Alloc2&gt;
std::size_t regex_split(OutputIterator out,&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; std::basic_string&lt;charT, Traits1, Alloc1&gt;&amp; s,&nbsp;
&nbsp;<B>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const</B> basic_regex&lt;charT, Traits2, Alloc2&gt;&amp; e,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <B>unsigned</B> flags = match_default);
<B>template</B> &lt;<B>class</B> OutputIterator, <B>class</B> charT, <B>class</B> Traits1, <B>class</B> Alloc1&gt;
std::size_t regex_split(OutputIterator out,
std::basic_string&lt;charT, Traits1, Alloc1&gt;&amp; s);</PRE>
<P><STRONG>Effects: </STRONG>Each version of the algorithm takes an
output-iterator for output, and a string for input. If the expression contains
no marked sub-expressions, then the algorithm writes one string onto the
output-iterator for each section of input that does not match the expression.
If the expression does contain marked sub-expressions, then each time a match
is found, one string for each marked sub-expression will be written to the
output-iterator. No more than <I>max_split </I>strings will be written to the
output-iterator. Before returning, all the input processed will be deleted from
the string <I>s</I> (if <I>max_split </I>is not reached then all of <I>s</I> will
be deleted). Returns the number of strings written to the output-iterator. If
the parameter <I>max_split</I> is not specified then it defaults to UINT_MAX.
If no expression is specified, then it defaults to "\s+", and splitting occurs
on whitespace.
</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<P><A href="../example/snippets/regex_split_example_1.cpp">Example</A>: the
following function will split the input string into a series of tokens, and
remove each token from the string <I>s</I>:
</P>
<PRE><B>unsigned</B> tokenise(std::list&lt;std::string&gt;&amp; l, std::string&amp; s)
{
<B>&nbsp;&nbsp; return</B> boost::regex_split(std::back_inserter(l), s);
}</PRE>
<P><A href="../example/snippets/regex_split_example_2.cpp">Example</A>: the
following short program will extract all of the URL's from a html file, and
print them out to <I>cout</I>:
</P>
<PRE><FONT color=#008000>#include &lt;list&gt;
#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;boost/regex.hpp&gt;
</FONT>
boost::regex e(<FONT color=#000080>"&lt;\\s*A\\s+[^&gt;]*href\\s*=\\s*\"([^\"]*)\""</FONT>,
boost::regbase::normal | boost::regbase::icase);
<B>void</B> load_file(std::string&amp; s, std::istream&amp; is)
{
s.erase();
<FONT color=#000080>//
// attempt to grow string buffer to match file size,
// this doesn't always work...
</FONT> s.reserve(is.rdbuf()-&amp;gtin_avail());
<B>char</B> c;
<B>while</B>(is.get(c))
{
<FONT color=#000080>// use logarithmic growth stategy, in case
// in_avail (above) returned zero:
</FONT> <B>if</B>(s.capacity() == s.size())
s.reserve(s.capacity() * 3);
s.append(1, c);
}
}
<B>int</B> main(<B>int</B> argc, <B>char</B>** argv)
{
std::string s;
std::list&lt;std::string&gt; l;
<B>for</B>(<B>int</B> i = 1; i &lt; argc; ++i)
{
std::cout &lt;&lt; <FONT color=#000080>"Findings URL's in "</FONT> &lt;&lt; argv[i] &lt;&lt; <FONT color=#000080>":"</FONT> &lt;&lt; std::endl;
s.erase();
std::ifstream is(argv[i]);
load_file(s, is);
boost::regex_split(std::back_inserter(l), s, e);
<B>while</B>(l.size())
{
s = *(l.begin());
l.pop_front();
std::cout &lt;&lt; s &lt;&lt; std::endl;
}
}
<B>return</B> 0;
}</PRE>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,290 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: regex_token_iterator</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">regex_token_iterator</H2>
</TD>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Contents</H3>
<dl class="index">
<dt><A href="#synopsis">Synopsis</A> <dt><a href="#description">Description</a> <dt><A href="#examples">
Examples</A></dt></dl>
<H3><A name="synopsis"></A>Synopsis</H3>
<P>The template class <CODE>regex_token_iterator</CODE> is an iterator adapter;
that is to say it represents a new view of an existing iterator sequence, by
enumerating all the occurrences of a regular expression within that sequence,
and presenting one or more character sequence for each match found. Each
position enumerated by the iterator is a <A href="sub_match.html">sub_match</A>
object that represents what matched a particular sub-expression within the
regular expression. When class <CODE>regex_token_iterator</CODE> is used to
enumerate a single sub-expression with index -1, then the iterator performs
field splitting: that is to say it enumerates one character sequence for each
section of the character container sequence that does not match the regular
expression specified.</P>
<PRE>
template &lt;class BidirectionalIterator,
class charT = iterator_traits&lt;BidirectionalIterator&gt;::value_type,
class traits = regex_traits&lt;charT&gt;,
class Allocator = allocator&lt;charT&gt; &gt;
class regex_token_iterator
{
public:
typedef <A href="basic_regex.html">basic_regex</A>&lt;charT, traits, Allocator&gt; regex_type;
typedef <A href="sub_match.html">sub_match</A>
&lt;BidirectionalIterator&gt; value_type;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::difference_type difference_type;
typedef const value_type* pointer;
typedef const value_type&amp; reference;
typedef std::forward_iterator_tag iterator_category;
<A href="#c1">regex_token_iterator</A>();
<A href="#c2">regex_token_iterator</A>(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
int submatch = 0, <A href="match_flag_type.html">match_flag_type</A> m = match_default);
<A href="#c3">regex_token_iterator</A>(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
const std::vector&lt;int&gt;&amp; submatches, match_flag_type m = match_default);
template &lt;std::size_t N&gt;
<A href="#c4">regex_token_iterator</A>(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
const int (&amp;submatches)[N], match_flag_type m = match_default);
<A href="#c5">regex_token_iterator</A>(const regex_token_iterator&amp;);
regex_token_iterator&amp; <A href="#o1">operator</A>=(const regex_token_iterator&amp;);
bool <A href="#o2">operator</A>==(const regex_token_iterator&amp;)const;
bool <A href="#o3">operator</A>!=(const regex_token_iterator&amp;)const;
const value_type&amp; <A href="#o4">operator</A>*()const;
const value_type* <A href="#o5">operator</A>-&gt;()const;
regex_token_iterator&amp; <A href="#o6">operator</A>++();
regex_token_iterator <A href="#o7">operator</A>++(int);
};
typedef regex_token_iterator&lt;const char*&gt; cregex_token_iterator;
typedef regex_token_iterator&lt;std::string::const_iterator&gt; sregex_token_iterator;
#ifndef BOOST_NO_WREGEX
typedef regex_token_iterator&lt;const wchar_t*&gt; wcregex_token_iterator;
typedef regex_token_iterator<&lt;std::wstring::const_iterator&gt; wsregex_token_iterator;
#endif
</PRE>
<H3><A name="description"></A>Description</H3>
<PRE><A name=c1></A>regex_token_iterator();</PRE>
<P><B> Effects:</B> constructs an end of sequence iterator.</P>
<PRE><A name=c2></A>regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
int submatch = 0, match_flag_type m = match_default);</PRE>
<P><B> Preconditions: </B><CODE>!re.empty()</CODE>.</P>
<P><B> Effects:</B> constructs a regex_token_iterator that will enumerate one
string for each regular expression match of the expression <EM>re</EM> found
within the sequence <EM>[a,b)</EM>, using match flags <EM>m</EM>.&nbsp; The
string enumerated is the&nbsp;sub-expression <EM>submatch </EM>for each match
found; if <EM>submatch </EM>is -1, then enumerates all the text sequences that
did not match the expression <EM>re </EM>(that is to performs field splitting).</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<PRE><A name=c3></A>regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
const std::vector&lt;int&gt;&amp; submatches, match_flag_type m = match_default);</PRE>
<P><B> Preconditions:</B> <CODE>submatches.size() &amp;&amp; !re.empty()</CODE>.</P>
<P><B> Effects:</B> constructs a regex_token_iterator that will enumerate <EM>submatches.size()</EM>
strings for each regular expression match of the expression <EM>re</EM> found
within the sequence <EM>[a,b)</EM>, using match flags <EM>m</EM>.&nbsp; For
each match found one string will be enumerated&nbsp;for each sub-expression
index&nbsp;contained within <EM>submatches </EM>vector; if <EM>submatches[0] </EM>
is -1, then the first string enumerated for each match will be all of the text
from end of the last match to the start of the current match, in addition there
will be one extra string enumerated when no more matches can be found: from the
end of the last match found, to the end of the underlying sequence.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<PRE><A name=c4></A>template &lt;std::size_t N&gt;
regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b, const regex_type&amp; re,
const int (&amp;submatches)[R], match_flag_type m = match_default);</PRE>
<P><B> Preconditions: </B><CODE>!re.empty()</CODE>.</P>
<P><STRONG>Effects:</STRONG></B> constructs a regex_token_iterator that will
enumerate&nbsp;<EM>R</EM> strings for each regular expression match of the
expression <EM>re</EM> found within the sequence <EM>[a,b)</EM>, using match
flags <EM>m</EM>.&nbsp; For each match found one string will be
enumerated&nbsp;for each sub-expression index&nbsp;contained within the <EM>submatches
</EM>array; if <EM>submatches[0] </EM>is -1, then the first string enumerated
for each match will be all of the text from end of the last match to the start
of the current match, in addition there will be one extra string enumerated
when no more matches can be found: from the end of the last match found, to the
end of the underlying sequence.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<PRE><A name=c5></A>regex_token_iterator(const regex_token_iterator&amp; that);</PRE>
<P><B> Effects: </B>constructs a copy of <CODE>that</CODE>.</P>
<P><B> Postconditions:</B> <CODE>*this == that</CODE>.</P>
<PRE><A name=o1></A>regex_token_iterator&amp; operator=(const regex_token_iterator&amp; that);</PRE>
<P><B> Effects: </B>sets <CODE>*this</CODE> to be equal to&nbsp;<CODE>that</CODE>.</P>
<P><B> Postconditions:</B> <CODE>*this == that</CODE>.</P>
<PRE><A name=o2></A>bool operator==(const regex_token_iterator&amp;)const;</PRE>
<P>
<B>Effects: </B>returns true if *this is the same position as that.</P>
<PRE><A name=o3></A>bool operator!=(const regex_token_iterator&amp;)const;</PRE>
<P>
<B>Effects: </B>returns <CODE>!(*this == that)</CODE>.</P>
<PRE><A name=o4></A>const value_type&amp; operator*()const;</PRE>
<P>
<B>Effects: </B>returns the current character sequence being enumerated.</P>
<PRE><A name=o5></A>const value_type* operator-&gt;()const;</PRE>
<P>
<B>Effects: </B>returns <CODE>&amp;(*this)</CODE>.</P>
<PRE><A name=o6></A>regex_token_iterator&amp; operator++();</PRE>
<P>
<B>Effects: </B>Moves on to the next character sequence to be enumerated.</P>
<P><STRONG>Throws:</STRONG> <CODE>std::runtime_error</CODE> if the complexity of
matching the expression against an N character string begins to exceed O(N<SUP>2</SUP>),
or if the program runs out of stack space while matching the expression (if
Boost.regex is <A href="configuration.html">configured</A> in recursive mode),
or if the matcher exhausts it's permitted memory allocation (if Boost.regex is <A href="configuration.html">
configured</A> in non-recursive mode).</P>
<B>
<P>
Returns:</B><CODE> *this</CODE>.</P><PRE><A name=o7></A>regex_token_iterator&amp; operator++(int);</PRE>
<P><B> Effects:</B> constructs a copy <CODE>result</CODE> of <CODE>*this</CODE>,
then calls <CODE>++(*this)</CODE>.</P>
<P><B> Returns:</B> <CODE>result</CODE>.<A name="examples"></A>
<H3>Examples</H3>
<P>The following <A href="../example/snippets/regex_token_iterator_eg_1.cpp">example</A>
takes a string and splits it into a series of tokens:</P>
<pre>
<FONT color=#008040>#include &lt;iostream&gt;</FONT>
<FONT color=#008040>#include &lt;boost/regex.hpp&gt;</FONT>
<B>using</B> <B>namespace</B> std;
<B>int</B> main(<B>int</B> argc)
{
string s;
<B>do</B>{
<B>if</B>(argc == <FONT color=#0000a0>1</FONT>)
{
cout &lt;&lt; <FONT color=#0000ff>"Enter text to split (or \"quit\" to exit): "</FONT>;
getline(cin, s);
<B>if</B>(s == <FONT color=#0000ff>"quit"</FONT>) <B>break</B>;
}
<B>else</B>
s = <FONT color=#0000ff>"This is a string of tokens"</FONT>;
boost::regex re(<FONT color=#0000ff>"\\s+"</FONT>);
boost::sregex_token_iterator i(s.begin(), s.end(), re, -<FONT color=#0000a0>1</FONT>);
boost::sregex_token_iterator j;
<B>unsigned</B> count = <FONT color=#0000a0>0</FONT>;
<B>while</B>(i != j)
{
cout &lt;&lt; *i++ &lt;&lt; endl;
count++;
}
cout &lt;&lt; <FONT color=#0000ff>"There were "</FONT> &lt;&lt; count &lt;&lt; <FONT color=#0000ff>" tokens found."</FONT> &lt;&lt; endl;
}<B>while</B>(argc == <FONT color=#0000a0>1</FONT>);
<B>return</B> <FONT color=#0000a0>0</FONT>;
}
</pre>
<P>The following <A href="../example/snippets/regex_token_iterator_eg_2.cpp">example</A>
takes a html file and outputs a list of all the linked files:</P>
<pre>
<FONT color=#008040>#include &lt;fstream&gt;</FONT>
<FONT color=#008040>#include &lt;iostream&gt;</FONT>
<FONT color=#008040>#include &lt;iterator&gt;</FONT>
<FONT color=#008040>#include &lt;boost/regex.hpp&gt;</FONT>
boost::regex e(<FONT color=#0000ff>"&lt;\\s*A\\s+[^&gt;]*href\\s*=\\s*\"([^\"]*)\""</FONT>,
boost::regex::normal | boost::regbase::icase);
<B>void</B> load_file(std::string&amp; s, std::istream&amp; is)
{
s.erase();
<I><FONT color=#000080>//</FONT></I>
<I><FONT color=#000080>// attempt to grow string buffer to match file size,</FONT></I>
<I><FONT color=#000080>// this doesn't always work...</FONT></I>
s.reserve(is.rdbuf()-&gt;in_avail());
<B>char</B> c;
<B>while</B>(is.get(c))
{
<I><FONT color=#000080>// use logarithmic growth stategy, in case</FONT></I>
<I><FONT color=#000080>// in_avail (above) returned zero:</FONT></I>
<B>if</B>(s.capacity() == s.size())
s.reserve(s.capacity() * <FONT color=#0000a0>3</FONT>);
s.append(<FONT color=#0000a0>1</FONT>, c);
}
}
<B>int</B> main(<B>int</B> argc, <B>char</B>** argv)
{
std::string s;
<B>int</B> i;
<B>for</B>(i = <FONT color=#0000a0>1</FONT>; i &lt; argc; ++i)
{
std::cout &lt;&lt; <FONT color=#0000ff>"Findings URL's in "</FONT> &lt;&lt; argv[i] &lt;&lt; <FONT color=#0000ff>":"</FONT> &lt;&lt; std::endl;
s.erase();
std::ifstream is(argv[i]);
load_file(s, is);
boost::sregex_token_iterator i(s.begin(), s.end(), e, <FONT color=#0000a0>1</FONT>);
boost::sregex_token_iterator j;
<B>while</B>(i != j)
{
std::cout &lt;&lt; *i++ &lt;&lt; std::endl;
}
}
<I><FONT color=#000080>//</FONT></I>
<I><FONT color=#000080>// alternative method:</FONT></I>
<I><FONT color=#000080>// test the array-literal constructor, and split out the whole</FONT></I>
<I><FONT color=#000080>// match as well as $1....</FONT></I>
<I><FONT color=#000080>//</FONT></I>
<B>for</B>(i = <FONT color=#0000a0>1</FONT>; i &lt; argc; ++i)
{
std::cout &lt;&lt; <FONT color=#0000ff>"Findings URL's in "</FONT> &lt;&lt; argv[i] &lt;&lt; <FONT color=#0000ff>":"</FONT> &lt;&lt; std::endl;
s.erase();
std::ifstream is(argv[i]);
load_file(s, is);
<B>const</B> <B>int</B> subs[] = {<FONT color=#0000a0>1</FONT>, <FONT color=#0000a0>0</FONT>,};
boost::sregex_token_iterator i(s.begin(), s.end(), e, subs);
boost::sregex_token_iterator j;
<B>while</B>(i != j)
{
std::cout &lt;&lt; *i++ &lt;&lt; std::endl;
}
}
<B>return</B> <FONT color=#0000a0>0</FONT>;
}
</pre>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,46 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: class regex_traits</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">class regex_traits</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<p></p>
<P>Under construction.</P>
<P>The current boost.regex traits class design will be migrated to that specified
in the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">regular
expression standardization proposal</A>.&nbsp;</P>
<P>
<HR>
<P></P>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,77 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Standards Conformance</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Standards Conformance</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>C++</H3>
<P>Boost.regex is intended to conform to the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</A>, which will appear in a
future C++ standard technical report (and hopefully in a future version of the
standard).&nbsp; Currently there are some differences in how the regular
expression traits classes are defined, these will be fixed in a future release.</P>
<H3>ECMAScript / JavaScript</H3>
<P>All of the ECMAScript regular expression syntax features are supported, except
that:</P>
<P>Negated class escapes (\S, \D and \W) are not permitted inside character class
definitions ( [...] ).</P>
<P>The escape sequence \u matches any upper case character (the same as
[[:upper:]])&nbsp;rather than a Unicode escape sequence; use \x{DDDD} for
Unicode escape sequences.</P>
<H3>Perl</H3>
<P>Almost all Perl features are supported, except for:</P>
<P>\N{name}&nbsp; Use [[:name:]] instead.</P>
<P>\pP and \PP</P>
<P>(?imsx-imsx)</P>
<P>(?&lt;=pattern)</P>
<P>(?&lt;!pattern)</P>
<P>(?{code})</P>
<P>(??{code})</P>
<P>(?(condition)yes-pattern) and (?(condition)yes-pattern|no-pattern)</P>
<P>These embarrassments / limitations will be removed in due course, mainly
dependent upon user demand.</P>
<H3>POSIX</H3>
<P>All the POSIX basic and extended regular expression features are supported,
except that:</P>
<P>No character collating names are recognized except those specified in the POSIX
standard for the C locale, unless they are explicitly registered with the
traits class.</P>
<P>Character equivalence classes ( [[=a=]] etc) are probably buggy except on
Win32.&nbsp; Implementing this feature requires knowledge of the format of the
string sort keys produced by the system; if you need this, and the default
implementation doesn't work on your platform, then you will need to supply a
custom traits class.</P>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,562 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: sub_match</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK href="../../../boost.css" type="text/css" rel="stylesheet"></head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td vAlign="top" width="300">
<h3><A href="../../../index.htm"><IMG height="86" alt="C++ Boost" src="../../../c++boost.gif" width="277" border="0"></A></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">sub_match</H2>
</TD>
<td width="50">
<h3><A href="index.html"><IMG height="45" alt="Boost.Regex Index" src="uarrow.gif" width="43" border="0"></A></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Synopsis</H3>
<P>#include &lt;<A href="../../../boost/regex.hpp">boost/regex.hpp</A>&gt;
</P>
<P>Regular expressions are different from many simple pattern-matching algorithms
in that as well as finding an overall match they can also produce
sub-expression matches: each sub-expression being delimited in the pattern by a
pair of parenthesis (...). There has to be some method for reporting
sub-expression matches back to the user: this is achieved this by defining a
class <I><A href="match_results.html">match_results</A></I> that acts as an
indexed collection of sub-expression matches, each sub-expression match being
contained in an object of type <I>sub_match</I>
.
<P>Objects of type <EM>sub_match</EM> may only obtained by subscripting an object
of type <EM><A href="match_results.html">match_results</A></EM>
.
<P>Objects of type <EM>sub_match</EM> may be compared to objects of type <EM>std::basic_string</EM>,
or <EM>const charT*</EM> or <EM>const charT</EM>
.
<P>Objects of type <EM>sub_match</EM> may be added to objects of type <EM>std::basic_string</EM>,
or <EM>const charT* </EM>or <EM>const charT</EM>, to produce a new <EM>std::basic_string
</EM>
object.
<P>When the marked sub-expression denoted by an object of type sub_match&lt;&gt;
participated in a regular expression match then member <CODE>matched</CODE> evaluates
to true, and members <CODE>first</CODE> and <CODE>second</CODE> denote the
range of characters <CODE>[first,second)</CODE> which formed that match.
Otherwise <CODE>matched</CODE> is false, and members <CODE>first</CODE> and <CODE>second</CODE>
contained undefined values.</P>
<P>When the marked sub-expression denoted by an object of type sub_match&lt;&gt;
was repeated, then the sub_match object represents the match obtained by the
last repeat.&nbsp; The complete set of all the captures obtained for all the
repeats, may be accessed via the captures() member function (Note: this has
serious performance implications, you have to explicitly enable this feature).</P>
<P>If an object of type <CODE>sub_match&lt;&gt;</CODE> represents sub-expression 0
- that is to say the whole match - then member <CODE>matched</CODE> is always
true, unless a partial match was obtained as a result of the flag <CODE>match_partial</CODE>
being passed to a regular expression algorithm, in which case member <CODE>matched</CODE>
is false, and members <CODE>first</CODE> and <CODE>second</CODE> represent the
character range that formed the partial match.</P>
<PRE>namespace boost{
template &lt;class BidirectionalIterator&gt;
class sub_match : public std::pair&lt;BidirectionalIterator, BidirectionalIterator&gt;
{
public:
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::value_type value_type;
typedef typename iterator_traits&lt;BidirectionalIterator&gt;::difference_type difference_type;
typedef BidirectionalIterator iterator;
bool <A href="#m1" >matched</A>;
difference_type <A href="#m2" >length</A>()const;
operator <A href="#m3" >basic_string</A>&lt;value_type&gt;()const;
basic_string&lt;value_type&gt; <A href="#m4" >str</A>()const;
int <A href="#m5" >compare</A>(const sub_match&amp; s)const;
int <A href="#m6" >compare</A>(const basic_string&lt;value_type&gt;&amp; s)const;
int <A href="#m7" >compare</A>(const value_type* s)const;
#ifdef BOOST_REGEX_MATCH_EXTRA
typedef implementation-private <A href="#m9">capture_sequence_type</A>;
const capture_sequence_type&amp; <A href="#m8" >captures</A>()const;
#endif
};
//
// comparisons to another sub_match:
//
template &lt;class BidirectionalIterator&gt;
bool <A href="#o11" >operator</A> == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o12" >operator</A> != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o13" >operator</A> &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o14" >operator</A> &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o15" >operator</A> &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o16" >operator</A> &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
//
// comparisons to a basic_string:
//
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o21" >operator</A> == (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o22" >operator</A> != (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o23" >operator</A> &lt; (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o24" >operator</A> &gt; (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o25" >operator</A> &gt;= (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o26" >operator</A> &lt;= (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o31" >operator</A> == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o32" >operator</A> != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o33" >operator</A> &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o34" >operator</A> &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o35" >operator</A> &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool <A href="#o36" >operator</A> &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);
//
// comparisons to a pointer to a character array:
//
template &lt;class BidirectionalIterator&gt;
bool <A href="#o41" >operator</A> == (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o42" >operator</A> != (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o43" >operator</A> &lt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o44" >operator</A> &gt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o45" >operator</A> &gt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o46" >operator</A> &lt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o51" >operator</A> == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o52" >operator</A> != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o53" >operator</A> &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o54" >operator</A> &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o55" >operator</A> &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o56" >operator</A> &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs);
//
// comparisons to a single character:
//
template &lt;class BidirectionalIterator&gt;
bool <A href="#o61" >operator</A> == (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o62" >operator</A> != (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o63" >operator</A> &lt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o64" >operator</A> &gt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o65" >operator</A> &gt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o66" >operator</A> &lt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o71" >operator</A> == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o72" >operator</A> != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o73" >operator</A> &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o74" >operator</A> &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o75" >operator</A> &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
template &lt;class BidirectionalIterator&gt;
bool <A href="#o76" >operator</A> &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs);
//
// addition operators:
//
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;
<A href="#o81" >operator</A> + (const std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m);
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;
<A href="#o82" >operator</A> + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
const std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; s);
template &lt;class BidirectionalIterator&gt; std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o83" >operator</A> + (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m);
template &lt;class BidirectionalIterator&gt; std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o84" >operator</A> + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const * s);
template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o85" >operator</A> + (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m);
template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o86" >operator</A> + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; s);
template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
<A href="#o87" >operator</A> + (const sub_match&lt;BidirectionalIterator&gt;&amp; m1,
const sub_match&lt;BidirectionalIterator&gt;&amp; m2);
//
// stream inserter:
//
template &lt;class charT, class traits, class BidirectionalIterator&gt;
basic_ostream&lt;charT, traits&gt;&amp;
<A href="#oi" >operator</A> &lt;&lt; (basic_ostream&lt;charT, traits&gt;&amp; os,
const sub_match&lt;BidirectionalIterator&gt;&amp; m);
} // namespace boost</PRE>
<H3>Description</H3>
<H4>sub_match members</H4>
<PRE>typedef typename std::iterator_traits&lt;iterator&gt;::value_type value_type;</PRE>
<P>The type pointed to by the iterators.</P>
<PRE>typedef typename std::iterator_traits&lt;iterator&gt;::difference_type difference_type;</PRE>
<P>A type that represents the difference between two iterators.</P>
<PRE>typedef iterator iterator_type;</PRE>
<P>The iterator type.</P>
<PRE>iterator first</PRE>
<P>An iterator denoting the position of the start of the match.</P>
<PRE>iterator second</PRE>
<P>An iterator denoting the position of the end of the match.</P>
<PRE><A name=m1></A>bool matched</PRE>
<P>A Boolean value denoting whether this sub-expression participated in the match.</P>
<PRE><A name=m2></A>static difference_type length();</PRE>
<P><B>Effects: </B>returns the length of this matched sub-expression, or 0 if this
sub-expression was not matched: <CODE>matched ? distance(first, second) : 0)</CODE>.</P>
<PRE><A name=m3></A>operator basic_string&lt;value_type&gt;()const;</PRE>
<P><B>Effects: </B>converts *this into a string: returns <CODE>(matched ?
basic_string&lt;value_type&gt;(first, second) :
basic_string&lt;value_type&gt;()).</P>
</CODE><PRE><A name=m4></A>basic_string&lt;value_type&gt; str()const;</PRE>
<P><B>Effects: </B>returns a string representation of *this:&nbsp; <CODE>(matched ?
basic_string&lt;value_type&gt;(first, second) :
basic_string&lt;value_type&gt;())</CODE>.</P>
<PRE><A name=m5></A>int compare(const sub_match&amp; s)const;</PRE>
<P><B>Effects: </B>performs a lexical comparison to <EM>s</EM>: returns <CODE>str().compare(s.str())</CODE>.</P>
<PRE><A name=m6></A>int compare(const basic_string&lt;value_type&gt;&amp; s)const;</PRE>
<P><B>Effects: </B>compares *this to the string s: returns <CODE>str().compare(s)</CODE>.</P>
<PRE><A name=m7></A>int compare(const value_type* s)const;</PRE>
<P><B>Effects:<B></B> </B>compares *this to the null-terminated string <EM>s</EM>:<B>&nbsp;</B>returns
<CODE>str().compare(s)</CODE>.</P>
<PRE><A name=m9></A>typedef implementation-private capture_sequence_type;</PRE>
<P>Defines an implementation-specific type that&nbsp;satisfies the requirements of
a standard library Sequence (21.1.1 including the optional Table 68
operations),&nbsp;whose value_type is a <EM>sub_match&lt;BidirectionalIterator&gt;</EM>.&nbsp;This
type happens to be <EM>std::vector&lt;sub_match&lt;BidirectionalIterator&gt; &gt;</EM>,
but you shouldn't actually rely on that.</P>
<PRE><A name=m8></A>const capture_sequence_type&amp; <A href="#m8" >captures</A>()const; </PRE>
<P><STRONG>Effects:</STRONG> returns a sequence containing all the captures
obtained for this sub-expression.</P>
<P><STRONG>Preconditions:</STRONG> the library must be built and used with
BOOST_REGEX_MATCH_EXTRA defined, and you must pass the flag <A href="match_flag_type.html">
match_extra</A> to the regex matching functions (<A href="regex_match.html">regex_match</A>,
<A href="regex_search.html">regex_search</A>, <A href="regex_iterator.html">regex_iterator</A>
or <A href="regex_token_iterator.html">regex_token_iterator</A>) in order for
this member function to be defined and return useful information.</P>
<P><STRONG>Rationale:</STRONG> Enabling this feature has several consequences:
</P>
<UL>
<LI>
sub_match occupies more memory resulting in complex expressions running out of
memory or stack space more quickly during matching.
<LI>
The matching algorithms are less efficient at handling some features
(independent sub-expressions for example), even when match_extra is not used.
<LI>
The matching algorithms are much less efficient (i.e. slower), when match_extra
is used.&nbsp; Mostly this is down to the extra memory allocations that have to
take place.</LI></UL>
<H4>sub_match non-member operators</H4>
<H5>Comparisons against self</H5>
<PRE><A name=o11></A>template &lt;class BidirectionalIterator&gt;
bool operator == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) == 0</CODE>.</P>
<PRE><A name=o12></A>template &lt;class BidirectionalIterator&gt;
bool operator != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) != 0</CODE>.</P>
<PRE><A name=o13></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) &lt; 0</CODE>.</P>
<PRE><A name=o14></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) &lt;= 0</CODE>.</P>
<PRE><A name=o15></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) &gt;= 0</CODE>.</P>
<PRE><A name=o16></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.compare(rhs) &gt; 0</CODE>.</P>
<H5>Comparisons with std::basic_string</H5>
<pre><A name=o21></A>
template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator == (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits,
Allocator&gt;&amp; lhs, const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);
</pre>
<P><B>Effects: </B>returns <CODE>lhs == rhs.str()</CODE>.</P>
<PRE><A name=o22></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator != (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs != rhs.str()</CODE>.</P>
<PRE><A name=o23></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &lt; (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs&nbsp;&lt; rhs.str()</CODE>.</P>
<PRE><A name=o24></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &gt; (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs&nbsp;&gt; rhs.str()</CODE>.</P>
<PRE><A name=o25></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &gt;= (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt;= rhs.str()</CODE>.</P>
<PRE><A name=o26></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &lt;= (const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt;= rhs.str()</CODE>.</P>
<PRE><A name=o31></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() == rhs</CODE>.</P>
<PRE><A name=o32></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() != rhs</CODE>.</P>
<PRE><A name=o33></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str()&nbsp;&lt; rhs</CODE>.</P>
<PRE><A name=o34></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str()&nbsp;&gt; rhs</CODE>.</P>
<PRE><A name=o35></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt;= rhs</CODE>.</P>
<PRE><A name=o36></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
bool operator &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
const std::basic_string&lt;iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; rhs);</PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt;= rhs</CODE>.</P>
<H5>Comparisons with null-terminated strings</H5>
<PRE><A name=o41></A>template &lt;class BidirectionalIterator&gt;
bool operator == (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs == rhs.str()</CODE>.</P>
<PRE><A name=o42></A>template &lt;class BidirectionalIterator&gt;
bool operator != (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs != rhs.str()</CODE>.</P>
<PRE></A><A name=o43></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt; rhs.str()</CODE>.</P>
<PRE><A name=o44></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt; rhs.str()</CODE>.</P>
<PRE><A name=o45></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt;= rhs.str()</CODE>.</P>
<PRE><A name=o46></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt;= rhs.str()</CODE>.</P>
<PRE><A name=o51></A>template &lt;class BidirectionalIterator&gt;
bool operator == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() == rhs</CODE>.</P>
<PRE><A name=o52></A>template &lt;class BidirectionalIterator&gt;
bool operator != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() != rhs</CODE>.</P>
<PRE><A name=o53></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt; rhs</CODE>.</P>
<PRE><A name=o54></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt; rhs</CODE>.</P>
<PRE><A name=o55></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt;= rhs</CODE>.</P>
<PRE><A name=o56></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt;= rhs</CODE>.</P>
<H5>Comparisons with a single character</H5>
<PRE><A name=o61></A>template &lt;class BidirectionalIterator&gt;
bool operator == (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs == rhs.str()</CODE>.</P>
<PRE><A name=o62></A>template &lt;class BidirectionalIterator&gt;
bool operator != (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs != rhs.str()</CODE>.</P>
<PRE><A name=o63></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt; rhs.str()</CODE>.</P>
<PRE><A name=o64></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt; rhs.str()</CODE>.</P>
<PRE><A name=o65></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &gt;= rhs.str()</CODE>.</P>
<PRE><A name=o66></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; lhs,
const sub_match&lt;BidirectionalIterator&gt;&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs &lt;= rhs.str()</CODE>.</P>
<PRE><A name=o71></A>template &lt;class BidirectionalIterator&gt;
bool operator == (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() == rhs</CODE>.</P>
<PRE><A name=o72></A>template &lt;class BidirectionalIterator&gt;
bool operator != (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() != rhs</CODE>.</P>
<PRE><A name=o73></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt; rhs</CODE>.</P>
<PRE><A name=o74></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt; (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt; rhs</CODE>.</P>
<PRE><A name=o75></A>template &lt;class BidirectionalIterator&gt;
bool operator &gt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &gt;= rhs</CODE>.</P>
<PRE><A name=o76></A>template &lt;class BidirectionalIterator&gt;
bool operator &lt;= (const sub_match&lt;BidirectionalIterator&gt;&amp; lhs,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; rhs); </PRE>
<P><B>Effects: </B>returns <CODE>lhs.str() &lt;= rhs</CODE>.</P>
<h5>Addition operators</h5>
<P>The addition operators for sub_match allow you to add a sub_match to any type
to which you can add a std::string and obtain a new string as the result.</P>
<PRE><A name=o81></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;
operator + (const std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m); </PRE>
<P><B>Effects: </B>returns <CODE>s + m.str()</CODE>.</P>
<PRE><A name=o82></A>template &lt;class BidirectionalIterator, class traits, class Allocator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;
operator + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
const std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type, traits, Allocator&gt;&amp; s); </PRE>
<P><B>Effects: </B>returns <CODE>m.str() + s</CODE>.</P>
<PRE><A name=o83></A>template &lt;class BidirectionalIterator&gt; std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const* s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m); </PRE>
<P><B>Effects: </B>returns <CODE>s + m.str()</CODE>.</P>
<PRE><A name=o84></A>template &lt;class BidirectionalIterator&gt; std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const * s);</PRE>
<P><B>Effects: </B>returns <CODE>m.str() + s</CODE>.</P>
<PRE><A name=o85></A>template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; s,
const sub_match&lt;BidirectionalIterator&gt;&amp; m); </PRE>
<P><B>Effects: </B>returns <CODE>s + m.str()</CODE>.</P>
<PRE><A name=o86></A>template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (const sub_match&lt;BidirectionalIterator&gt;&amp; m,
typename iterator_traits&lt;BidirectionalIterator&gt;::value_type const&amp; s); </PRE>
<P><B>Effects: </B>returns <CODE>m.str() + s</CODE>.</P>
<PRE><A name=o87></A>template &lt;class BidirectionalIterator&gt;
std::basic_string&lt;typename iterator_traits&lt;BidirectionalIterator&gt;::value_type&gt;
operator + (const sub_match&lt;BidirectionalIterator&gt;&amp; m1,
const sub_match&lt;BidirectionalIterator&gt;&amp; m2);</PRE>
<P><B>Effects: </B>returns&nbsp;<CODE>m1.str() + m2.str()</CODE>.</P>
<h5>Stream inserter</h5>
<PRE><A name=oi></A>template &lt;class charT, class traits, class BidirectionalIterator&gt;
basic_ostream&lt;charT, traits&gt;&amp;
operator &lt;&lt; (basic_ostream&lt;charT, traits&gt;&amp; os
const sub_match&lt;BidirectionalIterator&gt;&amp; m);</PRE>
<P>
<B>Effects: </B>returns <CODE>(os &lt;&lt; m.str())</CODE>.
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,771 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Regular Expression Syntax</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Regular Expression Syntax</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<P>This section covers the regular expression syntax used by this library, this is
a programmers guide, the actual syntax presented to your program's users will
depend upon the flags used during expression compilation.
</P>
<H3>Literals
</H3>
<P>All characters are literals except: ".", "|", "*", "?", "+", "(", ")", "{",
"}", "[", "]", "^", "$" and "\". These characters are literals when preceded by
a "\". A literal is a character that matches itself, or matches the result of
traits_type::translate(), where traits_type is the traits template parameter to
class basic_regex.</P>
<H3>Wildcard
</H3>
<P>The dot character "." matches any single character except : when <I>match_not_dot_null</I>
is passed to the matching algorithms, the dot does not match a null character;
when <I>match_not_dot_newline</I> is passed to the matching algorithms, then
the dot does not match a newline character.
</P>
<H3>Repeats
</H3>
<P>A repeat is an expression that is repeated an arbitrary number of times. An
expression followed by "*" can be repeated any number of times including zero.
An expression followed by "+" can be repeated any number of times, but at least
once, if the expression is compiled with the flag regex_constants::bk_plus_qm
then "+" is an ordinary character and "\+" represents a repeat of once or more.
An expression followed by "?" may be repeated zero or one times only, if the
expression is compiled with the flag regex_constants::bk_plus_qm then "?" is an
ordinary character and "\?" represents the repeat zero or once operator. When
it is necessary to specify the minimum and maximum number of repeats
explicitly, the bounds operator "{}" may be used, thus "a{2}" is the letter "a"
repeated exactly twice, "a{2,4}" represents the letter "a" repeated between 2
and 4 times, and "a{2,}" represents the letter "a" repeated at least twice with
no upper limit. Note that there must be no white-space inside the {}, and there
is no upper limit on the values of the lower and upper bounds. When the
expression is compiled with the flag regex_constants::bk_braces then "{" and
"}" are ordinary characters and "\{" and "\}" are used to delimit bounds
instead. All repeat expressions refer to the shortest possible previous
sub-expression: a single character; a character set, or a sub-expression
grouped with "()" for example.
</P>
<P>Examples:
</P>
<P>"ba*" will match all of "b", "ba", "baaa" etc.
</P>
<P>"ba+" will match "ba" or "baaaa" for example but not "b".
</P>
<P>"ba?" will match "b" or "ba".
</P>
<P>"ba{2,4}" will match "baa", "baaa" and "baaaa".
</P>
<H3>Non-greedy repeats
</H3>
<P>Whenever the "extended" regular expression syntax is in use (the default) then
non-greedy repeats are possible by appending a '?' after the repeat; a
non-greedy repeat is one which will match the <I>shortest</I> possible string.
</P>
<P>For example to match html tag pairs one could use something like:
</P>
<P>"&lt;\s*tagname[^&gt;]*&gt;(.*?)&lt;\s*/tagname\s*&gt;"
</P>
<P>In this case $1 will contain the text between the tag pairs, and will be the
shortest possible matching string.&nbsp;
</P>
<H3>Parenthesis
</H3>
<P>Parentheses serve two purposes, to group items together into a sub-expression,
and to mark what generated the match. For example the expression "(ab)*" would
match all of the string "ababab". The matching algorithms <A href="regex_match.html">
regex_match</A> and <A href="regex_search.html">regex_search</A>
each take an instance of <A href="match_results.html">match_results</A>
that reports what caused the match, on exit from these functions the <A href="match_results.html">
match_results</A> contains information both on what the whole expression
matched and on what each sub-expression matched. In the example above
match_results[1] would contain a pair of iterators denoting the final "ab" of
the matching string. It is permissible for sub-expressions to match null
strings. If a sub-expression takes no part in a match - for example if it is
part of an alternative that is not taken - then both of the iterators that are
returned for that sub-expression point to the end of the input string, and the <I>matched</I>
parameter for that sub-expression is <I>false</I>. Sub-expressions are indexed
from left to right starting from 1, sub-expression 0 is the whole expression.
</P>
<H3>Non-Marking Parenthesis
</H3>
<P>Sometimes you need to group sub-expressions with parenthesis, but don't want
the parenthesis to spit out another marked sub-expression, in this case a
non-marking parenthesis (?:expression) can be used. For example the following
expression creates no sub-expressions:
</P>
<P>"(?:abc)*"</P>
<H3>Forward Lookahead Asserts&nbsp;
</H3>
<P>There are two forms of these; one for positive forward lookahead asserts, and
one for negative lookahead asserts:</P>
<P>"(?=abc)" matches zero characters only if they are followed by the expression
"abc".</P>
<P>"(?!abc)" matches zero characters only if they are not followed by the
expression "abc".</P>
<H3>Independent sub-expressions</H3>
<P>"(?&gt;expression)" matches "expression" as an independent atom (the algorithm
will not backtrack into it if a failure occurs later in the expression).</P>
<H3>Alternatives
</H3>
<P>Alternatives occur when the expression can match either one sub-expression or
another, each alternative is separated by a "|", or a "\|" if the flag
regex_constants::bk_vbar is set, or by a newline character if the flag
regex_constants::newline_alt is set. Each alternative is the largest possible
previous sub-expression; this is the opposite behavior from repetition
operators.
</P>
<P>Examples:
</P>
<P>"a(b|c)" could match "ab" or "ac".
</P>
<P>"abc|def" could match "abc" or "def".
</P>
<H3>Sets
</H3>
<P>A set is a set of characters that can match any single character that is a
member of the set. Sets are delimited by "[" and "]" and can contain literals,
character ranges, character classes, collating elements and equivalence
classes. Set declarations that start with "^" contain the compliment of the
elements that follow.
</P>
<P>Examples:
</P>
<P>Character literals:
</P>
<P>"[abc]" will match either of "a", "b", or "c".
</P>
<P>"[^abc] will match any character other than "a", "b", or "c".
</P>
<P>Character ranges:
</P>
<P>"[a-z]" will match any character in the range "a" to "z".
</P>
<P>"[^A-Z]" will match any character other than those in the range "A" to "Z".
</P>
<P>Note that character ranges are highly locale dependent if the flag
regex_constants::collate is set: they match any character that collates between
the endpoints of the range, ranges will only behave according to ASCII rules
when the default "C" locale is in effect. For example if the library is
compiled with the Win32 localization model, then [a-z] will match the ASCII
characters a-z, and also 'A', 'B' etc, but not 'Z' which collates just after
'z'. This locale specific behavior is disabled by default (in perl mode), and
forces ranges to collate according to ASCII character code.
</P>
<P>Character classes are denoted using the syntax "[:classname:]" within a set
declaration, for example "[[:space:]]" is the set of all whitespace characters.
Character classes are only available if the flag regex_constants::char_classes
is set. The available character classes are:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table2" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="50%">alnum</TD>
<TD vAlign="top" width="50%">Any alpha numeric character.</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">alpha</TD>
<TD vAlign="top" width="50%">Any alphabetical character a-z and A-Z. Other
characters may also be included depending upon the locale.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">blank</TD>
<TD vAlign="top" width="50%">Any blank character, either a space or a tab.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">cntrl</TD>
<TD vAlign="top" width="50%">Any control character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">digit</TD>
<TD vAlign="top" width="50%">Any digit 0-9.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">graph</TD>
<TD vAlign="top" width="50%">Any graphical character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">lower</TD>
<TD vAlign="top" width="50%">Any lower case character a-z. Other characters may
also be included depending upon the locale.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">print</TD>
<TD vAlign="top" width="50%">Any printable character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">punct</TD>
<TD vAlign="top" width="50%">Any punctuation character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">space</TD>
<TD vAlign="top" width="50%">Any whitespace character.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">upper</TD>
<TD vAlign="top" width="50%">Any upper case character A-Z. Other characters may
also be included depending upon the locale.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">xdigit</TD>
<TD vAlign="top" width="50%">Any hexadecimal digit character, 0-9, a-f and A-F.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">word</TD>
<TD vAlign="top" width="50%">Any word character - all alphanumeric characters plus
the underscore.</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="50%">Unicode</TD>
<TD vAlign="top" width="50%">Any character whose code is greater than 255, this
applies to the wide character traits classes only.</TD>
<TD>&nbsp;</TD>
</TR>
</TABLE>
</P>
<P>There are some shortcuts that can be used in place of the character classes,
provided the flag regex_constants::escape_in_lists is set then you can use:
</P>
<P>\w in place of [:word:]
</P>
<P>\s in place of [:space:]
</P>
<P>\d in place of [:digit:]
</P>
<P>\l in place of [:lower:]
</P>
<P>\u in place of [:upper:]&nbsp;
</P>
<P>Collating elements take the general form [.tagname.] inside a set declaration,
where <I>tagname</I> is either a single character, or a name of a collating
element, for example [[.a.]] is equivalent to [a], and [[.comma.]] is
equivalent to [,]. The library supports all the standard POSIX collating
element names, and in addition the following digraphs: "ae", "ch", "ll", "ss",
"nj", "dz", "lj", each in lower, upper and title case variations.
Multi-character collating elements can result in the set matching more than one
character, for example [[.ae.]] would match two characters, but note that
[^[.ae.]] would only match one character.&nbsp;
</P>
<P>
Equivalence classes take the general form[=tagname=] inside a set declaration,
where <I>tagname</I> is either a single character, or a name of a collating
element, and matches any character that is a member of the same primary
equivalence class as the collating element [.tagname.]. An equivalence class is
a set of characters that collate the same, a primary equivalence class is a set
of characters whose primary sort key are all the same (for example strings are
typically collated by character, then by accent, and then by case; the primary
sort key then relates to the character, the secondary to the accentation, and
the tertiary to the case). If there is no equivalence class corresponding to <I>tagname</I>
, then[=tagname=] is exactly the same as [.tagname.]. Unfortunately there is no
locale independent method of obtaining the primary sort key for a character,
except under Win32. For other operating systems the library will "guess" the
primary sort key from the full sort key (obtained from <I>strxfrm</I>), so
equivalence classes are probably best considered broken under any operating
system other than Win32.&nbsp;
</P>
<P>To include a literal "-" in a set declaration then: make it the first character
after the opening "[" or "[^", the endpoint of a range, a collating element, or
if the flag regex_constants::escape_in_lists is set then precede with an escape
character as in "[\-]". To include a literal "[" or "]" or "^" in a set then
make them the endpoint of a range, a collating element, or precede with an
escape character if the flag regex_constants::escape_in_lists is set.
</P>
<H3>Line anchors
</H3>
<P>An anchor is something that matches the null string at the start or end of a
line: "^" matches the null string at the start of a line, "$" matches the null
string at the end of a line.
</P>
<H3>Back references
</H3>
<P>A back reference is a reference to a previous sub-expression that has already
been matched, the reference is to what the sub-expression matched, not to the
expression itself. A back reference consists of the escape character "\"
followed by a digit "1" to "9", "\1" refers to the first sub-expression, "\2"
to the second etc. For example the expression "(.*)\1" matches any string that
is repeated about its mid-point for example "abcabc" or "xyzxyz". A back
reference to a sub-expression that did not participate in any match, matches
the null string: NB this is different to some other regular expression
matchers. Back references are only available if the expression is compiled with
the flag regex_constants::bk_refs set.
</P>
<H3>Characters by code
</H3>
<P>This is an extension to the algorithm that is not available in other libraries,
it consists of the escape character followed by the digit "0" followed by the
octal character code. For example "\023" represents the character whose octal
code is 23. Where ambiguity could occur use parentheses to break the expression
up: "\0103" represents the character whose code is 103, "(\010)3 represents the
character 10 followed by "3". To match characters by their hexadecimal code,
use \x followed by a string of hexadecimal digits, optionally enclosed inside
{}, for example \xf0 or \x{aff}, notice the latter example is a Unicode
character.</P>
<H3>Word operators
</H3>
<P>The following operators are provided for compatibility with the GNU regular
expression library.
</P>
<P>"\w" matches any single character that is a member of the "word" character
class, this is identical to the expression "[[:word:]]".
</P>
<P>"\W" matches any single character that is not a member of the "word" character
class, this is identical to the expression "[^[:word:]]".
</P>
<P>"\&lt;" matches the null string at the start of a word.
</P>
<P>"\&gt;" matches the null string at the end of the word.
</P>
<P>"\b" matches the null string at either the start or the end of a word.
</P>
<P>"\B" matches a null string within a word.
</P>
<P>The start of the sequence passed to the matching algorithms is considered to be
a potential start of a word unless the flag match_not_bow is set. The end of
the sequence passed to the matching algorithms is considered to be a potential
end of a word unless the flag match_not_eow is set.
</P>
<H3>Buffer operators
</H3>
<P>The following operators are provided for compatibility with the GNU regular
expression library, and Perl regular expressions:
</P>
<P>"\`" matches the start of a buffer.
</P>
<P>"\A" matches the start of the buffer.
</P>
<P>"\'" matches the end of a buffer.
</P>
<P>"\z" matches the end of a buffer.
</P>
<P>"\Z" matches the end of a buffer, or possibly one or more new line characters
followed by the end of the buffer.
</P>
<P>A buffer is considered to consist of the whole sequence passed to the matching
algorithms, unless the flags match_not_bob or match_not_eob are set.
</P>
<H3>Escape operator
</H3>
<P>The escape character "\" has several meanings.
</P>
<P>Inside a set declaration the escape character is a normal character unless the
flag regex_constants::escape_in_lists is set in which case whatever follows the
escape is a literal character regardless of its normal meaning.
</P>
<P>The escape operator may introduce an operator for example: back references, or
a word operator.
</P>
<P>The escape operator may make the following character normal, for example "\*"
represents a literal "*" rather than the repeat operator.
</P>
<H4>Single character escape sequences
</H4>
<P>The following escape sequences are aliases for single characters:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table3" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="33%">Escape sequence
</TD>
<TD vAlign="top" width="33%">Character code
</TD>
<TD vAlign="top" width="33%">Meaning
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\a
</TD>
<TD vAlign="top" width="33%">0x07
</TD>
<TD vAlign="top" width="33%">Bell character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\f
</TD>
<TD vAlign="top" width="33%">0x0C
</TD>
<TD vAlign="top" width="33%">Form feed.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\n
</TD>
<TD vAlign="top" width="33%">0x0A
</TD>
<TD vAlign="top" width="33%">Newline character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\r
</TD>
<TD vAlign="top" width="33%">0x0D
</TD>
<TD vAlign="top" width="33%">Carriage return.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\t
</TD>
<TD vAlign="top" width="33%">0x09
</TD>
<TD vAlign="top" width="33%">Tab character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\v
</TD>
<TD vAlign="top" width="33%">0x0B
</TD>
<TD vAlign="top" width="33%">Vertical tab.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\e
</TD>
<TD vAlign="top" width="33%">0x1B
</TD>
<TD vAlign="top" width="33%">ASCII Escape character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\0dd
</TD>
<TD vAlign="top" width="33%">0dd
</TD>
<TD vAlign="top" width="33%">An octal character code, where <I>dd</I> is one or
more octal digits.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\xXX
</TD>
<TD vAlign="top" width="33%">0xXX
</TD>
<TD vAlign="top" width="33%">A hexadecimal character code, where XX is one or more
hexadecimal digits.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\x{XX}
</TD>
<TD vAlign="top" width="33%">0xXX
</TD>
<TD vAlign="top" width="33%">A hexadecimal character code, where XX is one or more
hexadecimal digits, optionally a Unicode character.
</TD>
<TD>&nbsp;</TD>
</TR>
<TR>
<TD>&nbsp;</TD>
<TD vAlign="top" width="33%">\cZ
</TD>
<TD vAlign="top" width="33%">z-@
</TD>
<TD vAlign="top" width="33%">An ASCII escape sequence control-Z, where Z is any
ASCII character greater than or equal to the character code for '@'.
</TD>
<TD>&nbsp;</TD>
</TR>
</TABLE>
</P>
<H4>Miscellaneous escape sequences:
</H4>
<P>The following are provided mostly for perl compatibility, but note that there
are some differences in the meanings of \l \L \u and \U:
<BR>
&nbsp;
</P>
<P>
<TABLE id="Table4" cellSpacing="0" cellPadding="6" width="100%" border="0">
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\w
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:word:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\W
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:word:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\s
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:space:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\S
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:space:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\d
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:digit:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\D
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:digit:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\l
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:lower:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\L
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:lower:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\u
</TD>
<TD vAlign="top" width="45%">Equivalent to [[:upper:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\U
</TD>
<TD vAlign="top" width="45%">Equivalent to [^[:upper:]].
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\C
</TD>
<TD vAlign="top" width="45%">Any single character, equivalent to '.'.
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\X
</TD>
<TD vAlign="top" width="45%">Match any Unicode combining character sequence, for
example "a\x 0301" (a letter a with an acute).
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\Q
</TD>
<TD vAlign="top" width="45%">The begin quote operator, everything that follows is
treated as a literal character until a \E end quote operator is found.
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
<TR>
<TD width="5%">&nbsp;</TD>
<TD vAlign="top" width="45%">\E
</TD>
<TD vAlign="top" width="45%">The end quote operator, terminates a sequence begun
with \Q.
</TD>
<TD width="5%">&nbsp;</TD>
</TR>
</TABLE>
</P>
<H3>What gets matched?
</H3>
<P>
When the expression is compiled as a Perl-compatible regex then the matching
algorithms will perform a depth first search on the state machine and report
the first match found.</P>
<P>
When the expression is compiled as a POSIX-compatible regex then the matching
algorithms will match the first possible matching string, if more than one
string starting at a given location can match then it matches the longest
possible string, unless the flag match_any is set, in which case the first
match encountered is returned. Use of the match_any option can reduce the time
taken to find the match - but is only useful if the user is less concerned
about what matched - for example it would not be suitable for search and
replace operations. In cases where their are multiple possible matches all
starting at the same location, and all of the same length, then the match
chosen is the one with the longest first sub-expression, if that is the same
for two or more matches, then the second sub-expression will be examined and so
on.
</P><P>
The following table examples illustrate the main differences between Perl and
POSIX regular expression matching rules:
</P>
<P>
<TABLE id="Table5" cellSpacing="1" cellPadding="7" width="624" border="1">
<TBODY>
<TR>
<TD vAlign="top" width="25%">
<P>Expression</P>
</TD>
<TD vAlign="top" width="25%">
<P>Text</P>
</TD>
<TD vAlign="top" width="25%">
<P>POSIX leftmost longest match</P>
</TD>
<TD vAlign="top" width="25%">
<P>ECMAScript depth first search match</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="25%">
<P><CODE>a|ab</CODE></P>
</TD>
<TD vAlign="top" width="25%">
<P><CODE>
xaby</CODE>
</P>
</TD>
<TD vAlign="top" width="25%">
<P><CODE>
"ab"</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>
"a"</CODE></P></TD>
</TR>
<TR>
<TD vAlign="top" width="25%">
<P><CODE>
.*([[:alnum:]]+).*</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>
" abc def xyz "</CODE></P></TD>
<TD vAlign="top" width="25%">
<P>$0 = " abc def xyz "<BR>
$1 = "abc"</P>
</TD>
<TD vAlign="top" width="25%">
<P>$0 = " abc def xyz "<BR>
$1 = "z"</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="25%">
<P><CODE>
.*(a|xayy)</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>
zzxayyzz</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>
"zzxayy"</CODE></P></TD>
<TD vAlign="top" width="25%">
<P><CODE>"zzxa"</CODE></P>
</TD>
</TR>
</TBODY></CODE></TD></TR></TABLE>
<P>These differences between Perl matching rules, and POSIX matching rules, mean
that these two regular expression syntaxes differ not only in the features
offered, but also in the form that the state machine takes and/or the
algorithms used to traverse the state machine.</p>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,331 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: syntax_option_type</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">syntax_option_type</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<H3>Synopsis</H3>
<P>Type syntax_option type is an implementation defined bitmask type that controls
how a regular expression string is to be interpreted.&nbsp; For convenience
note that all the constants listed here, are also duplicated within the scope
of class template <A href="basic_regex.html">basic_regex</A>.</P>
<PRE>namespace std{ namespace regex_constants{
typedef bitmask_type syntax_option_type;
// these flags are standardized:
static const syntax_option_type normal;
static const syntax_option_type icase;
static const syntax_option_type nosubs;
static const syntax_option_type optimize;
static const syntax_option_type collate;
static const syntax_option_type ECMAScript = normal;
static const syntax_option_type JavaScript = normal;
static const syntax_option_type JScript = normal;
static const syntax_option_type basic;
static const syntax_option_type extended;
static const syntax_option_type awk;
static const syntax_option_type grep;
static const syntax_option_type egrep;
static const syntax_option_type sed = basic;
static const syntax_option_type perl;<BR>// these are boost.regex specific:<BR>static const syntax_option_type escape_in_lists;<BR>static const syntax_option_type char_classes;<BR>static const syntax_option_type intervals;<BR>static const syntax_option_type limited_ops;<BR>static const syntax_option_type newline_alt;<BR>static const syntax_option_type bk_plus_qm;<BR>static const syntax_option_type bk_braces;<BR>static const syntax_option_type bk_parens;<BR>static const syntax_option_type bk_refs;<BR>static const syntax_option_type bk_vbar;<BR>static const syntax_option_type use_except;<BR>static const syntax_option_type failbit;<BR>static const syntax_option_type literal;<BR>static const syntax_option_type nocollate;<BR>static const syntax_option_type perlex;<BR>static const syntax_option_type emacs;<BR>
} // namespace regex_constants
} // namespace std</PRE>
<H3>Description</H3>
<P>The type <CODE>syntax_option_type</CODE> is an implementation defined bitmask
type (17.3.2.1.2). Setting its elements has the effects listed in the table
below, a valid value of type <CODE>syntax_option_type</CODE> will always have
exactly one of the elements <CODE>normal, basic, extended, awk, grep, egrep, sed
or perl</CODE> set.</P>
<P>Note that for convenience all the constants listed here are duplicated within
the scope of class template basic_regex, so you can use any of:</P>
<PRE>boost::regex_constants::constant_name</PRE>
<P>or</P>
<PRE>boost::regex::constant_name</PRE>
<P>or</P>
<PRE>boost::wregex::constant_name</PRE>
<P>in an interchangeable manner.</P>
<P>
<TABLE id="Table2" height="1274" cellSpacing="1" cellPadding="7" width="100%" border="0">
<TR>
<TD vAlign="top" width="316">
<P>Element</P>
</TD>
<TD vAlign="top" width="50%">
<P>Effect if set</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>normal</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine uses its
normal semantics: that is the same as that given in the ECMA-262, ECMAScript
Language Specification, Chapter 15 part 10, RegExp (Regular Expression) Objects
(FWD.1).</P>
<P>boost.regex also recognizes most perl-compatible extensions in this mode.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>icase</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that matching of regular expressions against a character container
sequence shall be performed without regard to case.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>nosubs</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that when a regular expression is matched against a character
container sequence, then no sub-expression matches are to be stored in the
supplied match_results structure.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>optimize</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the regular expression engine should pay more attention to the
speed with which regular expressions are matched, and less to the speed with
which regular expression objects are constructed. Otherwise it has no
detectable effect on the program output.&nbsp; This currently has no effect for
boost.regex.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>collate</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that character ranges of the form "[a-b]" should be locale sensitive.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>ECMAScript</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as normal.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>JavaScript</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as normal.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>JScript</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as normal.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>basic</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX basic regular expressions in IEEE Std 1003.1-2001,
Portable Operating System Interface (POSIX ), Base Definitions and Headers,
Section 9, Regular Expressions (FWD.1).
</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>extended</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX extended regular expressions in IEEE Std
1003.1-2001, Portable Operating System Interface (POSIX ), Base Definitions and
Headers, Section 9, Regular Expressions (FWD.1).</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>awk</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX utility awk in IEEE Std 1003.1-2001, Portable
Operating System Interface (POSIX ), Shells and Utilities, Section 4, awk
(FWD.1).</P>
<P>That is to say: the same as POSIX extended syntax, but with escape sequences in
character classes permitted.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>grep</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX utility grep in IEEE Std 1003.1-2001, Portable
Operating System Interface (POSIX ), Shells and Utilities, Section 4,
Utilities, grep (FWD.1).</P>
<P>That is to say, the same as POSIX basic syntax, but with the newline character
acting as an alternation character in addition to "|".</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>egrep</P>
</TD>
<TD vAlign="top" width="50%">
<P>Specifies that the grammar recognized by the regular expression engine is the
same as that used by POSIX utility grep when given the -E option in IEEE Std
1003.1-2001, Portable Operating System Interface (POSIX ), Shells and
Utilities, Section 4, Utilities, grep (FWD.1).</P>
<P>That is to say, the same as POSIX extended syntax, but with the newline
character acting as an alternation character in addition to "|".</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>sed</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as basic.</P>
</TD>
</TR>
<TR>
<TD vAlign="top" width="316">
<P>perl</P>
</TD>
<TD vAlign="top" width="50%">
<P>The same as normal.</P>
</TD>
</TR>
</TABLE>
</P>
<P>The following constants are specific to this particular regular expression
implementation and do not appear in the <A href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1429.htm">
regular expression standardization proposal</A>:</P>
<P>
<TABLE id="Table3" cellSpacing="0" cellPadding="7" width="100%" border="0">
<TR>
<TD vAlign="top" width="45%">regbase::escape_in_lists</TD>
<TD vAlign="top" width="45%">Allows the use of the escape "\" character in sets of
characters, for example [\]] represents the set of characters containing only
"]". If this flag is not set then "\" is an ordinary character inside sets.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase::char_classes</TD>
<TD vAlign="top" width="45%">When this bit is set, character classes [:classname:]
are allowed inside character set declarations, for example "[[:word:]]"
represents the set of all characters that belong to the character class "word".</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: intervals</TD>
<TD vAlign="top" width="45%">When this bit is set, repetition intervals are
allowed, for example "a{2,4}" represents a repeat of between 2 and 4 letter
a's.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: limited_ops</TD>
<TD vAlign="top" width="45%">When this bit is set all of "+", "?" and "|" are
ordinary characters in all situations.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: newline_alt</TD>
<TD vAlign="top" width="45%">When this bit is set, then the newline character "\n"
has the same effect as the alternation operator "|".</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_plus_qm</TD>
<TD vAlign="top" width="45%">When this bit is set then "\+" represents the one or
more repetition operator and "\?" represents the zero or one repetition
operator. When this bit is not set then "+" and "?" are used instead.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_braces</TD>
<TD vAlign="top" width="45%">When this bit is set then "\{" and "\}" are used for
bounded repetitions and "{" and "}" are normal characters. This is the opposite
of default behavior.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_parens</TD>
<TD vAlign="top" width="45%">When this bit is set then "\(" and "\)" are used to
group sub-expressions and "(" and ")" are ordinary characters, this is the
opposite of default behavior.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_refs</TD>
<TD vAlign="top" width="45%">When this bit is set then back references are
allowed.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: bk_vbar</TD>
<TD vAlign="top" width="45%">When this bit is set then "\|" represents the
alternation operator and "|" is an ordinary character. This is the opposite of
default behavior.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: use_except</TD>
<TD vAlign="top" width="45%">When this bit is set then a <A href="#bad_expression">bad_expression</A>
exception will be thrown on error.&nbsp; Use of this flag is deprecated -
basic_regex will always throw on error.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase:: failbit</TD>
<TD vAlign="top" width="45%">This bit is set on error, if regbase::use_except is
not set, then this bit should be checked to see if a regular expression is
valid before usage.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%">regbase::literal</TD>
<TD vAlign="top" width="45%">All characters in the string are treated as literals,
there are no special characters or escape sequences.</TD>
</TR>
<TR>
<TD vAlign="top" width="45%" height="24">regbase::emacs</TD>
<TD vAlign="top" width="45%" height="24">Provides compatability with the emacs
editor, eqivalent to: bk_braces | bk_parens | bk_refs | bk_vbar.</TD>
</TR>
</TABLE>
</P>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

View File

@ -1,70 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Boost.Regex: Thread Safety</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../../../boost.css">
</head>
<body>
<P>
<TABLE id="Table1" cellSpacing="1" cellPadding="1" width="100%" border="0">
<TR>
<td valign="top" width="300">
<h3><a href="../../../index.htm"><img height="86" width="277" alt="C++ Boost" src="../../../c++boost.gif" border="0"></a></h3>
</td>
<TD width="353">
<H1 align="center">Boost.Regex</H1>
<H2 align="center">Thread Safety</H2>
</TD>
<td width="50">
<h3><a href="index.html"><img height="45" width="43" alt="Boost.Regex Index" src="uarrow.gif" border="0"></a></h3>
</td>
</TR>
</TABLE>
</P>
<HR>
<P>The regex library is thread safe when Boost is: you can verify that Boost is in
thread safe mode by checking to see if BOOST_HAS_THREADS is defined: this macro
is set automatically by the config system when threading support is turned on
in your compiler.
</P>
<P>Class <A href="basic_regex.html">basic_regex</A>&lt;&gt; and its typedefs regex
and wregex are thread safe, in that compiled regular expressions can safely be
shared between threads. The matching algorithms <A href="regex_match.html">regex_match</A>,
<A href="regex_search.html">regex_search</A>, <A href="regex_grep.html">regex_grep</A>,
<A href="regex_format.html">regex_format</A> and <A href="regex_merge.html">regex_merge</A>
are all re-entrant and thread safe. Class <A href="match_results.html">match_results</A>
is now thread safe, in that the results of a match can be safely copied from
one thread to another (for example one thread may find matches and push
match_results instances onto a queue, while another thread pops them off the
other end), otherwise use a separate instance of <A href="match_results.html">match_results</A>
per thread.
</P>
<P>The <A href="posix_api.html">POSIX API functions</A> are all re-entrant and
thread safe, regular expressions compiled with <I>regcomp</I> can also be
shared between threads.
</P>
<P>The class<A href="regex.html"> RegEx</A> is only thread safe if each thread
gets its own RegEx instance (apartment threading) - this is a consequence of
RegEx handling both compiling and matching regular expressions.
</P>
<P>Finally note that changing the global locale invalidates all compiled regular
expressions, therefore calling <I>set_locale</I> from one thread while another
uses regular expressions <I>will</I> produce unpredictable results.
</P>
<P>
There is also a requirement that there is only one thread executing prior to
the start of main().</P>
<HR>
<p>Revised
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan -->
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -1,699 +0,0 @@
<html>
<head>
<title>Regular Expression Performance Comparison</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<meta name="Template" content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
</head>
<body bgcolor="#ffffff" link="#0000ff" vlink="#800080">
<h2>Regular Expression Performance Comparison</h2>
<p>
The following tables provide comparisons between the following regular
expression libraries:</p>
<p><a href="http://research.microsoft.com/projects/greta">GRETA</a>.</p>
<p><a href="http://www.boost.org/">The Boost regex library</a>.</p>
<p><a href="http://arglist.com/regex/">Henry Spencer's regular expression library</a>
- this is provided for comparison as a typical non-backtracking implementation.</p>
<P>Philip Hazel's <A href="http://www.pcre.org">PCRE</A> library.</P>
<H3>Details</H3>
<P>Machine: Intel Pentium 4 2.8GHz PC.</P>
<P>Compiler: Microsoft Visual C++ version 7.1.</P>
<P>C++ Standard Library: Dinkumware standard library version 313.</P>
<P>OS: Win32.</P>
<P>Boost version: 1.31.0.</P>
<P>PCRE version: 3.9.</P>
<P>
As ever care should be taken in interpreting the results, only sensible regular
expressions (rather than pathological cases) are given, most are taken from the
Boost regex examples, or from the <a href="http://www.regxlib.com/">Library of
Regular Expressions</a>. In addition, some variation in the relative
performance of these libraries can be expected on other machines - as memory
access and processor caching effects can be quite large for most finite state
machine algorithms.</P>
<H3>Averages</H3>
<P>The following are the average relative scores for all the tests: the perfect
regular expression library&nbsp;would score 1, in practice any small number
(say less that 4 or 5) is pretty good.</P>
<P><table border="1" cellspacing="1">
<tr>
<td><strong>GRETA</strong></td>
<td><strong>GRETA<BR>
(non-recursive mode)</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td>2.31619</td>
<td>6.14203</td>
<td>2.30668</td>
<td>1.94363</td>
<td>124.752</td>
<td>2.09365</td>
</tr>
</table>
</P>
<h3>Comparison 1: Long Search</h3>
<p>For each of the following regular expressions the time taken to find all
occurrences of the expression within a long English language text was measured
(<a href="ftp://ibiblio.org/pub/docs/books/gutenberg/etext02/mtent12.zip">mtent12.txt</a>
from <a href="http://promo.net/pg/">Project Gutenberg</a>, 19Mb).&nbsp;</p>
<P><table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>GRETA</strong></td>
<td><strong>GRETA<BR>
(non-recursive mode)</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code>Twain</code></td>
<td><font color="#008000">1<BR>
(0.0407s)</font></td>
<td><font color="#008000">1<BR>
(0.0407s)</font></td>
<td>4.18<BR>
(0.17s)</td>
<td>4.18<BR>
(0.17s)</td>
<td>135<BR>
(5.48s)</td>
<td>1.37<BR>
(0.0557s)</td>
</tr>
<tr>
<td><code>Huck[[:alpha:]]+</code></td>
<td><font color="#008000">1.02<BR>
(0.0381s)</font></td>
<td><font color="#008000">1<BR>
(0.0375s)</font></td>
<td>4.53<BR>
(0.17s)</td>
<td>4.54<BR>
(0.17s)</td>
<td>166<BR>
(6.23s)</td>
<td>1.34<BR>
(0.0501s)</td>
</tr>
<tr>
<td><code>[[:alpha:]]+ing</code></td>
<td>4.3<BR>
(4.18s)</td>
<td>9.93<BR>
(9.65s)</td>
<td>1.15<BR>
(1.12s)</td>
<td><font color="#008000">1<BR>
(0.972s)</font></td>
<td>8.15<BR>
(7.92s)</td>
<td>5.85<BR>
(5.69s)</td>
</tr>
<tr>
<td><code>^[^ ]*?Twain</code></td>
<td>6.25<BR>
(1.84s)</td>
<td>20.9<BR>
(6.16s)</td>
<td>1.56<BR>
(0.461s)</td>
<td><font color="#008000">1<BR>
(0.295s)</font></td>
<td>NA</td>
<td>2.58<BR>
(0.761s)</td>
</tr>
<tr>
<td><code>Tom|Sawyer|Huckleberry|Finn</code></td>
<td>6.53<BR>
(0.711s)</td>
<td>11.5<BR>
(1.25s)</td>
<td>2.3<BR>
(0.251s)</td>
<td><font color="#008000">1<BR>
(0.109s)</font></td>
<td>196<BR>
(21.4s)</td>
<td>1.77<BR>
(0.193s)</td>
</tr>
<tr>
<td><code>(Tom|Sawyer|Huckleberry|Finn).{0,30}river|river.{0,30}(Tom|Sawyer|Huckleberry|Finn)</code></td>
<td>3.88<BR>
(0.972s)</td>
<td>6.48<BR>
(1.62s)</td>
<td>1.66<BR>
(0.416s)</td>
<td><font color="#008000">1<BR>
(0.251s)</font></td>
<td>NA</td>
<td>2.48<BR>
(0.62s)</td>
</tr>
</table>
</P>
<h3>Comparison 2: Medium Sized Search</h3>
<p>For each of the following regular expressions the time taken to find all
occurrences of the expression within a medium sized English language text was
measured (the first 50K from mtent12.txt).&nbsp;</p>
<P><table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>GRETA</strong></td>
<td><strong>GRETA<BR>
(non-recursive mode)</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code>Twain</code></td>
<td><font color="#008000">1<BR>
(9.05e-005s)</font></td>
<td><font color="#008000">1.03<BR>
(9.29e-005s)</font></td>
<td>4.92<BR>
(0.000445s)</td>
<td>4.92<BR>
(0.000445s)</td>
<td>43.2<BR>
(0.00391s)</td>
<td>3.18<BR>
(0.000288s)</td>
</tr>
<tr>
<td><code>Huck[[:alpha:]]+</code></td>
<td><font color="#008000">1<BR>
(8.56e-005s)</font></td>
<td><font color="#008000">1<BR>
(8.56e-005s)</font></td>
<td>4.97<BR>
(0.000425s)</td>
<td>4.98<BR>
(0.000426s)</td>
<td>2.8<BR>
(0.000239s)</td>
<td>2.2<BR>
(0.000188s)</td>
</tr>
<tr>
<td><code>[[:alpha:]]+ing</code></td>
<td>5.29<BR>
(0.011s)</td>
<td>11.8<BR>
(0.0244s)</td>
<td>1.19<BR>
(0.00246s)</td>
<td><font color="#008000">1<BR>
(0.00207s)</font></td>
<td>8.77<BR>
(0.0182s)</td>
<td>6.88<BR>
(0.0142s)</td>
</tr>
<tr>
<td><code>^[^ ]*?Twain</code></td>
<td>5.98<BR>
(0.00462s)</td>
<td>20.2<BR>
(0.0156s)</td>
<td>1.54<BR>
(0.00119s)</td>
<td><font color="#008000">1<BR>
(0.000772s)</font></td>
<td>NA</td>
<td>2.53<BR>
(0.00195s)</td>
</tr>
<tr>
<td><code>Tom|Sawyer|Huckleberry|Finn</code></td>
<td>3.42<BR>
(0.00207s)</td>
<td>6.31<BR>
(0.00383s)</td>
<td>1.71<BR>
(0.00104s)</td>
<td><font color="#008000">1<BR>
(0.000606s)</font></td>
<td>81.5<BR>
(0.0494s)</td>
<td>1.96<BR>
(0.00119s)</td>
</tr>
<tr>
<td><code>(Tom|Sawyer|Huckleberry|Finn).{0,30}river|river.{0,30}(Tom|Sawyer|Huckleberry|Finn)</code></td>
<td>1.97<BR>
(0.00266s)</td>
<td>3.77<BR>
(0.00509s)</td>
<td>1.38<BR>
(0.00186s)</td>
<td><font color="#008000">1<BR>
(0.00135s)</font></td>
<td>297<BR>
(0.401s)</td>
<td>1.77<BR>
(0.00238s)</td>
</tr>
</table>
</P>
<H3>Comparison 3:&nbsp;C++ Code&nbsp;Search</H3>
<P>For each of the following regular expressions the time taken to find all
occurrences of the expression within the C++ source file <A href="../../../boost/crc.hpp">
boost/crc.hpp</A>&nbsp;was measured.&nbsp;</P>
<P><table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>GRETA</strong></td>
<td><strong>GRETA<BR>
(non-recursive mode)</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code>^(template[[:space:]]*&lt;[^;:{]+&gt;[[:space:]]*)?(class|struct)[[:space:]]*(\&lt;\w+\&gt;([
]*\([^)]*\))?[[:space:]]*)*(\&lt;\w*\&gt;)[[:space:]]*(&lt;[^;:{]+&gt;[[:space:]]*)?(\{|:[^;\{()]*\{)</code></td>
<td>6.67<BR>
(0.00147s)</td>
<td>36.9<BR>
(0.00813s)</td>
<td><font color="#008000">1.03<BR>
(0.000227s)</font></td>
<td><font color="#008000">1<BR>
(0.00022s)</font></td>
<td>557<BR>
(0.123s)</td>
<td>2.57<BR>
(0.000566s)</td>
</tr>
<tr>
<td><code>(^[
]*#(?:[^\\\n]|\\[^\n_[:punct:][:alnum:]]*[\n[:punct:][:word:]])*)|(//[^\n]*|/\*.*?\*/)|\&lt;([+-]?(?:(?:0x[[:xdigit:]]+)|(?:(?:[[:digit:]]*\.)?[[:digit:]]+(?:[eE][+-]?[[:digit:]]+)?))u?(?:(?:int(?:8|16|32|64))|L)?)\&gt;|('(?:[^\\']|\\.)*'|"(?:[^\\"]|\\.)*")|\&lt;(__asm|__cdecl|__declspec|__export|__far16|__fastcall|__fortran|__import|__pascal|__rtti|__stdcall|_asm|_cdecl|__except|_export|_far16|_fastcall|__finally|_fortran|_import|_pascal|_stdcall|__thread|__try|asm|auto|bool|break|case|catch|cdecl|char|class|const|const_cast|continue|default|delete|do|double|dynamic_cast|else|enum|explicit|extern|false|float|for|friend|goto|if|inline|int|long|mutable|namespace|new|operator|pascal|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_cast|struct|switch|template|this|throw|true|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\&gt;</code></td>
<td><font color="#008000">1<BR>
(0.00555s)</font></td>
<td>3.32<BR>
(0.0185s)</td>
<td>2.53<BR>
(0.0141s)</td>
<td>1.94<BR>
(0.0108s)</td>
<td>NA</td>
<td>3.38<BR>
(0.0188s)</td>
</tr>
<tr>
<td><code>^[ ]*#[ ]*include[ ]+("[^"]+"|&lt;[^&gt;]+&gt;)</code></td>
<td>4.77<BR>
(0.00156s)</td>
<td>24.8<BR>
(0.00814s)</td>
<td>1.13<BR>
(0.000372s)</td>
<td><font color="#008000">1<BR>
(0.000328s)</font></td>
<td>120<BR>
(0.0394s)</td>
<td>1.58<BR>
(0.000518s)</td>
</tr>
<tr>
<td><code>^[ ]*#[ ]*include[ ]+("boost/[^"]+"|&lt;boost/[^&gt;]+&gt;)</code></td>
<td>4.72<BR>
(0.00154s)</td>
<td>24.8<BR>
(0.00813s)</td>
<td>1.12<BR>
(0.000367s)</td>
<td><font color="#008000">1<BR>
(0.000328s)</font></td>
<td>143<BR>
(0.0469s)</td>
<td>1.58<BR>
(0.000518s)</td>
</tr>
</table>
</P>
<H3>
<H3>Comparison 4: HTML Document Search</H3>
</H3>
<P>For each of the following regular expressions the time taken to find all
occurrences of the expression within the html file <A href="../../libraries.htm">libs/libraries.htm</A>
was measured.&nbsp;</P>
<P><table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>GRETA</strong></td>
<td><strong>GRETA<BR>
(non-recursive mode)</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code>beman|john|dave</code></td>
<td>4.07<BR>
(0.00111s)</td>
<td>7.14<BR>
(0.00195s)</td>
<td>1.75<BR>
(0.000479s)</td>
<td><font color="#008000">1<BR>
(0.000273s)</font></td>
<td>54.3<BR>
(0.0149s)</td>
<td>1.83<BR>
(0.000499s)</td>
</tr>
<tr>
<td><code>&lt;p&gt;.*?&lt;/p&gt;</code></td>
<td><font color="#008000">1<BR>
(6.59e-005s)</font></td>
<td><font color="#008000">1.04<BR>
(6.84e-005s)</font></td>
<td>4.15<BR>
(0.000273s)</td>
<td>4.23<BR>
(0.000279s)</td>
<td>NA</td>
<td>4.23<BR>
(0.000279s)</td>
</tr>
<tr>
<td><code>&lt;a[^&gt;]+href=("[^"]*"|[^[:space:]]+)[^&gt;]*&gt;</code></td>
<td>1.39<BR>
(0.000626s)</td>
<td>1.83<BR>
(0.000821s)</td>
<td>1.41<BR>
(0.000636s)</td>
<td><font color="#008000">1<BR>
(0.00045s)</font></td>
<td>351<BR>
(0.158s)</td>
<td>1.13<BR>
(0.000509s)</td>
</tr>
<tr>
<td><code>&lt;h[12345678][^&gt;]*&gt;.*?&lt;/h[12345678]&gt;</code></td>
<td><font color="#008000">1<BR>
(0.000142s)</font></td>
<td>1.21<BR>
(0.000171s)</td>
<td>2.62<BR>
(0.000372s)</td>
<td>1.48<BR>
(0.00021s)</td>
<td>NA</td>
<td>1.73<BR>
(0.000245s)</td>
</tr>
<tr>
<td><code>&lt;img[^&gt;]+src=("[^"]*"|[^[:space:]]+)[^&gt;]*&gt;</code></td>
<td><font color="#008000">1<BR>
(5.38e-005s)</font></td>
<td><font color="#008000">1.05<BR>
(5.63e-005s)</font></td>
<td>5<BR>
(0.000269s)</td>
<td>5.18<BR>
(0.000278s)</td>
<td>604<BR>
(0.0325s)</td>
<td>4.05<BR>
(0.000218s)</td>
</tr>
<tr>
<td><code>&lt;font[^&gt;]+face=("[^"]*"|[^[:space:]]+)[^&gt;]*&gt;.*?&lt;/font&gt;</code></td>
<td><font color="#008000">1<BR>
(6.05e-005s)</font></td>
<td><font color="#008000">1.09<BR>
(6.59e-005s)</font></td>
<td>4.45<BR>
(0.000269s)</td>
<td>4.69<BR>
(0.000284s)</td>
<td>NA</td>
<td>3.64<BR>
(0.00022s)</td>
</tr>
</table>
</P>
<H3>Comparison 3: Simple Matches</H3>
<p>
For each of the following regular expressions the time taken to match against
the text indicated was measured.&nbsp;</p>
<P><table border="1" cellspacing="1">
<tr>
<td><strong>Expression</strong></td>
<td><strong>Text</strong></td>
<td><strong>GRETA</strong></td>
<td><strong>GRETA<BR>
(non-recursive mode)</strong></td>
<td><strong>Boost</strong></td>
<td><strong>Boost + C++ locale</strong></td>
<td><strong>POSIX</strong></td>
<td><strong>PCRE</strong></td>
</tr>
<tr>
<td><code>abc</code></td>
<td>abc</td>
<td>1.32<BR>
(2.24e-007s)</td>
<td>1.86<BR>
(3.15e-007s)</td>
<td>1.25<BR>
(2.12e-007s)</td>
<td>1.24<BR>
(2.1e-007s)</td>
<td>2.98<BR>
(5.05e-007s)</td>
<td><font color="#008000">1<BR>
(1.7e-007s)</font></td>
</tr>
<tr>
<td><code>^([0-9]+)(\-| |$)(.*)$</code></td>
<td>100- this is a line of ftp response which contains a message string</td>
<td>1.32<BR>
(5.91e-007s)</td>
<td>1.96<BR>
(8.78e-007s)</td>
<td>2.68<BR>
(1.2e-006s)</td>
<td>1.53<BR>
(6.88e-007s)</td>
<td>332<BR>
(0.000149s)</td>
<td><font color="#008000">1<BR>
(4.49e-007s)</font></td>
</tr>
<tr>
<td><code>([[:digit:]]{4}[- ]){3}[[:digit:]]{3,4}</code></td>
<td>1234-5678-1234-456</td>
<td>1.44<BR>
(7.16e-007s)</td>
<td>2.04<BR>
(1.01e-006s)</td>
<td>3.35<BR>
(1.66e-006s)</td>
<td>2.15<BR>
(1.07e-006s)</td>
<td>31.4<BR>
(1.56e-005s)</td>
<td><font color="#008000">1<BR>
(4.96e-007s)</font></td>
</tr>
<tr>
<td><code>^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$</code></td>
<td>john@johnmaddock.co.uk</td>
<td><font color="#008000">1<BR>
(1.18e-006s)</font></td>
<td>1.42<BR>
(1.68e-006s)</td>
<td>2.06<BR>
(2.44e-006s)</td>
<td>1.35<BR>
(1.6e-006s)</td>
<td>165<BR>
(0.000196s)</td>
<td><font color="#008000">1.06<BR>
(1.26e-006s)</font></td>
</tr>
<tr>
<td><code>^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$</code></td>
<td>foo12@foo.edu</td>
<td><font color="#008000">1<BR>
(1.09e-006s)</font></td>
<td>1.44<BR>
(1.57e-006s)</td>
<td>2.21<BR>
(2.4e-006s)</td>
<td>1.41<BR>
(1.53e-006s)</td>
<td>108<BR>
(0.000117s)</td>
<td><font color="#008000">1.04<BR>
(1.13e-006s)</font></td>
</tr>
<tr>
<td><code>^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$</code></td>
<td>bob.smith@foo.tv</td>
<td><font color="#008000">1<BR>
(1.07e-006s)</font></td>
<td>1.43<BR>
(1.53e-006s)</td>
<td>2.21<BR>
(2.37e-006s)</td>
<td>1.45<BR>
(1.55e-006s)</td>
<td>123<BR>
(0.000132s)</td>
<td><font color="#008000">1.05<BR>
(1.13e-006s)</font></td>
</tr>
<tr>
<td><code>^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$</code></td>
<td>EH10 2QQ</td>
<td><font color="#008000">1<BR>
(3.19e-007s)</font></td>
<td>1.67<BR>
(5.34e-007s)</td>
<td>1.58<BR>
(5.05e-007s)</td>
<td>1.4<BR>
(4.49e-007s)</td>
<td>10.4<BR>
(3.32e-006s)</td>
<td>1.15<BR>
(3.68e-007s)</td>
</tr>
<tr>
<td><code>^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$</code></td>
<td>G1 1AA</td>
<td><font color="#008000">1<BR>
(3.29e-007s)</font></td>
<td>1.65<BR>
(5.44e-007s)</td>
<td>1.51<BR>
(4.96e-007s)</td>
<td>1.36<BR>
(4.49e-007s)</td>
<td>8.46<BR>
(2.79e-006s)</td>
<td>1.1<BR>
(3.63e-007s)</td>
</tr>
<tr>
<td><code>^[a-zA-Z]{1,2}[0-9][0-9A-Za-z]{0,1} {0,1}[0-9][A-Za-z]{2}$</code></td>
<td>SW1 1ZZ</td>
<td><font color="#008000">1<BR>
(3.25e-007s)</font></td>
<td>1.64<BR>
(5.34e-007s)</td>
<td>1.56<BR>
(5.05e-007s)</td>
<td>1.38<BR>
(4.49e-007s)</td>
<td>9.29<BR>
(3.02e-006s)</td>
<td>1.13<BR>
(3.68e-007s)</td>
</tr>
<tr>
<td><code>^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$</code></td>
<td>4/1/2001</td>
<td><font color="#008000">1<BR>
(3.44e-007s)</font></td>
<td>1.55<BR>
(5.34e-007s)</td>
<td>2.36<BR>
(8.12e-007s)</td>
<td>2.2<BR>
(7.55e-007s)</td>
<td>19.6<BR>
(6.72e-006s)</td>
<td>1.81<BR>
(6.21e-007s)</td>
</tr>
<tr>
<td><code>^[[:digit:]]{1,2}/[[:digit:]]{1,2}/[[:digit:]]{4}$</code></td>
<td>12/12/2001</td>
<td><font color="#008000">1.05<BR>
(6.59e-007s)</font></td>
<td>1.66<BR>
(1.05e-006s)</td>
<td>1.44<BR>
(9.07e-007s)</td>
<td>1.23<BR>
(7.73e-007s)</td>
<td>11.6<BR>
(7.34e-006s)</td>
<td><font color="#008000">1<BR>
(6.3e-007s)</font></td>
</tr>
<tr>
<td><code>^[-+]?[[:digit:]]*\.?[[:digit:]]*$</code></td>
<td>123</td>
<td><font color="#008000">1<BR>
(5.72e-007s)</font></td>
<td>1.59<BR>
(9.07e-007s)</td>
<td>1.6<BR>
(9.16e-007s)</td>
<td>1.49<BR>
(8.5e-007s)</td>
<td>6.14<BR>
(3.51e-006s)</td>
<td>1.22<BR>
(6.97e-007s)</td>
</tr>
<tr>
<td><code>^[-+]?[[:digit:]]*\.?[[:digit:]]*$</code></td>
<td>+3.14159</td>
<td><font color="#008000">1<BR>
(6.78e-007s)</font></td>
<td>1.52<BR>
(1.03e-006s)</td>
<td>1.47<BR>
(9.94e-007s)</td>
<td>1.31<BR>
(8.88e-007s)</td>
<td>10.8<BR>
(7.34e-006s)</td>
<td><font color="#008000">1.08<BR>
(7.35e-007s)</font></td>
</tr>
<tr>
<td><code>^[-+]?[[:digit:]]*\.?[[:digit:]]*$</code></td>
<td>-3.14159</td>
<td><font color="#008000">1<BR>
(6.78e-007s)</font></td>
<td>1.52<BR>
(1.03e-006s)</td>
<td>1.46<BR>
(9.92e-007s)</td>
<td>1.32<BR>
(8.98e-007s)</td>
<td>10.5<BR>
(7.11e-006s)</td>
<td>1.11<BR>
(7.54e-007s)</td>
</tr>
</table>
</P>
<hr>
<p>Copyright John Maddock April 2003, all rights reserved.</p>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More