From b5f83136b32ef97c45eeb942b13587a5428a7c86 Mon Sep 17 00:00:00 2001 From: rozmansi Date: Wed, 15 Mar 2023 20:55:55 +0000 Subject: [PATCH] deploy: aa233bd5f9425c1e42bd59f52d22d59fdc2c2ecd --- annotated.html | 119 +- ..._8h_source.html => base64_8hpp_source.html | 429 +- classes.html | 20 +- classstdex_1_1base64__dec-members.html | 2 +- classstdex_1_1base64__dec.html | 6 +- classstdex_1_1base64__enc-members.html | 2 +- classstdex_1_1base64__enc.html | 6 +- classstdex_1_1errno__error-members.html | 2 +- classstdex_1_1errno__error.html | 6 +- classstdex_1_1global__progress-members.html | 2 +- classstdex_1_1global__progress.html | 6 +- classstdex_1_1hex__dec-members.html | 2 +- classstdex_1_1hex__dec.html | 6 +- classstdex_1_1hex__enc-members.html | 2 +- classstdex_1_1hex__enc.html | 6 +- classstdex_1_1idrec_1_1record-members.html | 2 +- classstdex_1_1idrec_1_1record.html | 6 +- classstdex_1_1lazy__progress-members.html | 2 +- classstdex_1_1lazy__progress.html | 6 +- ...dex_1_1parser_1_1basic__angle-members.html | 105 + classstdex_1_1parser_1_1basic__angle.html | 256 + classstdex_1_1parser_1_1basic__angle.png | Bin 0 -> 796 bytes ...x_1_1parser_1_1basic__any__cu-members.html | 97 + classstdex_1_1parser_1_1basic__any__cu.html | 197 + classstdex_1_1parser_1_1basic__any__cu.png | Bin 0 -> 807 bytes ...stdex_1_1parser_1_1basic__bol-members.html | 99 + classstdex_1_1parser_1_1basic__bol.html | 207 + classstdex_1_1parser_1_1basic__bol.png | Bin 0 -> 755 bytes ...ex_1_1parser_1_1basic__branch-members.html | 105 + classstdex_1_1parser_1_1basic__branch.html | 267 + classstdex_1_1parser_1_1basic__branch.png | Bin 0 -> 1975 bytes ...r_1_1basic__chemical__formula-members.html | 103 + ...1_1parser_1_1basic__chemical__formula.html | 251 + ..._1_1parser_1_1basic__chemical__formula.png | Bin 0 -> 853 bytes ...sstdex_1_1parser_1_1basic__cu-members.html | 100 + classstdex_1_1parser_1_1basic__cu.html | 210 + classstdex_1_1parser_1_1basic__cu.png | Bin 0 -> 766 bytes ...x_1_1parser_1_1basic__cu__set-members.html | 102 + classstdex_1_1parser_1_1basic__cu__set.html | 224 + classstdex_1_1parser_1_1basic__cu__set.png | Bin 0 -> 1133 bytes ...tdex_1_1parser_1_1basic__date-members.html | 107 + classstdex_1_1parser_1_1basic__date.html | 280 + classstdex_1_1parser_1_1basic__date.png | Bin 0 -> 779 bytes ...r_1_1basic__dns__domain__char-members.html | 100 + ...1_1parser_1_1basic__dns__domain__char.html | 212 + ..._1_1parser_1_1basic__dns__domain__char.png | Bin 0 -> 861 bytes ...1_1parser_1_1basic__dns__name-members.html | 101 + classstdex_1_1parser_1_1basic__dns__name.html | 214 + classstdex_1_1parser_1_1basic__dns__name.png | Bin 0 -> 817 bytes ...rser_1_1basic__email__address-members.html | 105 + ...ex_1_1parser_1_1basic__email__address.html | 257 + ...dex_1_1parser_1_1basic__email__address.png | Bin 0 -> 867 bytes ..._1_1parser_1_1basic__emoticon-members.html | 103 + classstdex_1_1parser_1_1basic__emoticon.html | 255 + classstdex_1_1parser_1_1basic__emoticon.png | Bin 0 -> 819 bytes ...stdex_1_1parser_1_1basic__eol-members.html | 99 + classstdex_1_1parser_1_1basic__eol.html | 207 + classstdex_1_1parser_1_1basic__eol.png | Bin 0 -> 760 bytes ..._1_1parser_1_1basic__fraction-members.html | 101 + classstdex_1_1parser_1_1basic__fraction.html | 244 + classstdex_1_1parser_1_1basic__fraction.png | Bin 0 -> 813 bytes ...x_1_1parser_1_1basic__integer-members.html | 99 + classstdex_1_1parser_1_1basic__integer.html | 189 + classstdex_1_1parser_1_1basic__integer.png | Bin 0 -> 2389 bytes ...1_1parser_1_1basic__integer10-members.html | 110 + classstdex_1_1parser_1_1basic__integer10.html | 246 + classstdex_1_1parser_1_1basic__integer10.png | Bin 0 -> 1228 bytes ...1parser_1_1basic__integer10ts-members.html | 104 + ...stdex_1_1parser_1_1basic__integer10ts.html | 262 + ...sstdex_1_1parser_1_1basic__integer10ts.png | Bin 0 -> 1245 bytes ...1_1parser_1_1basic__integer16-members.html | 116 + classstdex_1_1parser_1_1basic__integer16.html | 264 + classstdex_1_1parser_1_1basic__integer16.png | Bin 0 -> 1238 bytes ...arser_1_1basic__ipv4__address-members.html | 111 + ...dex_1_1parser_1_1basic__ipv4__address.html | 277 + ...tdex_1_1parser_1_1basic__ipv4__address.png | Bin 0 -> 854 bytes ...arser_1_1basic__ipv6__address-members.html | 119 + ...dex_1_1parser_1_1basic__ipv6__address.html | 302 + ...tdex_1_1parser_1_1basic__ipv6__address.png | Bin 0 -> 864 bytes ...1basic__ipv6__scope__id__char-members.html | 98 + ...arser_1_1basic__ipv6__scope__id__char.html | 200 + ...parser_1_1basic__ipv6__scope__id__char.png | Bin 0 -> 980 bytes ..._1parser_1_1basic__iterations-members.html | 102 + ...sstdex_1_1parser_1_1basic__iterations.html | 220 + classstdex_1_1parser_1_1basic__iterations.png | Bin 0 -> 823 bytes ...parser_1_1basic__json__string-members.html | 110 + ...tdex_1_1parser_1_1basic__json__string.html | 272 + ...stdex_1_1parser_1_1basic__json__string.png | Bin 0 -> 838 bytes ...rser_1_1basic__mixed__numeral-members.html | 104 + ...ex_1_1parser_1_1basic__mixed__numeral.html | 259 + ...dex_1_1parser_1_1basic__mixed__numeral.png | Bin 0 -> 865 bytes ...r_1_1basic__monetary__numeral-members.html | 105 + ...1_1parser_1_1basic__monetary__numeral.html | 263 + ..._1_1parser_1_1basic__monetary__numeral.png | Bin 0 -> 892 bytes ...tdex_1_1parser_1_1basic__noop-members.html | 97 + classstdex_1_1parser_1_1basic__noop.html | 197 + classstdex_1_1parser_1_1basic__noop.png | Bin 0 -> 771 bytes ...1parser_1_1basic__permutation-members.html | 104 + ...stdex_1_1parser_1_1basic__permutation.html | 228 + ...sstdex_1_1parser_1_1basic__permutation.png | Bin 0 -> 1223 bytes ...arser_1_1basic__phone__number-members.html | 105 + ...dex_1_1parser_1_1basic__phone__number.html | 258 + ...tdex_1_1parser_1_1basic__phone__number.png | Bin 0 -> 858 bytes ...1_1parser_1_1basic__punct__cu-members.html | 99 + classstdex_1_1parser_1_1basic__punct__cu.html | 207 + classstdex_1_1parser_1_1basic__punct__cu.png | Bin 0 -> 815 bytes ...rser_1_1basic__roman__numeral-members.html | 109 + ...ex_1_1parser_1_1basic__roman__numeral.html | 243 + ...dex_1_1parser_1_1basic__roman__numeral.png | Bin 0 -> 1247 bytes ...1_1basic__scientific__numeral-members.html | 109 + ...1parser_1_1basic__scientific__numeral.html | 279 + ..._1parser_1_1basic__scientific__numeral.png | Bin 0 -> 864 bytes ...dex_1_1parser_1_1basic__score-members.html | 102 + classstdex_1_1parser_1_1basic__score.html | 248 + classstdex_1_1parser_1_1basic__score.png | Bin 0 -> 780 bytes ..._1_1parser_1_1basic__sequence-members.html | 103 + classstdex_1_1parser_1_1basic__sequence.html | 221 + classstdex_1_1parser_1_1basic__sequence.png | Bin 0 -> 1190 bytes ...stdex_1_1parser_1_1basic__set-members.html | 100 + classstdex_1_1parser_1_1basic__set.html | 235 + classstdex_1_1parser_1_1basic__set.png | Bin 0 -> 1140 bytes ...ser_1_1basic__signed__numeral-members.html | 102 + ...x_1_1parser_1_1basic__signed__numeral.html | 251 + ...ex_1_1parser_1_1basic__signed__numeral.png | Bin 0 -> 874 bytes ...1_1parser_1_1basic__space__cu-members.html | 99 + classstdex_1_1parser_1_1basic__space__cu.html | 207 + classstdex_1_1parser_1_1basic__space__cu.png | Bin 0 -> 814 bytes ..._1basic__space__or__punct__cu-members.html | 99 + ...parser_1_1basic__space__or__punct__cu.html | 207 + ...1parser_1_1basic__space__or__punct__cu.png | Bin 0 -> 952 bytes ...ex_1_1parser_1_1basic__string-members.html | 99 + classstdex_1_1parser_1_1basic__string.html | 207 + classstdex_1_1parser_1_1basic__string.png | Bin 0 -> 791 bytes ...rser_1_1basic__string__branch-members.html | 110 + ...ex_1_1parser_1_1basic__string__branch.html | 199 + ...dex_1_1parser_1_1basic__string__branch.png | Bin 0 -> 1971 bytes ...ex_1_1parser_1_1basic__tester-members.html | 97 + classstdex_1_1parser_1_1basic__tester.html | 189 + classstdex_1_1parser_1_1basic__tester.png | Bin 0 -> 29947 bytes ...tdex_1_1parser_1_1basic__time-members.html | 104 + classstdex_1_1parser_1_1basic__time.html | 254 + classstdex_1_1parser_1_1basic__time.png | Bin 0 -> 782 bytes ...stdex_1_1parser_1_1basic__url-members.html | 114 + classstdex_1_1parser_1_1basic__url.html | 284 + classstdex_1_1parser_1_1basic__url.png | Bin 0 -> 767 bytes ...1_1basic__url__password__char-members.html | 98 + ...1parser_1_1basic__url__password__char.html | 200 + ..._1parser_1_1basic__url__password__char.png | Bin 0 -> 921 bytes ...1_1parser_1_1basic__url__path-members.html | 104 + classstdex_1_1parser_1_1basic__url__path.html | 254 + classstdex_1_1parser_1_1basic__url__path.png | Bin 0 -> 812 bytes ...ser_1_1basic__url__path__char-members.html | 98 + ...x_1_1parser_1_1basic__url__path__char.html | 200 + ...ex_1_1parser_1_1basic__url__path__char.png | Bin 0 -> 857 bytes ...1_1basic__url__username__char-members.html | 98 + ...1parser_1_1basic__url__username__char.html | 200 + ..._1parser_1_1basic__url__username__char.png | Bin 0 -> 916 bytes ...tdex_1_1parser_1_1http__agent-members.html | 94 + classstdex_1_1parser_1_1http__agent.html | 232 + classstdex_1_1parser_1_1http__agent.png | Bin 0 -> 794 bytes ..._1_1parser_1_1http__any__type-members.html | 91 + classstdex_1_1parser_1_1http__any__type.html | 193 + classstdex_1_1parser_1_1http__any__type.png | Bin 0 -> 817 bytes ...x_1_1parser_1_1http__asterisk-members.html | 91 + classstdex_1_1parser_1_1http__asterisk.html | 193 + classstdex_1_1parser_1_1http__asterisk.png | Bin 0 -> 803 bytes ...dex_1_1parser_1_1http__cookie-members.html | 96 + classstdex_1_1parser_1_1http__cookie.html | 242 + classstdex_1_1parser_1_1http__cookie.png | Bin 0 -> 788 bytes ...er_1_1http__cookie__parameter-members.html | 95 + ..._1_1parser_1_1http__cookie__parameter.html | 236 + ...x_1_1parser_1_1http__cookie__parameter.png | Bin 0 -> 838 bytes ...dex_1_1parser_1_1http__header-members.html | 95 + classstdex_1_1parser_1_1http__header.html | 236 + classstdex_1_1parser_1_1http__header.png | Bin 0 -> 800 bytes ...r_1_1http__header__collection-members.html | 90 + ...1_1parser_1_1http__header__collection.html | 113 + ..._1_1parser_1_1http__header__collection.png | Bin 0 -> 639 bytes ...x_1_1parser_1_1http__language-members.html | 93 + classstdex_1_1parser_1_1http__language.html | 229 + classstdex_1_1parser_1_1http__language.png | Bin 0 -> 811 bytes ..._1parser_1_1http__line__break-members.html | 91 + ...sstdex_1_1parser_1_1http__line__break.html | 193 + classstdex_1_1parser_1_1http__line__break.png | Bin 0 -> 820 bytes ...1parser_1_1http__media__range-members.html | 95 + ...stdex_1_1parser_1_1http__media__range.html | 237 + ...sstdex_1_1parser_1_1http__media__range.png | Bin 0 -> 1227 bytes ..._1parser_1_1http__media__type-members.html | 96 + ...sstdex_1_1parser_1_1http__media__type.html | 245 + classstdex_1_1parser_1_1http__media__type.png | Bin 0 -> 1224 bytes ..._1_1parser_1_1http__parameter-members.html | 95 + classstdex_1_1parser_1_1http__parameter.html | 238 + classstdex_1_1parser_1_1http__parameter.png | Bin 0 -> 813 bytes ...x_1_1parser_1_1http__protocol-members.html | 97 + classstdex_1_1parser_1_1http__protocol.html | 242 + classstdex_1_1parser_1_1http__protocol.png | Bin 0 -> 771 bytes ...arser_1_1http__quoted__string-members.html | 94 + ...dex_1_1parser_1_1http__quoted__string.html | 234 + ...tdex_1_1parser_1_1http__quoted__string.png | Bin 0 -> 839 bytes ...ex_1_1parser_1_1http__request-members.html | 96 + classstdex_1_1parser_1_1http__request.html | 239 + classstdex_1_1parser_1_1http__request.png | Bin 0 -> 799 bytes ...tdex_1_1parser_1_1http__space-members.html | 92 + classstdex_1_1parser_1_1http__space.html | 200 + classstdex_1_1parser_1_1http__space.png | Bin 0 -> 780 bytes ...1_1parser_1_1http__text__char-members.html | 92 + classstdex_1_1parser_1_1http__text__char.html | 200 + classstdex_1_1parser_1_1http__text__char.png | Bin 0 -> 812 bytes ...tdex_1_1parser_1_1http__token-members.html | 91 + classstdex_1_1parser_1_1http__token.html | 193 + classstdex_1_1parser_1_1http__token.png | Bin 0 -> 783 bytes ...sstdex_1_1parser_1_1http__url-members.html | 96 + classstdex_1_1parser_1_1http__url.html | 238 + classstdex_1_1parser_1_1http__url.png | Bin 0 -> 754 bytes ...arser_1_1http__url__parameter-members.html | 94 + ...dex_1_1parser_1_1http__url__parameter.html | 232 + ...tdex_1_1parser_1_1http__url__parameter.png | Bin 0 -> 817 bytes ..._1_1parser_1_1http__url__path-members.html | 93 + classstdex_1_1parser_1_1http__url__path.html | 230 + classstdex_1_1parser_1_1http__url__path.png | Bin 0 -> 795 bytes ...r_1_1http__url__path__segment-members.html | 91 + ...1_1parser_1_1http__url__path__segment.html | 193 + ..._1_1parser_1_1http__url__path__segment.png | Bin 0 -> 842 bytes ..._1_1parser_1_1http__url__port-members.html | 94 + classstdex_1_1parser_1_1http__url__port.html | 232 + classstdex_1_1parser_1_1http__url__port.png | Bin 0 -> 784 bytes ..._1parser_1_1http__url__server-members.html | 91 + ...sstdex_1_1parser_1_1http__url__server.html | 193 + classstdex_1_1parser_1_1http__url__server.png | Bin 0 -> 809 bytes ...tdex_1_1parser_1_1http__value-members.html | 94 + classstdex_1_1parser_1_1http__value.html | 234 + classstdex_1_1parser_1_1http__value.png | Bin 0 -> 784 bytes ...dex_1_1parser_1_1http__weight-members.html | 94 + classstdex_1_1parser_1_1http__weight.html | 233 + classstdex_1_1parser_1_1http__weight.png | Bin 0 -> 807 bytes ...rser_1_1http__weighted__value-members.html | 95 + ...ex_1_1parser_1_1http__weighted__value.html | 240 + ...dex_1_1parser_1_1http__weighted__value.png | Bin 0 -> 1120 bytes ...ex_1_1parser_1_1sgml__any__cp-members.html | 98 + classstdex_1_1parser_1_1sgml__any__cp.html | 198 + classstdex_1_1parser_1_1sgml__any__cp.png | Bin 0 -> 1193 bytes classstdex_1_1parser_1_1sgml__cp-members.html | 94 + classstdex_1_1parser_1_1sgml__cp.html | 206 + classstdex_1_1parser_1_1sgml__cp.png | Bin 0 -> 780 bytes ...ex_1_1parser_1_1sgml__cp__set-members.html | 99 + classstdex_1_1parser_1_1sgml__cp__set.html | 222 + classstdex_1_1parser_1_1sgml__cp__set.png | Bin 0 -> 1169 bytes ...er_1_1sgml__dns__domain__char-members.html | 100 + ..._1_1parser_1_1sgml__dns__domain__char.html | 214 + ...x_1_1parser_1_1sgml__dns__domain__char.png | Bin 0 -> 1519 bytes ..._1sgml__ipv6__scope__id__char-members.html | 92 + ...parser_1_1sgml__ipv6__scope__id__char.html | 196 + ...1parser_1_1sgml__ipv6__scope__id__char.png | Bin 0 -> 892 bytes ..._1_1parser_1_1sgml__punct__cp-members.html | 98 + classstdex_1_1parser_1_1sgml__punct__cp.html | 206 + classstdex_1_1parser_1_1sgml__punct__cp.png | Bin 0 -> 1219 bytes ..._1_1parser_1_1sgml__space__cp-members.html | 99 + classstdex_1_1parser_1_1sgml__space__cp.html | 209 + classstdex_1_1parser_1_1sgml__space__cp.png | Bin 0 -> 1213 bytes ...1_1sgml__space__or__punct__cp-members.html | 98 + ...1parser_1_1sgml__space__or__punct__cp.html | 206 + ..._1parser_1_1sgml__space__or__punct__cp.png | Bin 0 -> 1533 bytes ...dex_1_1parser_1_1sgml__string-members.html | 93 + classstdex_1_1parser_1_1sgml__string.html | 203 + classstdex_1_1parser_1_1sgml__string.png | Bin 0 -> 810 bytes ..._1_1sgml__url__password__char-members.html | 99 + ..._1parser_1_1sgml__url__password__char.html | 205 + ...1_1parser_1_1sgml__url__password__char.png | Bin 0 -> 1545 bytes ...rser_1_1sgml__url__path__char-members.html | 99 + ...ex_1_1parser_1_1sgml__url__path__char.html | 205 + ...dex_1_1parser_1_1sgml__url__path__char.png | Bin 0 -> 1292 bytes ..._1_1sgml__url__username__char-members.html | 99 + ..._1parser_1_1sgml__url__username__char.html | 205 + ...1_1parser_1_1sgml__url__username__char.png | Bin 0 -> 1530 bytes ...1parser_1_1tester__collection-members.html | 101 + ...stdex_1_1parser_1_1tester__collection.html | 198 + ...sstdex_1_1parser_1_1tester__collection.png | Bin 0 -> 3335 bytes classstdex_1_1progress-members.html | 2 +- classstdex_1_1progress.html | 6 +- classstdex_1_1user__cancelled-members.html | 2 +- classstdex_1_1user__cancelled.html | 6 +- classstdex_1_1vector__queue-members.html | 2 +- classstdex_1_1vector__queue.html | 6 +- dir_4be4f7b278e009bf0f1906cf31fb73bd.html | 92 + dir_d44c64559bbebec7f509842c48db8b23.html | 2 +- dir_fca3c47b2ea228727bd6729832f89576.html | 32 +- ...o_8h_source.html => errno_8hpp_source.html | 22 +- ..._source.html => exception_8hpp_source.html | 12 +- files.html | 29 +- functions.html | 43 +- functions_func.html | 4 +- functions_type.html | 2 +- functions_vars.html | 95 +- hex_8h_source.html => hex_8hpp_source.html | 233 +- hierarchy.html | 130 +- ...c_8h_source.html => idrec_8hpp_source.html | 26 +- index.html | 2 +- ...h_source.html => interval_8hpp_source.html | 31 +- mapping_8hpp_source.html | 115 + memory_8hpp_source.html | 125 + menudata.js | 16 +- parser_8hpp_source.html | 6500 +++++++++++++++++ pch_8h_source.html | 111 + ...h_source.html => progress_8hpp_source.html | 56 +- sal_8h_source.html => sal_8hpp_source.html | 6 +- search/all_0.js | 8 +- search/all_1.js | 58 +- search/all_10.js | 4 +- search/all_12.js | 6 +- search/all_2.js | 7 +- search/all_3.js | 9 +- search/all_4.js | 14 +- search/all_5.js | 3 +- search/all_7.js | 35 +- search/all_8.js | 4 +- search/all_a.js | 17 +- search/all_b.js | 10 +- search/all_d.js | 15 +- search/all_f.js | 34 +- search/classes_0.js | 58 +- search/classes_3.js | 30 +- search/classes_4.js | 3 +- search/classes_6.js | 2 +- search/classes_7.js | 3 +- search/classes_8.js | 2 +- search/classes_9.js | 2 +- search/classes_a.js | 15 + search/classes_b.js | 4 + search/classes_c.js | 4 + search/classes_d.js | 4 + search/functions_4.js | 2 +- search/searchdata.js | 4 +- search/variables_0.js | 3 +- search/variables_1.js | 2 +- search/variables_2.js | 4 +- search/variables_3.js | 9 +- search/variables_4.js | 6 +- search/variables_5.js | 2 +- search/variables_6.js | 4 + search/variables_7.js | 5 + search/variables_8.js | 14 + search/variables_9.js | 9 + search/variables_a.js | 6 + search/variables_b.js | 8 + search/variables_c.js | 4 + search/variables_d.js | 5 + sgml_8hpp_source.html | 370 + sgml__unicode_8hpp_source.html | 3176 ++++++++ string_8h_source.html | 132 - string_8hpp_source.html | 553 ++ structstdex_1_1interval-members.html | 17 +- structstdex_1_1interval.html | 39 +- structstdex_1_1mapping-members.html | 96 + structstdex_1_1mapping.html | 130 + structstdex_1_1no__delete-members.html | 92 + structstdex_1_1no__delete.html | 111 + ..._1_1no__delete_3_01_t_0f_0e_4-members.html | 92 + structstdex_1_1no__delete_3_01_t_0f_0e_4.html | 112 + ...1parser_1_1http__factor__more-members.html | 90 + ...stdex_1_1parser_1_1http__factor__more.html | 99 + ...rce.html => vector__queue_8hpp_source.html | 88 +- 361 files changed, 41155 insertions(+), 766 deletions(-) rename base64_8h_source.html => base64_8hpp_source.html (76%) create mode 100644 classstdex_1_1parser_1_1basic__angle-members.html create mode 100644 classstdex_1_1parser_1_1basic__angle.html create mode 100644 classstdex_1_1parser_1_1basic__angle.png create mode 100644 classstdex_1_1parser_1_1basic__any__cu-members.html create mode 100644 classstdex_1_1parser_1_1basic__any__cu.html create mode 100644 classstdex_1_1parser_1_1basic__any__cu.png create mode 100644 classstdex_1_1parser_1_1basic__bol-members.html create mode 100644 classstdex_1_1parser_1_1basic__bol.html create mode 100644 classstdex_1_1parser_1_1basic__bol.png create mode 100644 classstdex_1_1parser_1_1basic__branch-members.html create mode 100644 classstdex_1_1parser_1_1basic__branch.html create mode 100644 classstdex_1_1parser_1_1basic__branch.png create mode 100644 classstdex_1_1parser_1_1basic__chemical__formula-members.html create mode 100644 classstdex_1_1parser_1_1basic__chemical__formula.html create mode 100644 classstdex_1_1parser_1_1basic__chemical__formula.png create mode 100644 classstdex_1_1parser_1_1basic__cu-members.html create mode 100644 classstdex_1_1parser_1_1basic__cu.html create mode 100644 classstdex_1_1parser_1_1basic__cu.png create mode 100644 classstdex_1_1parser_1_1basic__cu__set-members.html create mode 100644 classstdex_1_1parser_1_1basic__cu__set.html create mode 100644 classstdex_1_1parser_1_1basic__cu__set.png create mode 100644 classstdex_1_1parser_1_1basic__date-members.html create mode 100644 classstdex_1_1parser_1_1basic__date.html create mode 100644 classstdex_1_1parser_1_1basic__date.png create mode 100644 classstdex_1_1parser_1_1basic__dns__domain__char-members.html create mode 100644 classstdex_1_1parser_1_1basic__dns__domain__char.html create mode 100644 classstdex_1_1parser_1_1basic__dns__domain__char.png create mode 100644 classstdex_1_1parser_1_1basic__dns__name-members.html create mode 100644 classstdex_1_1parser_1_1basic__dns__name.html create mode 100644 classstdex_1_1parser_1_1basic__dns__name.png create mode 100644 classstdex_1_1parser_1_1basic__email__address-members.html create mode 100644 classstdex_1_1parser_1_1basic__email__address.html create mode 100644 classstdex_1_1parser_1_1basic__email__address.png create mode 100644 classstdex_1_1parser_1_1basic__emoticon-members.html create mode 100644 classstdex_1_1parser_1_1basic__emoticon.html create mode 100644 classstdex_1_1parser_1_1basic__emoticon.png create mode 100644 classstdex_1_1parser_1_1basic__eol-members.html create mode 100644 classstdex_1_1parser_1_1basic__eol.html create mode 100644 classstdex_1_1parser_1_1basic__eol.png create mode 100644 classstdex_1_1parser_1_1basic__fraction-members.html create mode 100644 classstdex_1_1parser_1_1basic__fraction.html create mode 100644 classstdex_1_1parser_1_1basic__fraction.png create mode 100644 classstdex_1_1parser_1_1basic__integer-members.html create mode 100644 classstdex_1_1parser_1_1basic__integer.html create mode 100644 classstdex_1_1parser_1_1basic__integer.png create mode 100644 classstdex_1_1parser_1_1basic__integer10-members.html create mode 100644 classstdex_1_1parser_1_1basic__integer10.html create mode 100644 classstdex_1_1parser_1_1basic__integer10.png create mode 100644 classstdex_1_1parser_1_1basic__integer10ts-members.html create mode 100644 classstdex_1_1parser_1_1basic__integer10ts.html create mode 100644 classstdex_1_1parser_1_1basic__integer10ts.png create mode 100644 classstdex_1_1parser_1_1basic__integer16-members.html create mode 100644 classstdex_1_1parser_1_1basic__integer16.html create mode 100644 classstdex_1_1parser_1_1basic__integer16.png create mode 100644 classstdex_1_1parser_1_1basic__ipv4__address-members.html create mode 100644 classstdex_1_1parser_1_1basic__ipv4__address.html create mode 100644 classstdex_1_1parser_1_1basic__ipv4__address.png create mode 100644 classstdex_1_1parser_1_1basic__ipv6__address-members.html create mode 100644 classstdex_1_1parser_1_1basic__ipv6__address.html create mode 100644 classstdex_1_1parser_1_1basic__ipv6__address.png create mode 100644 classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html create mode 100644 classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html create mode 100644 classstdex_1_1parser_1_1basic__ipv6__scope__id__char.png create mode 100644 classstdex_1_1parser_1_1basic__iterations-members.html create mode 100644 classstdex_1_1parser_1_1basic__iterations.html create mode 100644 classstdex_1_1parser_1_1basic__iterations.png create mode 100644 classstdex_1_1parser_1_1basic__json__string-members.html create mode 100644 classstdex_1_1parser_1_1basic__json__string.html create mode 100644 classstdex_1_1parser_1_1basic__json__string.png create mode 100644 classstdex_1_1parser_1_1basic__mixed__numeral-members.html create mode 100644 classstdex_1_1parser_1_1basic__mixed__numeral.html create mode 100644 classstdex_1_1parser_1_1basic__mixed__numeral.png create mode 100644 classstdex_1_1parser_1_1basic__monetary__numeral-members.html create mode 100644 classstdex_1_1parser_1_1basic__monetary__numeral.html create mode 100644 classstdex_1_1parser_1_1basic__monetary__numeral.png create mode 100644 classstdex_1_1parser_1_1basic__noop-members.html create mode 100644 classstdex_1_1parser_1_1basic__noop.html create mode 100644 classstdex_1_1parser_1_1basic__noop.png create mode 100644 classstdex_1_1parser_1_1basic__permutation-members.html create mode 100644 classstdex_1_1parser_1_1basic__permutation.html create mode 100644 classstdex_1_1parser_1_1basic__permutation.png create mode 100644 classstdex_1_1parser_1_1basic__phone__number-members.html create mode 100644 classstdex_1_1parser_1_1basic__phone__number.html create mode 100644 classstdex_1_1parser_1_1basic__phone__number.png create mode 100644 classstdex_1_1parser_1_1basic__punct__cu-members.html create mode 100644 classstdex_1_1parser_1_1basic__punct__cu.html create mode 100644 classstdex_1_1parser_1_1basic__punct__cu.png create mode 100644 classstdex_1_1parser_1_1basic__roman__numeral-members.html create mode 100644 classstdex_1_1parser_1_1basic__roman__numeral.html create mode 100644 classstdex_1_1parser_1_1basic__roman__numeral.png create mode 100644 classstdex_1_1parser_1_1basic__scientific__numeral-members.html create mode 100644 classstdex_1_1parser_1_1basic__scientific__numeral.html create mode 100644 classstdex_1_1parser_1_1basic__scientific__numeral.png create mode 100644 classstdex_1_1parser_1_1basic__score-members.html create mode 100644 classstdex_1_1parser_1_1basic__score.html create mode 100644 classstdex_1_1parser_1_1basic__score.png create mode 100644 classstdex_1_1parser_1_1basic__sequence-members.html create mode 100644 classstdex_1_1parser_1_1basic__sequence.html create mode 100644 classstdex_1_1parser_1_1basic__sequence.png create mode 100644 classstdex_1_1parser_1_1basic__set-members.html create mode 100644 classstdex_1_1parser_1_1basic__set.html create mode 100644 classstdex_1_1parser_1_1basic__set.png create mode 100644 classstdex_1_1parser_1_1basic__signed__numeral-members.html create mode 100644 classstdex_1_1parser_1_1basic__signed__numeral.html create mode 100644 classstdex_1_1parser_1_1basic__signed__numeral.png create mode 100644 classstdex_1_1parser_1_1basic__space__cu-members.html create mode 100644 classstdex_1_1parser_1_1basic__space__cu.html create mode 100644 classstdex_1_1parser_1_1basic__space__cu.png create mode 100644 classstdex_1_1parser_1_1basic__space__or__punct__cu-members.html create mode 100644 classstdex_1_1parser_1_1basic__space__or__punct__cu.html create mode 100644 classstdex_1_1parser_1_1basic__space__or__punct__cu.png create mode 100644 classstdex_1_1parser_1_1basic__string-members.html create mode 100644 classstdex_1_1parser_1_1basic__string.html create mode 100644 classstdex_1_1parser_1_1basic__string.png create mode 100644 classstdex_1_1parser_1_1basic__string__branch-members.html create mode 100644 classstdex_1_1parser_1_1basic__string__branch.html create mode 100644 classstdex_1_1parser_1_1basic__string__branch.png create mode 100644 classstdex_1_1parser_1_1basic__tester-members.html create mode 100644 classstdex_1_1parser_1_1basic__tester.html create mode 100644 classstdex_1_1parser_1_1basic__tester.png create mode 100644 classstdex_1_1parser_1_1basic__time-members.html create mode 100644 classstdex_1_1parser_1_1basic__time.html create mode 100644 classstdex_1_1parser_1_1basic__time.png create mode 100644 classstdex_1_1parser_1_1basic__url-members.html create mode 100644 classstdex_1_1parser_1_1basic__url.html create mode 100644 classstdex_1_1parser_1_1basic__url.png create mode 100644 classstdex_1_1parser_1_1basic__url__password__char-members.html create mode 100644 classstdex_1_1parser_1_1basic__url__password__char.html create mode 100644 classstdex_1_1parser_1_1basic__url__password__char.png create mode 100644 classstdex_1_1parser_1_1basic__url__path-members.html create mode 100644 classstdex_1_1parser_1_1basic__url__path.html create mode 100644 classstdex_1_1parser_1_1basic__url__path.png create mode 100644 classstdex_1_1parser_1_1basic__url__path__char-members.html create mode 100644 classstdex_1_1parser_1_1basic__url__path__char.html create mode 100644 classstdex_1_1parser_1_1basic__url__path__char.png create mode 100644 classstdex_1_1parser_1_1basic__url__username__char-members.html create mode 100644 classstdex_1_1parser_1_1basic__url__username__char.html create mode 100644 classstdex_1_1parser_1_1basic__url__username__char.png create mode 100644 classstdex_1_1parser_1_1http__agent-members.html create mode 100644 classstdex_1_1parser_1_1http__agent.html create mode 100644 classstdex_1_1parser_1_1http__agent.png create mode 100644 classstdex_1_1parser_1_1http__any__type-members.html create mode 100644 classstdex_1_1parser_1_1http__any__type.html create mode 100644 classstdex_1_1parser_1_1http__any__type.png create mode 100644 classstdex_1_1parser_1_1http__asterisk-members.html create mode 100644 classstdex_1_1parser_1_1http__asterisk.html create mode 100644 classstdex_1_1parser_1_1http__asterisk.png create mode 100644 classstdex_1_1parser_1_1http__cookie-members.html create mode 100644 classstdex_1_1parser_1_1http__cookie.html create mode 100644 classstdex_1_1parser_1_1http__cookie.png create mode 100644 classstdex_1_1parser_1_1http__cookie__parameter-members.html create mode 100644 classstdex_1_1parser_1_1http__cookie__parameter.html create mode 100644 classstdex_1_1parser_1_1http__cookie__parameter.png create mode 100644 classstdex_1_1parser_1_1http__header-members.html create mode 100644 classstdex_1_1parser_1_1http__header.html create mode 100644 classstdex_1_1parser_1_1http__header.png create mode 100644 classstdex_1_1parser_1_1http__header__collection-members.html create mode 100644 classstdex_1_1parser_1_1http__header__collection.html create mode 100644 classstdex_1_1parser_1_1http__header__collection.png create mode 100644 classstdex_1_1parser_1_1http__language-members.html create mode 100644 classstdex_1_1parser_1_1http__language.html create mode 100644 classstdex_1_1parser_1_1http__language.png create mode 100644 classstdex_1_1parser_1_1http__line__break-members.html create mode 100644 classstdex_1_1parser_1_1http__line__break.html create mode 100644 classstdex_1_1parser_1_1http__line__break.png create mode 100644 classstdex_1_1parser_1_1http__media__range-members.html create mode 100644 classstdex_1_1parser_1_1http__media__range.html create mode 100644 classstdex_1_1parser_1_1http__media__range.png create mode 100644 classstdex_1_1parser_1_1http__media__type-members.html create mode 100644 classstdex_1_1parser_1_1http__media__type.html create mode 100644 classstdex_1_1parser_1_1http__media__type.png create mode 100644 classstdex_1_1parser_1_1http__parameter-members.html create mode 100644 classstdex_1_1parser_1_1http__parameter.html create mode 100644 classstdex_1_1parser_1_1http__parameter.png create mode 100644 classstdex_1_1parser_1_1http__protocol-members.html create mode 100644 classstdex_1_1parser_1_1http__protocol.html create mode 100644 classstdex_1_1parser_1_1http__protocol.png create mode 100644 classstdex_1_1parser_1_1http__quoted__string-members.html create mode 100644 classstdex_1_1parser_1_1http__quoted__string.html create mode 100644 classstdex_1_1parser_1_1http__quoted__string.png create mode 100644 classstdex_1_1parser_1_1http__request-members.html create mode 100644 classstdex_1_1parser_1_1http__request.html create mode 100644 classstdex_1_1parser_1_1http__request.png create mode 100644 classstdex_1_1parser_1_1http__space-members.html create mode 100644 classstdex_1_1parser_1_1http__space.html create mode 100644 classstdex_1_1parser_1_1http__space.png create mode 100644 classstdex_1_1parser_1_1http__text__char-members.html create mode 100644 classstdex_1_1parser_1_1http__text__char.html create mode 100644 classstdex_1_1parser_1_1http__text__char.png create mode 100644 classstdex_1_1parser_1_1http__token-members.html create mode 100644 classstdex_1_1parser_1_1http__token.html create mode 100644 classstdex_1_1parser_1_1http__token.png create mode 100644 classstdex_1_1parser_1_1http__url-members.html create mode 100644 classstdex_1_1parser_1_1http__url.html create mode 100644 classstdex_1_1parser_1_1http__url.png create mode 100644 classstdex_1_1parser_1_1http__url__parameter-members.html create mode 100644 classstdex_1_1parser_1_1http__url__parameter.html create mode 100644 classstdex_1_1parser_1_1http__url__parameter.png create mode 100644 classstdex_1_1parser_1_1http__url__path-members.html create mode 100644 classstdex_1_1parser_1_1http__url__path.html create mode 100644 classstdex_1_1parser_1_1http__url__path.png create mode 100644 classstdex_1_1parser_1_1http__url__path__segment-members.html create mode 100644 classstdex_1_1parser_1_1http__url__path__segment.html create mode 100644 classstdex_1_1parser_1_1http__url__path__segment.png create mode 100644 classstdex_1_1parser_1_1http__url__port-members.html create mode 100644 classstdex_1_1parser_1_1http__url__port.html create mode 100644 classstdex_1_1parser_1_1http__url__port.png create mode 100644 classstdex_1_1parser_1_1http__url__server-members.html create mode 100644 classstdex_1_1parser_1_1http__url__server.html create mode 100644 classstdex_1_1parser_1_1http__url__server.png create mode 100644 classstdex_1_1parser_1_1http__value-members.html create mode 100644 classstdex_1_1parser_1_1http__value.html create mode 100644 classstdex_1_1parser_1_1http__value.png create mode 100644 classstdex_1_1parser_1_1http__weight-members.html create mode 100644 classstdex_1_1parser_1_1http__weight.html create mode 100644 classstdex_1_1parser_1_1http__weight.png create mode 100644 classstdex_1_1parser_1_1http__weighted__value-members.html create mode 100644 classstdex_1_1parser_1_1http__weighted__value.html create mode 100644 classstdex_1_1parser_1_1http__weighted__value.png create mode 100644 classstdex_1_1parser_1_1sgml__any__cp-members.html create mode 100644 classstdex_1_1parser_1_1sgml__any__cp.html create mode 100644 classstdex_1_1parser_1_1sgml__any__cp.png create mode 100644 classstdex_1_1parser_1_1sgml__cp-members.html create mode 100644 classstdex_1_1parser_1_1sgml__cp.html create mode 100644 classstdex_1_1parser_1_1sgml__cp.png create mode 100644 classstdex_1_1parser_1_1sgml__cp__set-members.html create mode 100644 classstdex_1_1parser_1_1sgml__cp__set.html create mode 100644 classstdex_1_1parser_1_1sgml__cp__set.png create mode 100644 classstdex_1_1parser_1_1sgml__dns__domain__char-members.html create mode 100644 classstdex_1_1parser_1_1sgml__dns__domain__char.html create mode 100644 classstdex_1_1parser_1_1sgml__dns__domain__char.png create mode 100644 classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html create mode 100644 classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html create mode 100644 classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.png create mode 100644 classstdex_1_1parser_1_1sgml__punct__cp-members.html create mode 100644 classstdex_1_1parser_1_1sgml__punct__cp.html create mode 100644 classstdex_1_1parser_1_1sgml__punct__cp.png create mode 100644 classstdex_1_1parser_1_1sgml__space__cp-members.html create mode 100644 classstdex_1_1parser_1_1sgml__space__cp.html create mode 100644 classstdex_1_1parser_1_1sgml__space__cp.png create mode 100644 classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html create mode 100644 classstdex_1_1parser_1_1sgml__space__or__punct__cp.html create mode 100644 classstdex_1_1parser_1_1sgml__space__or__punct__cp.png create mode 100644 classstdex_1_1parser_1_1sgml__string-members.html create mode 100644 classstdex_1_1parser_1_1sgml__string.html create mode 100644 classstdex_1_1parser_1_1sgml__string.png create mode 100644 classstdex_1_1parser_1_1sgml__url__password__char-members.html create mode 100644 classstdex_1_1parser_1_1sgml__url__password__char.html create mode 100644 classstdex_1_1parser_1_1sgml__url__password__char.png create mode 100644 classstdex_1_1parser_1_1sgml__url__path__char-members.html create mode 100644 classstdex_1_1parser_1_1sgml__url__path__char.html create mode 100644 classstdex_1_1parser_1_1sgml__url__path__char.png create mode 100644 classstdex_1_1parser_1_1sgml__url__username__char-members.html create mode 100644 classstdex_1_1parser_1_1sgml__url__username__char.html create mode 100644 classstdex_1_1parser_1_1sgml__url__username__char.png create mode 100644 classstdex_1_1parser_1_1tester__collection-members.html create mode 100644 classstdex_1_1parser_1_1tester__collection.html create mode 100644 classstdex_1_1parser_1_1tester__collection.png create mode 100644 dir_4be4f7b278e009bf0f1906cf31fb73bd.html rename errno_8h_source.html => errno_8hpp_source.html (95%) rename exception_8h_source.html => exception_8hpp_source.html (93%) rename hex_8h_source.html => hex_8hpp_source.html (76%) rename idrec_8h_source.html => idrec_8hpp_source.html (97%) rename interval_8h_source.html => interval_8hpp_source.html (84%) create mode 100644 mapping_8hpp_source.html create mode 100644 memory_8hpp_source.html create mode 100644 parser_8hpp_source.html create mode 100644 pch_8h_source.html rename progress_8h_source.html => progress_8hpp_source.html (96%) rename sal_8h_source.html => sal_8hpp_source.html (97%) create mode 100644 search/classes_a.js create mode 100644 search/classes_b.js create mode 100644 search/classes_c.js create mode 100644 search/classes_d.js create mode 100644 search/variables_6.js create mode 100644 search/variables_7.js create mode 100644 search/variables_8.js create mode 100644 search/variables_9.js create mode 100644 search/variables_a.js create mode 100644 search/variables_b.js create mode 100644 search/variables_c.js create mode 100644 search/variables_d.js create mode 100644 sgml_8hpp_source.html create mode 100644 sgml__unicode_8hpp_source.html delete mode 100644 string_8h_source.html create mode 100644 string_8hpp_source.html create mode 100644 structstdex_1_1mapping-members.html create mode 100644 structstdex_1_1mapping.html create mode 100644 structstdex_1_1no__delete-members.html create mode 100644 structstdex_1_1no__delete.html create mode 100644 structstdex_1_1no__delete_3_01_t_0f_0e_4-members.html create mode 100644 structstdex_1_1no__delete_3_01_t_0f_0e_4.html create mode 100644 structstdex_1_1parser_1_1http__factor__more-members.html create mode 100644 structstdex_1_1parser_1_1http__factor__more.html rename vector__queue_8h_source.html => vector__queue_8hpp_source.html (97%) diff --git a/annotated.html b/annotated.html index 36bcc4977..44dcf4b1c 100644 --- a/annotated.html +++ b/annotated.html @@ -76,25 +76,116 @@ $(function() {
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
- - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Nstdex
 Nidrec
 CrecordHelper class for read/write of records to/from memory
 Cbase64_decBase64 decoding session
 Cbase64_encBase64 encoding session
 Cerrno_errorStandard C runtime library error
 Cglobal_progressGlobal progress indicator base class
 Chex_decHexadecimal decoding session
 Chex_encHexadecimal encoding session
 CintervalNumerical interval
 Clazy_progressLazy progress indicator base class
 CprogressProgress indicator base class
 Cuser_cancelledUser cancelled exception
 Cvector_queueHelper class to allow limited size FIFO queues implemented as vector of elements
 Nidrec
 Nparser
 Cbase64_decBase64 decoding session
 Cbase64_encBase64 encoding session
 Cerrno_errorStandard C runtime library error
 Cglobal_progressGlobal progress indicator base class
 Chex_decHexadecimal decoding session
 Chex_encHexadecimal encoding session
 CintervalNumerical interval
 Clazy_progressLazy progress indicator base class
 CmappingMaps index in source string to index in destination string
 Cno_deleteNoop deleter
 Cno_delete< T[]>Noop array deleter
 CprogressProgress indicator base class
 Cuser_cancelledUser cancelled exception
 Cvector_queueHelper class to allow limited size FIFO queues implemented as vector of elements
diff --git a/base64_8h_source.html b/base64_8hpp_source.html similarity index 76% rename from base64_8h_source.html rename to base64_8hpp_source.html index 390baa436..98ff97907 100644 --- a/base64_8h_source.html +++ b/base64_8hpp_source.html @@ -5,7 +5,7 @@ -stdex: include/stdex/base64.h Source File +stdex: include/stdex/base64.hpp Source File @@ -74,7 +74,7 @@ $(function() {
-
base64.h
+
base64.hpp
1/*
@@ -84,240 +84,241 @@ $(function() {
5
6#pragma once
7
-
8#include "sal.h"
-
9#include <cstdint>
-
10#include <string>
-
11#include <vector>
-
12
+
8#include "sal.hpp"
+
9#include <assert.h>
+
10#include <cstdint>
+
11#include <string>
+
12#include <vector>
13
-
14namespace stdex
-
15{
- -
20 {
-
21 public:
-
25 base64_enc() noexcept : num(0)
-
26 {
-
27 buf[0] = 0;
-
28 buf[1] = 0;
-
29 buf[2] = 0;
-
30 }
-
31
+
14
+
15namespace stdex
+
16{
+ +
21 {
+
22 public:
+
26 base64_enc() noexcept : num(0)
+
27 {
+
28 buf[0] = 0;
+
29 buf[1] = 0;
+
30 buf[2] = 0;
+
31 }
32
-
41 template<class _Elem, class _Traits, class _Ax>
-
42 void encode(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &out, _In_bytecount_(size) const void *data, _In_ size_t size, _In_opt_ bool is_last = true)
-
43 {
-
44 assert(data || !size);
-
45
-
46 // Preallocate output
-
47 out.reserve(out.size() + enc_size(size));
-
48
-
49 // Convert data character by character.
-
50 for (size_t i = 0;; i++) {
-
51 if (num >= 3) {
-
52 encode(out);
-
53 num = 0;
-
54 }
-
55
-
56 if (i >= size)
-
57 break;
-
58
-
59 buf[num++] = reinterpret_cast<const uint8_t*>(data)[i];
-
60 }
-
61
-
62 // If this is the last block, flush the buffer.
-
63 if (is_last && num) {
-
64 encode(out, num);
-
65 num = 0;
-
66 }
-
67 }
-
68
+
33
+
42 template<class _Elem, class _Traits, class _Ax>
+
43 void encode(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &out, _In_bytecount_(size) const void *data, _In_ size_t size, _In_opt_ bool is_last = true)
+
44 {
+
45 assert(data || !size);
+
46
+
47 // Preallocate output
+
48 out.reserve(out.size() + enc_size(size));
+
49
+
50 // Convert data character by character.
+
51 for (size_t i = 0;; i++) {
+
52 if (num >= 3) {
+
53 encode(out);
+
54 num = 0;
+
55 }
+
56
+
57 if (i >= size)
+
58 break;
+
59
+
60 buf[num++] = reinterpret_cast<const uint8_t*>(data)[i];
+
61 }
+
62
+
63 // If this is the last block, flush the buffer.
+
64 if (is_last && num) {
+
65 encode(out, num);
+
66 num = 0;
+
67 }
+
68 }
69
-
73 void clear() noexcept
-
74 {
-
75 num = 0;
-
76 }
-
77
+
70
+
74 void clear() noexcept
+
75 {
+
76 num = 0;
+
77 }
78
-
86 size_t enc_size(_In_ size_t size) const noexcept
-
87 {
-
88 return ((num + size + 2)/3)*4;
-
89 }
-
90
+
79
+
87 size_t enc_size(_In_ size_t size) const noexcept
+
88 {
+
89 return ((num + size + 2)/3)*4;
+
90 }
91
-
92 protected:
-
96 template<class _Elem, class _Traits, class _Ax>
-
97 void encode(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &out)
-
98 {
-
99 out += base64_enc_lookup[ buf[0] >> 2 ];
-
100 out += base64_enc_lookup[((buf[0] << 4) | (buf[1] >> 4)) & 0x3f];
-
101 out += base64_enc_lookup[((buf[1] << 2) | (buf[2] >> 6)) & 0x3f];
-
102 out += base64_enc_lookup[ buf[2] & 0x3f];
-
103 }
-
104
+
92
+
93 protected:
+
97 template<class _Elem, class _Traits, class _Ax>
+
98 void encode(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &out)
+
99 {
+
100 out += base64_enc_lookup[ buf[0] >> 2 ];
+
101 out += base64_enc_lookup[((buf[0] << 4) | (buf[1] >> 4)) & 0x3f];
+
102 out += base64_enc_lookup[((buf[1] << 2) | (buf[2] >> 6)) & 0x3f];
+
103 out += base64_enc_lookup[ buf[2] & 0x3f];
+
104 }
105
-
109 template<class _Elem, class _Traits, class _Ax>
-
110 void encode(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &out, _In_ size_t size)
-
111 {
-
112 if (size > 0) {
-
113 out += base64_enc_lookup[buf[0] >> 2];
-
114 if (size > 1) {
-
115 out += base64_enc_lookup[((buf[0] << 4) | (buf[1] >> 4)) & 0x3f];
-
116 if (size > 2) {
-
117 out += base64_enc_lookup[((buf[1] << 2) | (buf[2] >> 6)) & 0x3f];
-
118 out += base64_enc_lookup[buf[2] & 0x3f];
-
119 } else {
-
120 out += base64_enc_lookup[(buf[1] << 2) & 0x3f];
-
121 out += '=';
-
122 }
-
123 } else {
-
124 out += base64_enc_lookup[(buf[0] << 4) & 0x3f];
-
125 out += '=';
+
106
+
110 template<class _Elem, class _Traits, class _Ax>
+
111 void encode(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &out, _In_ size_t size)
+
112 {
+
113 if (size > 0) {
+
114 out += base64_enc_lookup[buf[0] >> 2];
+
115 if (size > 1) {
+
116 out += base64_enc_lookup[((buf[0] << 4) | (buf[1] >> 4)) & 0x3f];
+
117 if (size > 2) {
+
118 out += base64_enc_lookup[((buf[1] << 2) | (buf[2] >> 6)) & 0x3f];
+
119 out += base64_enc_lookup[buf[2] & 0x3f];
+
120 } else {
+
121 out += base64_enc_lookup[(buf[1] << 2) & 0x3f];
+
122 out += '=';
+
123 }
+
124 } else {
+
125 out += base64_enc_lookup[(buf[0] << 4) & 0x3f];
126 out += '=';
-
127 }
-
128 } else {
-
129 out += '=';
+
127 out += '=';
+
128 }
+
129 } else {
130 out += '=';
131 out += '=';
132 out += '=';
-
133 }
-
134 }
-
135
+
133 out += '=';
+
134 }
+
135 }
136
-
137 protected:
-
138 uint8_t buf[3];
-
139 size_t num;
-
140 };
-
141
+
137
+
138 protected:
+
139 uint8_t buf[3];
+
140 size_t num;
+
141 };
142
-
144 static const char base64_enc_lookup[64] = {
-
145 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
-
146 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
-
147 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
-
148 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
-
149 };
-
151
+
143
+
145 static const char base64_enc_lookup[64] = {
+
146 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
+
147 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
+
148 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
+
149 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/'
+
150 };
152
- -
157 {
-
158 public:
-
162 base64_dec() noexcept : num(0)
-
163 {
-
164 buf[0] = 0;
-
165 buf[1] = 0;
-
166 buf[2] = 0;
-
167 buf[3] = 0;
-
168 }
-
169
+
153
+ +
158 {
+
159 public:
+
163 base64_dec() noexcept : num(0)
+
164 {
+
165 buf[0] = 0;
+
166 buf[1] = 0;
+
167 buf[2] = 0;
+
168 buf[3] = 0;
+
169 }
170
-
179 template<class _Ty, class _Ax, class _Tchr>
-
180 void decode(_Inout_ std::vector<_Ty, _Ax> &out, _Out_ bool &is_last, _In_z_count_(size) const _Tchr *data, _In_ size_t size)
-
181 {
-
182 is_last = false;
-
183
-
184 // Trim data size to first terminator.
-
185 for (size_t k = 0; k < size; k++)
-
186 if (!data[k]) { size = k; break; }
-
187
-
188 // Preallocate output
-
189 out.reserve(out.size() + dec_size(size));
-
190
-
191 for (size_t i = 0;; i++) {
-
192 if (num >= 4) {
-
193 // Buffer full; decode it.
-
194 size_t nibbles = decode(out);
-
195 num = 0;
-
196 if (nibbles < 3) {
-
197 is_last = true;
-
198 break;
-
199 }
-
200 }
-
201
-
202 if (i >= size)
-
203 break;
-
204
-
205 int x = data[i];
-
206 if ((buf[num] = x < _countof(base64_dec_lookup) ? base64_dec_lookup[x] : 255) != 255)
-
207 num++;
-
208 }
-
209 }
-
210
+
171
+
180 template<class _Ty, class _Ax, class _Tchr>
+
181 void decode(_Inout_ std::vector<_Ty, _Ax> &out, _Out_ bool &is_last, _In_z_count_(size) const _Tchr *data, _In_ size_t size)
+
182 {
+
183 is_last = false;
+
184
+
185 // Trim data size to first terminator.
+
186 for (size_t k = 0; k < size; k++)
+
187 if (!data[k]) { size = k; break; }
+
188
+
189 // Preallocate output
+
190 out.reserve(out.size() + dec_size(size));
+
191
+
192 for (size_t i = 0;; i++) {
+
193 if (num >= 4) {
+
194 // Buffer full; decode it.
+
195 size_t nibbles = decode(out);
+
196 num = 0;
+
197 if (nibbles < 3) {
+
198 is_last = true;
+
199 break;
+
200 }
+
201 }
+
202
+
203 if (i >= size)
+
204 break;
+
205
+
206 int x = data[i];
+
207 if ((buf[num] = x < _countof(base64_dec_lookup) ? base64_dec_lookup[x] : 255) != 255)
+
208 num++;
+
209 }
+
210 }
211
-
215 void clear() noexcept
-
216 {
-
217 num = 0;
-
218 }
-
219
+
212
+
216 void clear() noexcept
+
217 {
+
218 num = 0;
+
219 }
220
-
228 size_t dec_size(_In_ size_t size) const noexcept
-
229 {
-
230 return ((num + size + 3)/4)*3;
-
231 }
-
232
+
221
+
229 size_t dec_size(_In_ size_t size) const noexcept
+
230 {
+
231 return ((num + size + 3)/4)*3;
+
232 }
233
-
234 protected:
-
238 template<class _Ty, class _Ax>
-
239 size_t decode(_Inout_ std::vector<_Ty, _Ax> &out)
-
240 {
-
241 out.push_back((_Ty)(((buf[0] << 2) | (buf[1] >> 4)) & 0xff));
-
242 if (buf[2] < 64) {
-
243 out.push_back((_Ty)(((buf[1] << 4) | (buf[2] >> 2)) & 0xff));
-
244 if (buf[3] < 64) {
-
245 out.push_back((_Ty)(((buf[2] << 6) | buf[3]) & 0xff));
-
246 return 3;
-
247 } else
-
248 return 2;
-
249 } else
-
250 return 1;
-
251 }
-
252
+
234
+
235 protected:
+
239 template<class _Ty, class _Ax>
+
240 size_t decode(_Inout_ std::vector<_Ty, _Ax> &out)
+
241 {
+
242 out.push_back((_Ty)(((buf[0] << 2) | (buf[1] >> 4)) & 0xff));
+
243 if (buf[2] < 64) {
+
244 out.push_back((_Ty)(((buf[1] << 4) | (buf[2] >> 2)) & 0xff));
+
245 if (buf[3] < 64) {
+
246 out.push_back((_Ty)(((buf[2] << 6) | buf[3]) & 0xff));
+
247 return 3;
+
248 } else
+
249 return 2;
+
250 } else
+
251 return 1;
+
252 }
253
-
254 protected:
-
255 uint8_t buf[4];
-
256 size_t num;
-
257 };
-
258
+
254
+
255 protected:
+
256 uint8_t buf[4];
+
257 size_t num;
+
258 };
259
-
261 static const uint8_t base64_dec_lookup[256] = {
-
262 /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
-
263 /* 0 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-
264 /* 1 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-
265 /* 2 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63,
-
266 /* 3 */ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, 255, 64, 255, 255,
-
267 /* 4 */ 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
-
268 /* 5 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255,
-
269 /* 6 */ 255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
-
270 /* 7 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 255, 255, 255, 255, 255,
-
271 /* 8 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-
272 /* 9 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-
273 /* A */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-
274 /* B */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-
275 /* C */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-
276 /* D */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-
277 /* E */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
-
278 /* F */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255
-
279 };
-
281}
-
Base64 decoding session.
Definition: base64.h:157
-
size_t num
Number of bytes used in buf
Definition: base64.h:256
-
base64_dec() noexcept
Constructs blank decoding session.
Definition: base64.h:162
-
void decode(std::vector< _Ty, _Ax > &out, bool &is_last, const _Tchr *data, size_t size)
Decodes one block of information, and appends it to the output.
Definition: base64.h:180
-
size_t dec_size(size_t size) const noexcept
Returns maximum decoded size.
Definition: base64.h:228
-
uint8_t buf[4]
Internal buffer.
Definition: base64.h:255
-
size_t decode(std::vector< _Ty, _Ax > &out)
Decodes one complete internal buffer of data.
Definition: base64.h:239
-
void clear() noexcept
Resets decoding session.
Definition: base64.h:215
-
Base64 encoding session.
Definition: base64.h:20
-
void encode(std::basic_string< _Elem, _Traits, _Ax > &out, const void *data, size_t size, bool is_last=true)
Encodes one block of information, and appends it to the output.
Definition: base64.h:42
-
void encode(std::basic_string< _Elem, _Traits, _Ax > &out)
Encodes one complete internal buffer of data.
Definition: base64.h:97
-
size_t num
Number of bytes used in buf
Definition: base64.h:139
-
void encode(std::basic_string< _Elem, _Traits, _Ax > &out, size_t size)
Encodes partial internal buffer of data.
Definition: base64.h:110
-
base64_enc() noexcept
Constructs blank encoding session.
Definition: base64.h:25
-
uint8_t buf[3]
Internal buffer.
Definition: base64.h:138
-
void clear() noexcept
Resets encoding session.
Definition: base64.h:73
-
size_t enc_size(size_t size) const noexcept
Returns maximum encoded size.
Definition: base64.h:86
+
260
+
262 static const uint8_t base64_dec_lookup[256] = {
+
263 /* 0 1 2 3 4 5 6 7 8 9 A B C D E F */
+
264 /* 0 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
265 /* 1 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
266 /* 2 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 62, 255, 255, 255, 63,
+
267 /* 3 */ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 255, 255, 255, 64, 255, 255,
+
268 /* 4 */ 255, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+
269 /* 5 */ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 255, 255, 255, 255, 255,
+
270 /* 6 */ 255, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
+
271 /* 7 */ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 255, 255, 255, 255, 255,
+
272 /* 8 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
273 /* 9 */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
274 /* A */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
275 /* B */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
276 /* C */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
277 /* D */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
278 /* E */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+
279 /* F */ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255
+
280 };
+
282}
+
Base64 decoding session.
Definition: base64.hpp:158
+
size_t num
Number of bytes used in buf
Definition: base64.hpp:257
+
base64_dec() noexcept
Constructs blank decoding session.
Definition: base64.hpp:163
+
void decode(std::vector< _Ty, _Ax > &out, bool &is_last, const _Tchr *data, size_t size)
Decodes one block of information, and appends it to the output.
Definition: base64.hpp:181
+
size_t dec_size(size_t size) const noexcept
Returns maximum decoded size.
Definition: base64.hpp:229
+
uint8_t buf[4]
Internal buffer.
Definition: base64.hpp:256
+
size_t decode(std::vector< _Ty, _Ax > &out)
Decodes one complete internal buffer of data.
Definition: base64.hpp:240
+
void clear() noexcept
Resets decoding session.
Definition: base64.hpp:216
+
Base64 encoding session.
Definition: base64.hpp:21
+
void encode(std::basic_string< _Elem, _Traits, _Ax > &out, const void *data, size_t size, bool is_last=true)
Encodes one block of information, and appends it to the output.
Definition: base64.hpp:43
+
void encode(std::basic_string< _Elem, _Traits, _Ax > &out)
Encodes one complete internal buffer of data.
Definition: base64.hpp:98
+
size_t num
Number of bytes used in buf
Definition: base64.hpp:140
+
void encode(std::basic_string< _Elem, _Traits, _Ax > &out, size_t size)
Encodes partial internal buffer of data.
Definition: base64.hpp:111
+
base64_enc() noexcept
Constructs blank encoding session.
Definition: base64.hpp:26
+
uint8_t buf[3]
Internal buffer.
Definition: base64.hpp:139
+
void clear() noexcept
Resets encoding session.
Definition: base64.hpp:74
+
size_t enc_size(size_t size) const noexcept
Returns maximum encoded size.
Definition: base64.hpp:87
diff --git a/classes.html b/classes.html index 6932c5a0f..7c948d9d7 100644 --- a/classes.html +++ b/classes.html @@ -73,11 +73,11 @@ $(function() {
Class Index
-
B | E | G | H | I | L | P | R | U | V
+
B | E | G | H | I | L | M | N | P | R | S | T | U | V
B
-
base64_dec (stdex)
base64_enc (stdex)
+
base64_dec (stdex)
base64_enc (stdex)
basic_angle (stdex::parser)
basic_any_cu (stdex::parser)
basic_bol (stdex::parser)
basic_branch (stdex::parser)
basic_chemical_formula (stdex::parser)
basic_cu (stdex::parser)
basic_cu_set (stdex::parser)
basic_date (stdex::parser)
basic_dns_domain_char (stdex::parser)
basic_dns_name (stdex::parser)
basic_email_address (stdex::parser)
basic_emoticon (stdex::parser)
basic_eol (stdex::parser)
basic_fraction (stdex::parser)
basic_integer (stdex::parser)
basic_integer10 (stdex::parser)
basic_integer10ts (stdex::parser)
basic_integer16 (stdex::parser)
basic_ipv4_address (stdex::parser)
basic_ipv6_address (stdex::parser)
basic_ipv6_scope_id_char (stdex::parser)
basic_iterations (stdex::parser)
basic_json_string (stdex::parser)
basic_mixed_numeral (stdex::parser)
basic_monetary_numeral (stdex::parser)
basic_noop (stdex::parser)
basic_permutation (stdex::parser)
basic_phone_number (stdex::parser)
basic_punct_cu (stdex::parser)
basic_roman_numeral (stdex::parser)
basic_scientific_numeral (stdex::parser)
basic_score (stdex::parser)
basic_sequence (stdex::parser)
basic_set (stdex::parser)
basic_signed_numeral (stdex::parser)
basic_space_cu (stdex::parser)
basic_space_or_punct_cu (stdex::parser)
basic_string (stdex::parser)
basic_string_branch (stdex::parser)
basic_tester (stdex::parser)
basic_time (stdex::parser)
basic_url (stdex::parser)
basic_url_password_char (stdex::parser)
basic_url_path (stdex::parser)
basic_url_path_char (stdex::parser)
basic_url_username_char (stdex::parser)
E
errno_error (stdex)
@@ -86,7 +86,7 @@ $(function() {
global_progress (stdex)
H
-
hex_dec (stdex)
hex_enc (stdex)
+
hex_dec (stdex)
hex_enc (stdex)
http_agent (stdex::parser)
http_any_type (stdex::parser)
http_asterisk (stdex::parser)
http_cookie (stdex::parser)
http_cookie_parameter (stdex::parser)
http_factor_more (stdex::parser)
http_header (stdex::parser)
http_header_collection (stdex::parser)
http_language (stdex::parser)
http_line_break (stdex::parser)
http_media_range (stdex::parser)
http_media_type (stdex::parser)
http_parameter (stdex::parser)
http_protocol (stdex::parser)
http_quoted_string (stdex::parser)
http_request (stdex::parser)
http_space (stdex::parser)
http_text_char (stdex::parser)
http_token (stdex::parser)
http_url (stdex::parser)
http_url_parameter (stdex::parser)
http_url_path (stdex::parser)
http_url_path_segment (stdex::parser)
http_url_port (stdex::parser)
http_url_server (stdex::parser)
http_value (stdex::parser)
http_weight (stdex::parser)
http_weighted_value (stdex::parser)
I
interval (stdex)
@@ -94,12 +94,24 @@ $(function() {
L
lazy_progress (stdex)
+
M
+
mapping (stdex)
+
+
N
+
no_delete (stdex)
no_delete< T[]> (stdex)
+
P
progress (stdex)
R
record (stdex::idrec)
+
S
+
sgml_any_cp (stdex::parser)
sgml_cp (stdex::parser)
sgml_cp_set (stdex::parser)
sgml_dns_domain_char (stdex::parser)
sgml_ipv6_scope_id_char (stdex::parser)
sgml_punct_cp (stdex::parser)
sgml_space_cp (stdex::parser)
sgml_space_or_punct_cp (stdex::parser)
sgml_string (stdex::parser)
sgml_url_password_char (stdex::parser)
sgml_url_path_char (stdex::parser)
sgml_url_username_char (stdex::parser)
+
+
T
+
tester_collection (stdex::parser)
+
U
user_cancelled (stdex)
@@ -109,7 +121,7 @@ $(function() {
diff --git a/classstdex_1_1base64__dec-members.html b/classstdex_1_1base64__dec-members.html index 1a5e814d3..ddd6e055c 100644 --- a/classstdex_1_1base64__dec-members.html +++ b/classstdex_1_1base64__dec-members.html @@ -90,7 +90,7 @@ $(function() {
diff --git a/classstdex_1_1base64__dec.html b/classstdex_1_1base64__dec.html index effdc5ef6..fb07aebfa 100644 --- a/classstdex_1_1base64__dec.html +++ b/classstdex_1_1base64__dec.html @@ -86,7 +86,7 @@ $(function() {

Base64 decoding session. More...

-

#include <stdex/base64.h>

+

#include <stdex/base64.hpp>

@@ -225,12 +225,12 @@ template<class _Ty , class _Ax , class _Tchr >
The documentation for this class was generated from the following file: diff --git a/classstdex_1_1base64__enc-members.html b/classstdex_1_1base64__enc-members.html index 4c4981e81..7edf53430 100644 --- a/classstdex_1_1base64__enc-members.html +++ b/classstdex_1_1base64__enc-members.html @@ -91,7 +91,7 @@ $(function() {

Public Member Functions

diff --git a/classstdex_1_1base64__enc.html b/classstdex_1_1base64__enc.html index dcff31946..901279e96 100644 --- a/classstdex_1_1base64__enc.html +++ b/classstdex_1_1base64__enc.html @@ -86,7 +86,7 @@ $(function() {

Base64 encoding session. More...

-

#include <stdex/base64.h>

+

#include <stdex/base64.hpp>

@@ -230,12 +230,12 @@ template<class _Elem , class _Traits , class _Ax >
The documentation for this class was generated from the following file: diff --git a/classstdex_1_1errno__error-members.html b/classstdex_1_1errno__error-members.html index f2377b65b..60611236c 100644 --- a/classstdex_1_1errno__error-members.html +++ b/classstdex_1_1errno__error-members.html @@ -89,7 +89,7 @@ $(function() {

Public Member Functions

diff --git a/classstdex_1_1errno__error.html b/classstdex_1_1errno__error.html index e17ae4e9a..77cd1fa0a 100644 --- a/classstdex_1_1errno__error.html +++ b/classstdex_1_1errno__error.html @@ -85,7 +85,7 @@ $(function() {

Standard C runtime library error. More...

-

#include <stdex/errno.h>

+

#include <stdex/errno.hpp>

Inheritance diagram for stdex::errno_error:
@@ -281,12 +281,12 @@ errno_t m_num

The documentation for this class was generated from the following file: diff --git a/classstdex_1_1global__progress-members.html b/classstdex_1_1global__progress-members.html index 2a8dde9fc..9cfa9fe62 100644 --- a/classstdex_1_1global__progress-members.html +++ b/classstdex_1_1global__progress-members.html @@ -97,7 +97,7 @@ $(function() { diff --git a/classstdex_1_1global__progress.html b/classstdex_1_1global__progress.html index 25be0014c..6d7f7be0d 100644 --- a/classstdex_1_1global__progress.html +++ b/classstdex_1_1global__progress.html @@ -85,7 +85,7 @@ $(function() {

Global progress indicator base class. More...

-

#include <stdex/progress.h>

+

#include <stdex/progress.hpp>

Inheritance diagram for stdex::global_progress< T >:
@@ -556,12 +556,12 @@ template<class T >

The documentation for this class was generated from the following file: diff --git a/classstdex_1_1hex__dec-members.html b/classstdex_1_1hex__dec-members.html index a3333a968..e77b40377 100644 --- a/classstdex_1_1hex__dec-members.html +++ b/classstdex_1_1hex__dec-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/classstdex_1_1hex__dec.html b/classstdex_1_1hex__dec.html index da7917eaa..d69204c3b 100644 --- a/classstdex_1_1hex__dec.html +++ b/classstdex_1_1hex__dec.html @@ -85,7 +85,7 @@ $(function() {

Hexadecimal decoding session. More...

-

#include <stdex/hex.h>

+

#include <stdex/hex.hpp>

@@ -216,12 +216,12 @@ template<class _Ty , class _Ax , class _Tchr >
The documentation for this class was generated from the following file: diff --git a/classstdex_1_1hex__enc-members.html b/classstdex_1_1hex__enc-members.html index b9b73aa56..049078e8b 100644 --- a/classstdex_1_1hex__enc-members.html +++ b/classstdex_1_1hex__enc-members.html @@ -86,7 +86,7 @@ $(function() {

Public Member Functions

diff --git a/classstdex_1_1hex__enc.html b/classstdex_1_1hex__enc.html index 00cdc0a90..7f38c1f52 100644 --- a/classstdex_1_1hex__enc.html +++ b/classstdex_1_1hex__enc.html @@ -84,7 +84,7 @@ $(function() {

Hexadecimal encoding session. More...

-

#include <stdex/hex.h>

+

#include <stdex/hex.hpp>

@@ -193,12 +193,12 @@ template<class _Elem , class _Traits , class _Ax >
The documentation for this class was generated from the following file: diff --git a/classstdex_1_1idrec_1_1record-members.html b/classstdex_1_1idrec_1_1record-members.html index 6adce8fb5..0606c34f9 100644 --- a/classstdex_1_1idrec_1_1record-members.html +++ b/classstdex_1_1idrec_1_1record-members.html @@ -91,7 +91,7 @@ $(function() {

Public Member Functions

diff --git a/classstdex_1_1idrec_1_1record.html b/classstdex_1_1idrec_1_1record.html index 70249ee92..ae1395111 100644 --- a/classstdex_1_1idrec_1_1record.html +++ b/classstdex_1_1idrec_1_1record.html @@ -86,7 +86,7 @@ $(function() {

Helper class for read/write of records to/from memory. More...

-

#include <stdex/idrec.h>

+

#include <stdex/idrec.hpp>

@@ -375,12 +375,12 @@ template<class T , class T_ID , const T_ID ID, class T_SIZE , unsigned int AL
The documentation for this class was generated from the following file: diff --git a/classstdex_1_1lazy__progress-members.html b/classstdex_1_1lazy__progress-members.html index 61daccd2d..81b2d30a3 100644 --- a/classstdex_1_1lazy__progress-members.html +++ b/classstdex_1_1lazy__progress-members.html @@ -95,7 +95,7 @@ $(function() {

Public Member Functions

diff --git a/classstdex_1_1lazy__progress.html b/classstdex_1_1lazy__progress.html index af03cb30a..526f8340f 100644 --- a/classstdex_1_1lazy__progress.html +++ b/classstdex_1_1lazy__progress.html @@ -86,7 +86,7 @@ $(function() {

Lazy progress indicator base class. More...

-

#include <stdex/progress.h>

+

#include <stdex/progress.hpp>

Inheritance diagram for stdex::lazy_progress< T >:
@@ -280,12 +280,12 @@ template<class T >

The documentation for this class was generated from the following file: diff --git a/classstdex_1_1parser_1_1basic__angle-members.html b/classstdex_1_1parser_1_1basic__angle-members.html new file mode 100644 index 000000000..35a6f7646 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__angle-members.html @@ -0,0 +1,105 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_angle< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_angle< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
basic_angle(const std::shared_ptr< basic_integer10< T > > &_degree, const std::shared_ptr< basic_tester< T > > &_degree_separator, const std::shared_ptr< basic_integer10< T > > &_minute, const std::shared_ptr< basic_tester< T > > &_minute_separator, const std::shared_ptr< basic_integer10< T > > &_second, const std::shared_ptr< basic_tester< T > > &_second_separator, const std::shared_ptr< basic_tester< T > > &_decimal, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
decimal (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >
degree (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >
degree_separator (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
minute (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >
minute_separator (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
second (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >
second_separator (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__angle.html b/classstdex_1_1parser_1_1basic__angle.html new file mode 100644 index 000000000..009b7db39 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__angle.html @@ -0,0 +1,256 @@ + + + + + + + +stdex: stdex::parser::basic_angle< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_angle< T > Class Template Reference
+
+
+ +

Test for angle in d°mm'ss.dddd form. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_angle< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_angle (const std::shared_ptr< basic_integer10< T > > &_degree, const std::shared_ptr< basic_tester< T > > &_degree_separator, const std::shared_ptr< basic_integer10< T > > &_minute, const std::shared_ptr< basic_tester< T > > &_minute_separator, const std::shared_ptr< basic_integer10< T > > &_second, const std::shared_ptr< basic_tester< T > > &_second_separator, const std::shared_ptr< basic_tester< T > > &_decimal, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_integer10< T > > degree
 
+std::shared_ptr< basic_tester< T > > degree_separator
 
+std::shared_ptr< basic_integer10< T > > minute
 
+std::shared_ptr< basic_tester< T > > minute_separator
 
+std::shared_ptr< basic_integer10< T > > second
 
+std::shared_ptr< basic_tester< T > > second_separator
 
+std::shared_ptr< basic_tester< T > > decimal
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_angle< T >

Test for angle in d°mm'ss.dddd form.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_angle< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_angle< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__angle.png b/classstdex_1_1parser_1_1basic__angle.png new file mode 100644 index 0000000000000000000000000000000000000000..e512dc1f7981daabd489e966c628bf7415b40437 GIT binary patch literal 796 zcmV+%1LOROP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0007~ zNkl?N0LrINKcYZ_vx<&3;knh+xk{LO!s#?aqZvR z$KPY1?rEBC4omw?s55ZwdrQmoi7d~-ok;iOw}Zrt#U3|M8QPFcbWiqF{ye?uwDi%T z^>dn-(ke~gs!g45mrfJRM-7;MY98>FV;vsHq(OgGky{aFLeJLhy=E|NUv z@0>#6Op9bx+fD zb6DCXrOtM9SXtenPf~eKFH*8kemi2AvDo7VD#HTgY(s!EH-X-E8u}b668UKMHP32; z8JFfIq|^s&hxSwRfUg|u@0` + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_any_cu< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_any_cu< T >, including all inherited members.

+ + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_any_cu< T >)stdex::parser::basic_any_cu< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__any__cu.html b/classstdex_1_1parser_1_1basic__any__cu.html new file mode 100644 index 000000000..159b8330d --- /dev/null +++ b/classstdex_1_1parser_1_1basic__any__cu.html @@ -0,0 +1,197 @@ + + + + + + + +stdex: stdex::parser::basic_any_cu< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_any_cu< T > Class Template Reference
+
+
+ +

Test for any code unit. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_any_cu< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_any_cu< T >

Test for any code unit.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_any_cu< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__any__cu.png b/classstdex_1_1parser_1_1basic__any__cu.png new file mode 100644 index 0000000000000000000000000000000000000000..7110be7a7983198da6b98fbd0bf4db347cbffab8 GIT binary patch literal 807 zcmeAS@N?(olHy`uVBq!ia0vp^CxAGBgBeI>Z$8xoq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)xyHK4*ZM0{MdaGZ>>3pr#1*U+4(KrlJll!mz2WlrDrxN`-V^7z}m^D8g#@u6Z zf2)_%y{)C$Q&*qbduQ!k?d$rUakCIMpDu9-OVUV&E#(7a{-pqT3&6q zw~cp}sDbWf6NS8WzUSDtpUn-k<`=$Xa_Cicbn zB6*Wp^W+>$a(Zz?0x-j?bP_NsXja3``wG0^hLh*%i|Auf95mX z{Asa1`o^CE?@J4R-JEE?cs}FAC3&U}Dl64_1w3DQ8hdzY#yb3Gn7nY=H1%1lRe?#G N!PC{xWt~$(69D0CYb*c& literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__bol-members.html b/classstdex_1_1parser_1_1basic__bol-members.html new file mode 100644 index 000000000..cb7f2b8dd --- /dev/null +++ b/classstdex_1_1parser_1_1basic__bol-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_bol< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_bol< T >, including all inherited members.

+ + + + + + + + + + + +
basic_bol(bool invert=false) (defined in stdex::parser::basic_bol< T >)stdex::parser::basic_bol< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_invert (defined in stdex::parser::basic_bol< T >)stdex::parser::basic_bol< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_bol< T >)stdex::parser::basic_bol< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__bol.html b/classstdex_1_1parser_1_1basic__bol.html new file mode 100644 index 000000000..151cbba81 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__bol.html @@ -0,0 +1,207 @@ + + + + + + + +stdex: stdex::parser::basic_bol< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_bol< T > Class Template Reference
+
+
+ +

Test for beginning of line. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_bol< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_bol (bool invert=false)
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Attributes

+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_bol< T >

Test for beginning of line.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_bol< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__bol.png b/classstdex_1_1parser_1_1basic__bol.png new file mode 100644 index 0000000000000000000000000000000000000000..e85a5e065383cba6ec07d2cd6b94bf616f7d3aa1 GIT binary patch literal 755 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Nu9JY5_^Dj46+P3(KEz|+#+ zxnXxUT48w%dmC2`A!pPH*DT)={xsp=RrOEaTGTlpdK{qk5H} z^{-Sja_$w_X5Fe+$^6p&1xVQZox1r#e(>(I`B%ku*ijKs z^lf-)Z@$%M{)tO`?_6e0o6k4t)N|cq7g?@38(rKoXXT&BU#B82|86OrXS_sf?WL`I z&8|E#I~~cJ=3YAE+toK4rUt9q^m(@b`!Z#FmbdwpfNNju7NiulU-|kiuQuy%-fz~= zyDzzzd`YWbckLekJmcErx5AN8ayRBhh0m@#w9YJk)$e6T-e3P4$$Z!PxlgR#q&J(( z{T6OmxYv4lj7eI-<^=!yGgK<$_3K$ZKDmoJ)_;Afa`OGl_iJoD>!!i|9`-9Wa#|oO zL;e+U2AazT{>FQK{CEFV2Gn@6N#67)ovd{VQLVMe%Yj0iRHGN&}`d;9#VO>F%wRC3N z7ig&7+xg8?OZWMf<<~-Y&i}A?QeE-g`KA~47N1KzB|EY9+d0h{W?$}>_o>)kV6UCS z{8GNgUG?R}e|K(qUuw^|$bwpZn7#!`RHrGa1h*%r=yxn*{MFEDvBc)I$ztaD0e F0suLQdFcQE literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__branch-members.html b/classstdex_1_1parser_1_1basic__branch-members.html new file mode 100644 index 000000000..e323544ac --- /dev/null +++ b/classstdex_1_1parser_1_1basic__branch-members.html @@ -0,0 +1,105 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_branch< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_branch< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
basic_branch(const std::locale &locale) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inlineprotected
basic_branch(const std::shared_ptr< basic_tester< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inline
basic_branch(std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
hit_offset (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inlinevirtual
m_collection (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
tester_collection(const std::locale &locale) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inlineprotected
tester_collection(const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
tester_collection(std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__branch.html b/classstdex_1_1parser_1_1basic__branch.html new file mode 100644 index 000000000..e6aaf11ec --- /dev/null +++ b/classstdex_1_1parser_1_1basic__branch.html @@ -0,0 +1,267 @@ + + + + + + + +stdex: stdex::parser::basic_branch< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_branch< T > Class Template Reference
+
+
+ +

Test for any. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_branch< T >:
+
+
+ + +stdex::parser::tester_collection< T > +stdex::parser::basic_tester< T > +stdex::parser::basic_string_branch< T, T_tester > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_branch (const std::shared_ptr< basic_tester< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale())
 
basic_branch (std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::tester_collection< T >
tester_collection (const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale())
 
tester_collection (std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + +

+Public Attributes

+size_t hit_offset
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Member Functions

basic_branch (const std::locale &locale)
 
- Protected Member Functions inherited from stdex::parser::tester_collection< T >
tester_collection (const std::locale &locale)
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::tester_collection< T >
+std::vector< std::shared_ptr< basic_tester< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_branch< T >

Test for any.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_branch< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::tester_collection< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_branch< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__branch.png b/classstdex_1_1parser_1_1basic__branch.png new file mode 100644 index 0000000000000000000000000000000000000000..181cf47d2e8992b9fb8eaec3681e2e920a6faa9f GIT binary patch literal 1975 zcmb`IdsNd$7RN(GMJ(WhNC7L#i9lkp)d+}|vOEI(Krw{ZDgmr0l3JiO5HyHTx573S z0zWB8Ah3i42oOLBj|5S=)I~HH!v-QrAX0h9&@Lfj(2)MJYxitV``>o{nEB4!IcH|> zy`MW@<3a;1%%Ox<_Mqj|+C*qQcnlT1GZ`!sY++k}0 z#o+vL91oZCFnJKe%??d>k;4%&ZR7Z06o6vC@F`;Xga2ST0_Fe~v<9h26cPd89}uxO zUl*|wzCq6|$-dD?)k&+6jOk%2a`0ayta5JH#@fqi-ZMO7m;Q3Ew6|yW-mpgW+^-7r zPF7SmyOcc%C#+(!!DYWt7dlH_Hhm1t9PPT?J<{bqkTnNaIk^pbT{teMMW?0oGr}b= z1&c4X;nm-}&WC5!H}){T-GACuMd)7H4n9ud38Wg`VI1$uSn!BvKdz1$CE4(qo7*nB z5DJhlg1AA z+b7Q($j7l>Gs4K)Jw1>g@~`SP@32AVaU8LW8VA@5Uf- zP4gQE#fG8SNOp1Cy1tHX6C^B?<(TtVx$Ao-rbf|Ioo3p40u8_9XAU<5u&_NGv)xF9 z$yboAFv4^TNQL?0xBe*z{r?#Gl}vmv5R5u!MMdrf4>>_m3o_m}0txKl1cAPmD7u1% ze6NQ4%o#C}AZQJX)9bX(K;WxrYXIL@)_k>L?trbxmaj=#(Z;R(P-zGjd5e6~JugrO z6$@IQNdBxyL13)B>Y8>{hsY}L)hB_S=jXYHMntRbD?O{Dv+tn){FjDF3X!@w+ z_RwvlzCwiPV90I5^n#KGZ?g84d7hlYs((B&55{Awf{(O`6~#l1J<TEnhzfH|=}I%*QV5B~+~KW# zA9Ku}S)l&-SiVh>DGIfgNC%1ZTCZC|;WkYB0nP*A`$$At*>#p9roAxYY~qfK!D7NP zZz^nk?1VgOHAfe45OegqbI=w~OPAFEWx+m*aENqm@uN>K^-39nUxQixw`gq3Er9|& z*sj)jVQ-GT6kc?~tTd%+K5tA-E_nT9ebi07fjnITG(_r_5)&Or1o4qd^3%wmj_qBn z6WZ$L6y@1ip-0?C$+Y72cNU~GHGJC&n@sP;=|@owk8N{Tt7+D~j)7D=tK$m~PSYHu z>Y1dvyRq@H{&f#rdAKl)cPYVmY!gE}kWO0SMZHd#$vZE`6?t5_{+3VMXXNoFBcJ@A zs#8;VZo>nYYwl&wmzUjt!=Vfb*U-}F<&Va#euTVpa|(SBvsp)?3WaN%@I_@OgN$eu9Ax?e(@oe&=uayg>X0nx;H(j@I zl;+!#;Vo(@yX8D(3nA!Ng-Dri9^|)mM2x82G$V?}TEWY`dx@EF3(an60e`tq+F<0i z1OqIdRL)FBDP=oXsyBZ|C-leaWC?ot$lYV?eS0}q>5)9??T*}rhEriNGMkI*2=^@U z#$v1{M|Kk_k_h|gjc?L09d42uZOD~Yu|gqybm__1xi4GT3l*Q#I~1$#2U6p-`POdb zY6i12Vce{>cUXR`cEOic2V+H_qy3Qh8j!L6BYJmeJp~E5Ji`s;Y%6-@R60 z@3Q1U4++8h^@@?GGZAs%nyHeg+Sl + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_chemical_formula< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_chemical_formula< T >, including all inherited members.

+ + + + + + + + + + + + + + + +
basic_chemical_formula(const std::shared_ptr< basic_tester< T > > &element, const std::shared_ptr< basic_tester< T > > &digit, const std::shared_ptr< basic_tester< T > > &sign, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_chemical_formula< T >)stdex::parser::basic_chemical_formula< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
has_charge (defined in stdex::parser::basic_chemical_formula< T >)stdex::parser::basic_chemical_formula< T >
has_digits (defined in stdex::parser::basic_chemical_formula< T >)stdex::parser::basic_chemical_formula< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_chemical_formula< T >)stdex::parser::basic_chemical_formula< T >inlinevirtual
m_digit (defined in stdex::parser::basic_chemical_formula< T >)stdex::parser::basic_chemical_formula< T >protected
m_element (defined in stdex::parser::basic_chemical_formula< T >)stdex::parser::basic_chemical_formula< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_sign (defined in stdex::parser::basic_chemical_formula< T >)stdex::parser::basic_chemical_formula< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_chemical_formula< T >)stdex::parser::basic_chemical_formula< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__chemical__formula.html b/classstdex_1_1parser_1_1basic__chemical__formula.html new file mode 100644 index 000000000..84419f03a --- /dev/null +++ b/classstdex_1_1parser_1_1basic__chemical__formula.html @@ -0,0 +1,251 @@ + + + + + + + +stdex: stdex::parser::basic_chemical_formula< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_chemical_formula< T > Class Template Reference
+
+
+ +

Test for chemical formula. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_chemical_formula< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_chemical_formula (const std::shared_ptr< basic_tester< T > > &element, const std::shared_ptr< basic_tester< T > > &digit, const std::shared_ptr< basic_tester< T > > &sign, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + +

+Public Attributes

+bool has_digits
 
+bool has_charge
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_element
 
+std::shared_ptr< basic_tester< T > > m_digit
 
+std::shared_ptr< basic_tester< T > > m_sign
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_chemical_formula< T >

Test for chemical formula.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_chemical_formula< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_chemical_formula< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__chemical__formula.png b/classstdex_1_1parser_1_1basic__chemical__formula.png new file mode 100644 index 0000000000000000000000000000000000000000..124122c7f621549aebeccb8e0477b2601fa60ee6 GIT binary patch literal 853 zcmeAS@N?(olHy`uVBq!ia0y~yU}OZc12~w0q~3G`O&}#5;1lBd|Nnm=^TnI5rTvGN zTNr2-NK8NT;=q9eK=I&7msbGgI7@>3f*F8(FfeDDeT9L6>4B$O z^0Y=1arM5v)4sAZ%>5L~!f@bZCDV21SBeJ8aTfkYyQ6}j; zf+^?H8#g=+4cfasT*0xPt4ojzw0de>98am9jZhYSzD&}rW1 zC1Gq{w_}E^r?Ox{X3-Spi$C*Tp0x~M$gTdcPpECT)WX)?zZP3f===5lwZqxx&!Phk zUuN3B{^xcF|3{(G`HglA=XN&#yLMfGVczMZ3JedDKh0&CR&;&pX@&yd8O-(585sVU zLBe1LN6%x6dy#F45_Vesi4twmr{8kg$d$VnR5J-T%vM%l408en6#>+kuMps+xqaHg zj*dGK9t|u&#MGGkAz4e8+1-u*+2t)WHO@2Vtjn7k?{eg%G-pT0mM3f0z1n;0;?XG1 zGZkWPlg|`q-_M)#?E1%V=K4=&E_;;}aQs)~q<2|YS6>(1?_2xJR@XnBLqsq)YePrI z?dsY5kf6TOu<0F>O5XbVyv4svswb&CANt~RUBKhts`dvKM+Dp>uingy+sXXI?|Xy8 zjWiSIANT(5dywDwTg>$4rsT;}O%-eBsa^ddDa{ggS1IXs+>t6yo$5or9E;x`p5aw- zAn<+siM}Nhg>6)>ua?P(nYBbgN!9!DwXe?{1TSuz{b8zs#QAq~{$4J9@KU!TlKs}k z_!Z2i^JnKfZe6vsGX8UZW80(9`TJSR&dT49;#AN4v1a4-wHv?fui$lcndg08Szqas z^%G&1X|t|ZtOJUidfKa` + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_cu< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_cu< T >, including all inherited members.

+ + + + + + + + + + + + +
basic_cu(T chr, bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_cu< T >)stdex::parser::basic_cu< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_chr (defined in stdex::parser::basic_cu< T >)stdex::parser::basic_cu< T >protected
m_invert (defined in stdex::parser::basic_cu< T >)stdex::parser::basic_cu< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_cu< T >)stdex::parser::basic_cu< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__cu.html b/classstdex_1_1parser_1_1basic__cu.html new file mode 100644 index 000000000..9167befa6 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__cu.html @@ -0,0 +1,210 @@ + + + + + + + +stdex: stdex::parser::basic_cu< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_cu< T > Class Template Reference
+
+
+ +

Test for specific code unit. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_cu< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_cu (T chr, bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Protected Attributes

+T m_chr
 
+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_cu< T >

Test for specific code unit.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_cu< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__cu.png b/classstdex_1_1parser_1_1basic__cu.png new file mode 100644 index 0000000000000000000000000000000000000000..6dc86f687e5c19940cf262fc6093b59afd61bd5d GIT binary patch literal 766 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Ns3JzX3_Dj46+ec$(3f#*nj zXUN&#_8(Qx%I7#2z5VuW&&41^Es5iQ6psDu%AB?AHkYvHy^!X4D#a!*JdNBN_wBHs z^k-HTqg1rXob^%HrpqshayQXVWG9=<0X**B?qF~H?OTrVCvKU&bJ|t*#Z1UpTsLn~;TG>r7q%(~{r&vqSjNj_2kG>3!HgE3lmY;af;w>7*tYhhvcZszKpNt2#zwfo04;fZ}H+uxhhC#&4Q{NA#9(w|7FFDf$^JNi$u zob_^f=B#&G3_sj#86IrgW%~DVVfvrw%jZ9sAKP#KcZDUxgr$!B43<(~7$z(xfl;t5 z$ZO}?0F{@^q`pj=ve;4I)6#0;{T})EYs4RXT@al(amhZR7pgB)W7#uaPTy;1Zj(JT z`nTDoocQCn?;Bl=+O_U{Lut(UitXM-Z+(9$UENkFesb&L?GtD0%qSG@O;#;&+iZII zbwJL`t}7e>RLM}g&exiz;x z9(WX;X|rz9qw4efJhsYm|Bja4WRqv1@>;rb|HoR}_upk+T$@w-Hp-*VGQL=AS^3^o zmcN@OWmRua^18IO?%Z|D$^X{R5Axh~<-K*a=PyaP|7N}P)_l6|7juK~yvPR?Z7YE( OmBG{1&t;ucLK6V>34tU4 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__cu__set-members.html b/classstdex_1_1parser_1_1basic__cu__set-members.html new file mode 100644 index 000000000..9f9c0b2db --- /dev/null +++ b/classstdex_1_1parser_1_1basic__cu__set-members.html @@ -0,0 +1,102 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_cu_set< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_cu_set< T >, including all inherited members.

+ + + + + + + + + + + + + + +
basic_cu_set(_In_reads_or_z_(count) const T *set, size_t count=(size_t) -1, bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_cu_set< T >)stdex::parser::basic_cu_set< T >inline
basic_set(bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
hit_offset (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >inlinevirtual
m_invert (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_set (defined in stdex::parser::basic_cu_set< T >)stdex::parser::basic_cu_set< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_cu_set< T >)stdex::parser::basic_cu_set< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__cu__set.html b/classstdex_1_1parser_1_1basic__cu__set.html new file mode 100644 index 000000000..eadffd179 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__cu__set.html @@ -0,0 +1,224 @@ + + + + + + + +stdex: stdex::parser::basic_cu_set< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_cu_set< T > Class Template Reference
+
+
+ +

Test for any code unit from a given string of code units. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_cu_set< T >:
+
+
+ + +stdex::parser::basic_set< T > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_cu_set (_In_reads_or_z_(count) const T *set, size_t count=(size_t) -1, bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_set< T >
basic_set (bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + +

+Protected Attributes

+std::basic_string< T > m_set
 
- Protected Attributes inherited from stdex::parser::basic_set< T >
+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_set< T >
+size_t hit_offset
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_cu_set< T >

Test for any code unit from a given string of code units.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_cu_set< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+ +

Implements stdex::parser::basic_set< T >.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__cu__set.png b/classstdex_1_1parser_1_1basic__cu__set.png new file mode 100644 index 0000000000000000000000000000000000000000..8d11051768beca0bcb76c89ddee7ef370ec7e9b6 GIT binary patch literal 1133 zcmeAS@N?(olHy`uVBq!ia0vp^hk>|*gBeKX+O0PSQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Ns;c)B=-R4~4s`?~M70#8f3 znAF%w4YSt zYs`LlhU|_0S=Zz}qyFkKdurL9D==6ov2KR>HP`E`uZ#EBNXGxZeZMqGX6CGWGTZ7Z zcb;u&@eA8ji8Z(HMH{{}i+=s; zUdF1L)#0~UF9)`#TrIvX`7P*unYD{>o6+U4ugbx}Q?t(}@Xk^%Zt-1Tc6R2ruiN#{ zhh=P#kO*1%?Nvf^xWE5(#ffXLe)#1x+ctaS*?G0EZFo-F70I1iH{+hSs>AM_S9A7F zkJ7tUQl`K4vc7_N4UokPLUl%us(R<$hgQ<=6;TM7X2L!$gG1N3QF*5uSFf{B(S8^xxoaOwO6DpNitjwOjv?V+)#qZ|v{5$bU_AE<_ zvQ_Dqe<`1|-Dxo4$-Xwx?=fd2)?G3G;(Gn->*Dvhs9`L=iEXRp{sR+ET-)|Wcx6=W ztxqqXz3G@G!Q*@4Q}_y=!!`bAC1)8=4o|<7yY1T5y%$4%&TCooF=S#})5JHo?!~>5 z+-7W=s9~HNYHws3s(-sBCim34+qO?sLTAr^>6sgv5WVnVQbNE|DM_CN+g}51$*QPb zcJ|%&8)@AC|5a+V&IJZ+)NT)Oz$V@L@@}t*+OJc0y(S&6`n}q5lD%4d8@t^hl}h*e z?Z7~_qb))6!^P#LxTK5AyekjV zUTrswVa%V>y)GG;atlyHwR&Uf9{DxFkG<{FJe1bv-c%R7`s(sDfAe(rD@PJ;2+iVM z)jIW*!Ix&)=AxU=mnMJfFTHBB_gw0CgPS|dPTO&YT818d2@2cC#_+Ix|8;_6rA~Cw z_X+&zRY7i|H-IVE;)dGU@3w5he`i{$Ohg3jcDq8kl8y0p{7c&|SFg0lD|efF`Fqf5 z$Jugsy;UDn=--@M@;y&f(DK^yx{J0F%kJOa+rOdXgzVp~RvjHRi<%r=j>I2SPDboFyt=akR{0KaS$egFUf literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__date-members.html b/classstdex_1_1parser_1_1basic__date-members.html new file mode 100644 index 000000000..30e9f66be --- /dev/null +++ b/classstdex_1_1parser_1_1basic__date-members.html @@ -0,0 +1,107 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_date< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_date< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + +
basic_date(int format_mask, const std::shared_ptr< basic_integer< T > > &_day, const std::shared_ptr< basic_integer< T > > &_month, const std::shared_ptr< basic_integer< T > > &_year, const std::shared_ptr< basic_set< T > > &separator, const std::shared_ptr< basic_tester< T > > &space, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
day (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >
format enum name (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >
format (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >inlinevirtual
is_valid(size_t day, size_t month) (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >inlineprotectedstatic
m_format_mask (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_separator (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >protected
m_space (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
month (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
year (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__date.html b/classstdex_1_1parser_1_1basic__date.html new file mode 100644 index 000000000..2f575a085 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__date.html @@ -0,0 +1,280 @@ + + + + + + + +stdex: stdex::parser::basic_date< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_date< T > Class Template Reference
+
+
+ +

Test for date. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_date< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + +

+Public Types

enum class  format {
+  dmy = 0x1 +, mdy = 0x2 +, ymd = 0x4 +, ym = 0x8 +,
+  my = 0x10 +, dm = 0x20 +, md = 0x40 +
+ }
 
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_date (int format_mask, const std::shared_ptr< basic_integer< T > > &_day, const std::shared_ptr< basic_integer< T > > &_month, const std::shared_ptr< basic_integer< T > > &_year, const std::shared_ptr< basic_set< T > > &separator, const std::shared_ptr< basic_tester< T > > &space, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + +

+Public Attributes

+format format
 
+std::shared_ptr< basic_integer< T > > day
 
+std::shared_ptr< basic_integer< T > > month
 
+std::shared_ptr< basic_integer< T > > year
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + +

+Static Protected Member Functions

+static bool is_valid (size_t day, size_t month)
 
+ + + + + + + + + + +

+Protected Attributes

+int m_format_mask
 
+std::shared_ptr< basic_set< T > > m_separator
 
+std::shared_ptr< basic_tester< T > > m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_date< T >

Test for date.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_date< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_date< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__date.png b/classstdex_1_1parser_1_1basic__date.png new file mode 100644 index 0000000000000000000000000000000000000000..164b0d0f8860ffdd61c682863e65df5399898b34 GIT binary patch literal 779 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#NtQdAc};R4~4s`*PiD1)i4n z&XBXe?LYd?V##s7J?H7PMb1Y}7^QzFpN-c!y@^L#N5yi5nyu%zi%Zl`+Hrk3Y3uQ+ zI*WD1t)#<`*JS>mxa6|*OV3L$t^O(}FTCGYCVzj`+0y#$ve&=ut+O$6zI&-;FT2jy zVyC&ytK+4kmieb>vX?8xp3GB*VXG; z;o`S_mwP_j%;t07RQk`kjg0-tmloLTE}fp6xy#DSTVB>{Nr8uR?)qE7(&5&A5iwIw zEnZZ9`g6v+0xYix!=x=m?HDU>G?jBYSziuvwD0AzuNro;`GTX`o9>h6sr=4Z z8b2*nGL+$id?|B7qN&N>w`NBFE_~7cbKpnv<@46;3{{zzm>uMOs~BD^_T*=%HF?Rn zpkK|F;mgG(>ddnKS$Qe3j5D{k=fK@xRWL#rNGR}Zbe6j)tzZ(W=^R)Bob{xs}U*oVugF za*E95`L{Og``Yze`$6yTe|MPAT0iHB)0>p@x!mvJhjsez=j=Va{k@E5)k6N?2IY(D zzcEf-()}yASl?5AiKo6NFpN}J_J{qN5+oJ+pTQ_^u7`eG$WLIhW$<+Mb6Mw<&;$S` C!FTNd literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__dns__domain__char-members.html b/classstdex_1_1parser_1_1basic__dns__domain__char-members.html new file mode 100644 index 000000000..daedeae38 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__dns__domain__char-members.html @@ -0,0 +1,100 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_dns_domain_char< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_dns_domain_char< T >, including all inherited members.

+ + + + + + + + + + + + +
allow_on_edgestdex::parser::basic_dns_domain_char< T >
basic_dns_domain_char(bool allow_idn, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_dns_domain_char< T >)stdex::parser::basic_dns_domain_char< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_allow_idn (defined in stdex::parser::basic_dns_domain_char< T >)stdex::parser::basic_dns_domain_char< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_dns_domain_char< T >)stdex::parser::basic_dns_domain_char< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__dns__domain__char.html b/classstdex_1_1parser_1_1basic__dns__domain__char.html new file mode 100644 index 000000000..290a69827 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__dns__domain__char.html @@ -0,0 +1,212 @@ + + + + + + + +stdex: stdex::parser::basic_dns_domain_char< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_dns_domain_char< T > Class Template Reference
+
+
+ +

Test for valid DNS domain character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_dns_domain_char< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_dns_domain_char (bool allow_idn, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Public Attributes

+bool allow_on_edge
 Is character allowed at the beginning or an end of a DNS domain?
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+bool m_allow_idn
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_dns_domain_char< T >

Test for valid DNS domain character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_dns_domain_char< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__dns__domain__char.png b/classstdex_1_1parser_1_1basic__dns__domain__char.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6faaf693aa4b44e655d119a6979ffe5180bc58 GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0y~yU}OTa12~w01GNF?%X86CEM3r@Vg zWV@rWxcafU&;Nu4XHK2(q@eWZNhM2ui%D}r>z;}GPQS{3AN~IO&)S%OVXoGfP4Ajr z`S>w&Zlm=1kAi}dCs>+v7Oj=B>)sJo{nWxuJblh0!!3HM-Pxt;e?N0P(>o&5Br%ou znSr6XYkS?5S-bWse?7KfU1@shUrvtA;s@PAU-`2iTzE0GY+3fJzAQl(=DV76jC&zb{(14n41paklBtd*apk{C#8L!vO{?Ph4%hZxIaFJ_TFfN#wX1;5m8 z5O=q2VPMRt{-D8hVCNb8D-0h#f8u3{{>sz(Y9klJBA;2z4%%m$G+7uv$a8^1-O+JE d@ww^K?5!lP^>(~nTLjDq44$rjF6*2UngEuzapV91 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__dns__name-members.html b/classstdex_1_1parser_1_1basic__dns__name-members.html new file mode 100644 index 000000000..9ce6dfa66 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__dns__name-members.html @@ -0,0 +1,101 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_dns_name< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_dns_name< T >, including all inherited members.

+ + + + + + + + + + + + + +
basic_dns_name(bool allow_absolute, const std::shared_ptr< basic_dns_domain_char< T > > &domain_char, const std::shared_ptr< basic_tester< T > > &separator, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_dns_name< T >)stdex::parser::basic_dns_name< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_allow_absolutestdex::parser::basic_dns_name< T >protected
m_domain_char (defined in stdex::parser::basic_dns_name< T >)stdex::parser::basic_dns_name< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_separator (defined in stdex::parser::basic_dns_name< T >)stdex::parser::basic_dns_name< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_dns_name< T >)stdex::parser::basic_dns_name< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__dns__name.html b/classstdex_1_1parser_1_1basic__dns__name.html new file mode 100644 index 000000000..b14fbcaa6 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__dns__name.html @@ -0,0 +1,214 @@ + + + + + + + +stdex: stdex::parser::basic_dns_name< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_dns_name< T > Class Template Reference
+
+
+ +

Test for DNS domain/hostname. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_dns_name< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_dns_name (bool allow_absolute, const std::shared_ptr< basic_dns_domain_char< T > > &domain_char, const std::shared_ptr< basic_tester< T > > &separator, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Protected Attributes

+bool m_allow_absolute
 May DNS names end with a dot (absolute name)?
 
+std::shared_ptr< basic_dns_domain_char< T > > m_domain_char
 
+std::shared_ptr< basic_tester< T > > m_separator
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_dns_name< T >

Test for DNS domain/hostname.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_dns_name< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__dns__name.png b/classstdex_1_1parser_1_1basic__dns__name.png new file mode 100644 index 0000000000000000000000000000000000000000..9f0f93e968105080956170c629bea6d71a6fe054 GIT binary patch literal 817 zcmeAS@N?(olHy`uVBq!ia0vp^*MT^IgBeKf6%%+4q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)t@%AvYiBGa;J%@RIR*cHc z{;+kak<&i1Fx*ABDo_|ji9zAw@jVXKR^7n3CSN$jT>^q_A*=jdI z_v>G)on|lQ)?B?-{{Ni%y1(DcYI2!V{jZjk&$y-eL{8aw)w%w(qkr6YG)UuD>?~DGr zZ-0~m=Uc2-So*vq^L3jy+kVlvzYA;kYuyl!@xQlTdGV^RA3n_L3egH!Cbx_=;_~aN zika<^Kf+%vRQbD*|Ic-gOW|L**Zut#ZuYOrW0Kr;8-34L?vuSI{kr&M(vrF@MXdsd cDt@tV(%7``{r8(Zz{Jhq>FVdQ&MBb@093n~qyPW_ literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__email__address-members.html b/classstdex_1_1parser_1_1basic__email__address-members.html new file mode 100644 index 000000000..8c711fb4d --- /dev/null +++ b/classstdex_1_1parser_1_1basic__email__address-members.html @@ -0,0 +1,105 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_email_address< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_email_address< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
basic_email_address(const std::shared_ptr< basic_tester< T > > &_username, const std::shared_ptr< basic_tester< T > > &at, const std::shared_ptr< basic_tester< T > > &ip_lbracket, const std::shared_ptr< basic_tester< T > > &ip_rbracket, const std::shared_ptr< basic_tester< T > > &_ipv4_host, const std::shared_ptr< basic_tester< T > > &_ipv6_host, const std::shared_ptr< basic_tester< T > > &_dns_host, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
dns_host (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >inlinevirtual
ipv4_host (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >
ipv6_host (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >
m_at (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >protected
m_ip_lbracket (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >protected
m_ip_rbracket (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
username (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__email__address.html b/classstdex_1_1parser_1_1basic__email__address.html new file mode 100644 index 000000000..118459869 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__email__address.html @@ -0,0 +1,257 @@ + + + + + + + +stdex: stdex::parser::basic_email_address< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_email_address< T > Class Template Reference
+
+
+ +

Test for e-mail address. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_email_address< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_email_address (const std::shared_ptr< basic_tester< T > > &_username, const std::shared_ptr< basic_tester< T > > &at, const std::shared_ptr< basic_tester< T > > &ip_lbracket, const std::shared_ptr< basic_tester< T > > &ip_rbracket, const std::shared_ptr< basic_tester< T > > &_ipv4_host, const std::shared_ptr< basic_tester< T > > &_ipv6_host, const std::shared_ptr< basic_tester< T > > &_dns_host, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_tester< T > > username
 
+std::shared_ptr< basic_tester< T > > ipv4_host
 
+std::shared_ptr< basic_tester< T > > ipv6_host
 
+std::shared_ptr< basic_tester< T > > dns_host
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_at
 
+std::shared_ptr< basic_tester< T > > m_ip_lbracket
 
+std::shared_ptr< basic_tester< T > > m_ip_rbracket
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_email_address< T >

Test for e-mail address.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_email_address< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_email_address< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__email__address.png b/classstdex_1_1parser_1_1basic__email__address.png new file mode 100644 index 0000000000000000000000000000000000000000..a6dc8378d19870eeb076aa1bcd909faff30d9818 GIT binary patch literal 867 zcmeAS@N?(olHy`uVBq!ia0vp^?}0dggBeI3GrFV=q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)y=wZNeXCD;PkOv+x_K+V zXPvJuduaU4k2P1f{GXUI{~wdSC)?N0arc7Q-#`Ab%{b<3!M^K%gR=kMJ2(Hh!`;g! zcV(h}@7R(caO*l>vr2Q^XSGXSYQ8BN>ALUl_D;1;TwwIY+sJUr<;k^5`TjBGAE!ls z(3V%zd$3kAdTZu~Sh>Q~f^)nH3;#{pVLb1zSW#2P2RUW4)89>enWsP34<4{5NaAM>qa`|GnBJ z&DdUk_QoaEeMkS~{O((}_D_zdrH)+R59#`Tk59#W|E~6#WWU({=x)`e^H!*wT%UOl z76e(JCOz2^RXII1@|`ln58hga1HC22_xk&*8SnR$AKfeZ;ci8G9b3ah(@MsK7~ePs ziSWtd49BiMVQnZRN=QDyOY^RW$D|Tz-#AaH@X6tmj)fkaEuBB#@wDUm%U9QBR%PZ} zN_z)g;Q!vuXUrl_?+plf&w)p#F+x=CQ zH=e(rUz_=P?tkx1pDgnyt$Ct4S>#lt^|fsqH>vZ4v~62hvrm2VO;_pSmtsLd8WV3{ zjk)^q)=e>KE3!Pv4Ti5CH zslRF`PrbByw))Z5Y3?C=X1x1;`?&PI_mgjm-&^m^Qd(zc6Lo3p6sb>}b>)2R&!5+u z7rV_&dcUUi=I@_2tL(jSd;h6PUrztxy{CKGMDNL}UX|FZd*Y$tb@j>AC52l*Et_(w b_6vXa=3_ZKe>=MXvjc;ttDnm{r-UW|QcSXe literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__emoticon-members.html b/classstdex_1_1parser_1_1basic__emoticon-members.html new file mode 100644 index 000000000..659253003 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__emoticon-members.html @@ -0,0 +1,103 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_emoticon< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_emoticon< T >, including all inherited members.

+ + + + + + + + + + + + + + + +
apexstdex::parser::basic_emoticon< T >
basic_emoticon(const std::shared_ptr< basic_tester< T > > &_emoticon, const std::shared_ptr< basic_tester< T > > &_apex, const std::shared_ptr< basic_tester< T > > &_eyes, const std::shared_ptr< basic_tester< T > > &_nose, const std::shared_ptr< basic_set< T > > &_mouth, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_emoticon< T >)stdex::parser::basic_emoticon< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
emoticonstdex::parser::basic_emoticon< T >
eyesstdex::parser::basic_emoticon< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_emoticon< T >)stdex::parser::basic_emoticon< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_emoticon< T >)stdex::parser::basic_emoticon< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
mouthstdex::parser::basic_emoticon< T >
nosestdex::parser::basic_emoticon< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__emoticon.html b/classstdex_1_1parser_1_1basic__emoticon.html new file mode 100644 index 000000000..6f756d2c0 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__emoticon.html @@ -0,0 +1,255 @@ + + + + + + + +stdex: stdex::parser::basic_emoticon< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_emoticon< T > Class Template Reference
+
+
+ +

Test for emoticon. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_emoticon< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_emoticon (const std::shared_ptr< basic_tester< T > > &_emoticon, const std::shared_ptr< basic_tester< T > > &_apex, const std::shared_ptr< basic_tester< T > > &_eyes, const std::shared_ptr< basic_tester< T > > &_nose, const std::shared_ptr< basic_set< T > > &_mouth, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_tester< T > > emoticon
 emoticon as a whole (e.g. 😀, 🤔, 😶)
 
+std::shared_ptr< basic_tester< T > > apex
 apex/eyebrows/halo (e.g. O, 0)
 
+std::shared_ptr< basic_tester< T > > eyes
 eyes (e.g. :, ;, >, |, B)
 
+std::shared_ptr< basic_tester< T > > nose
 nose (e.g. -, o)
 
+std::shared_ptr< basic_set< T > > mouth
 mouth (e.g. ), ), (, (, |, P, D, p, d)
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_emoticon< T >

Test for emoticon.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_emoticon< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_emoticon< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__emoticon.png b/classstdex_1_1parser_1_1basic__emoticon.png new file mode 100644 index 0000000000000000000000000000000000000000..420ef04aed7b0cfb214ca5c223408231845c2f7d GIT binary patch literal 819 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)cKt<3Cru{OLYP{TGXXr&TQbuY1YN8Mhmb>#ez!X8(HW`mO(O-mBl%xNCXl zuY!!X$+zb=X76{u&E&OYs;uh7bx&@|#TbfJ-*HHd&^zf8zDfP}M~Abkud{SzPg%!5 z`H^4LqP8cH>;gRPo;iq=P<}Bo2`D6IcwJe?*$nN^PH|M6rDKB zQ!#Gxj|F3@vZcXg^O0+d?U=gVNqBJx5E2H9GBPw!alDlTl3B{B>yqX zb*Xb|ZjbjqWvqXCXWpCkSog}F8*4T#&y4!P_dd$YHE_~YE{&MoFV=c-U5#wlc$60^ z_BEHw{XWl&>3$lXVLARWK^*#O?;LkrnSTF*X24&Ddlk;dpJt}*Oy>2rnKmP4+U9~i zFJJ3SceYE)NZIKY^jj_0`%?DZe^#EC@?Q%(q{~-&?ppi*SBuKZYF`D + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_eol< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_eol< T >, including all inherited members.

+ + + + + + + + + + + +
basic_eol(bool invert=false) (defined in stdex::parser::basic_eol< T >)stdex::parser::basic_eol< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_invert (defined in stdex::parser::basic_eol< T >)stdex::parser::basic_eol< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_eol< T >)stdex::parser::basic_eol< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__eol.html b/classstdex_1_1parser_1_1basic__eol.html new file mode 100644 index 000000000..169fe4d04 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__eol.html @@ -0,0 +1,207 @@ + + + + + + + +stdex: stdex::parser::basic_eol< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_eol< T > Class Template Reference
+
+
+ +

Test for end of line. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_eol< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_eol (bool invert=false)
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Attributes

+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_eol< T >

Test for end of line.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_eol< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__eol.png b/classstdex_1_1parser_1_1basic__eol.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a7295e66a0edd3c41550f91ab5c112ed69312d GIT binary patch literal 760 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#NtEJzX3_Dj46+O|Q8O)Zvz5Q-=_q47+rm{2a65sWwrAD@iicOLUnLJM=+2p0Ckz1eLOm@$I zbE_C<8QK@vX5Xq;$^7D2HOZuE?!QwJFSakedwqLW@!k8c`LBQ6TW@3LY<;P8FT2j) zV&~rGm;1ME@tJ?(65l(QS<~+GO*-|=y=P(Jn&l~rGA)BDBYtIVSoWRqwZ(GpsZmR_ ztJkjX%-yzm)|qp!4BjrknP9w}uOenL-``Bl_^ZmX;m(nltJ{T6#s*!#z5DChugl+> zpPBFV_~M1xk9Xdxwy*5_(!AF{C9^WAIy*M+7whgjHQMiIi`38gp3Ya2eNJ+h$fTUj zrpp5&uE(9#Y(3_aXZGf4m*=GZuiy4Fc>W7^y%7Jmc+!*eU;e+b^{kt&X6tz@}CO^CGnhZn7r6ueQ624Uo9T!Pp>FrK+Y|?XToFZ(D6UbUke&KLTW*xRMBncxm5O!r;+Y{S(T}0`z4$oM||kHywlJB zep*2LKF%_sn>Sxw{}U>|hAVP!%;npY3p+oW6u(M1zVzjV`O`jy+FmL({hghc=K5Y> z@8`+Uul;Z5&#<3*?6H=n&zro?it_i9L!##0xED43Y287+VEdVn@U$#nDR?t2+wb6( zb^BwBRbF=PdvV@!!oQRMSE$%tuHXKB(ihcPUnYqx_SE+@jCvXDl^ODvafA8X?;mTQ RL;}+&gQu&X%Q~loCIF%Vb`1ak literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__fraction-members.html b/classstdex_1_1parser_1_1basic__fraction-members.html new file mode 100644 index 000000000..6e4c5efb8 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__fraction-members.html @@ -0,0 +1,101 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_fraction< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_fraction< T >, including all inherited members.

+ + + + + + + + + + + + + +
basic_fraction(const std::shared_ptr< basic_tester< T > > &_numerator, const std::shared_ptr< basic_tester< T > > &_fraction_line, const std::shared_ptr< basic_tester< T > > &_denominator, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_fraction< T >)stdex::parser::basic_fraction< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
denominator (defined in stdex::parser::basic_fraction< T >)stdex::parser::basic_fraction< T >
fraction_line (defined in stdex::parser::basic_fraction< T >)stdex::parser::basic_fraction< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_fraction< T >)stdex::parser::basic_fraction< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_fraction< T >)stdex::parser::basic_fraction< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
numerator (defined in stdex::parser::basic_fraction< T >)stdex::parser::basic_fraction< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__fraction.html b/classstdex_1_1parser_1_1basic__fraction.html new file mode 100644 index 000000000..ee1c43427 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__fraction.html @@ -0,0 +1,244 @@ + + + + + + + +stdex: stdex::parser::basic_fraction< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_fraction< T > Class Template Reference
+
+
+ +

Test for fraction. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_fraction< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_fraction (const std::shared_ptr< basic_tester< T > > &_numerator, const std::shared_ptr< basic_tester< T > > &_fraction_line, const std::shared_ptr< basic_tester< T > > &_denominator, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_tester< T > > numerator
 
+std::shared_ptr< basic_tester< T > > fraction_line
 
+std::shared_ptr< basic_tester< T > > denominator
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_fraction< T >

Test for fraction.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_fraction< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_fraction< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__fraction.png b/classstdex_1_1parser_1_1basic__fraction.png new file mode 100644 index 0000000000000000000000000000000000000000..cbe4e747580293bb1cd1f3fe7c71b0f0e21e42e8 GIT binary patch literal 813 zcmeAS@N?(olHy`uVBq!ia0vp^CxJMCgBeJ+6fWEYq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)BCyk3EpEGdLHob9xhxqK=AXgBqvjx22v=lWJFbPP)VI zxo>$`!z%r2A|MTSSZ#&$*T(Xzl zU9EL2sb6}9%xTS;FQWQV?B^{xwP}_Ln||^B==Hp7y`<-1_AC`;#-(&)zEaOJ>#V z|9LA_`_sC$w^CV8`@S=KzgEjX8cfG{v?k{ zms>BNf4|LKVRFul@@t{d_y5K0+wtxFw~xj5_pVz0vWh?B+s>V0NB3;6e^$jdDdnx9 z=cF~VJf20sAP*Kz-gulhr0;0cpBS%AVR}cGChe5=og|^ZejP_Z#cXhx^F?Pbe-XbU zu8n^(drjHSvle~ZG)QT%g1w9*=Pxs=Ui7= zt9jpkvP$IUvjv<2d9HIzpS+*^eaWM|NqY+X&)H;NTW7pu>I|D_+0)k^-n}hr`guL= z#D!(1URU`;BPPkce!RX%rPjCJvFPj6X-mF;t)B-Bfz_T$p1^SQ2m*#XFnC!0GINwI W`(uCQ>R({OX7F_Nb6Mw<&;$UFFN0tJ literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__integer-members.html b/classstdex_1_1parser_1_1basic__integer-members.html new file mode 100644 index 000000000..429aa7277 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__integer-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_integer< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_integer< T >, including all inherited members.

+ + + + + + + + + + + +
basic_integer(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer< T >)stdex::parser::basic_integer< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_integer< T >)stdex::parser::basic_integer< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__integer.html b/classstdex_1_1parser_1_1basic__integer.html new file mode 100644 index 000000000..2a692d2ca --- /dev/null +++ b/classstdex_1_1parser_1_1basic__integer.html @@ -0,0 +1,189 @@ + + + + + + + +stdex: stdex::parser::basic_integer< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_integer< T > Class Template Reference
+
+
+ +

Base class for integer testing. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_integer< T >:
+
+
+ + +stdex::parser::basic_tester< T > +stdex::parser::basic_integer10< T > +stdex::parser::basic_integer10ts< T > +stdex::parser::basic_integer16< T > +stdex::parser::basic_roman_numeral< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_integer (const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Public Attributes

+size_t value
 Calculated value of the numeral.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_integer< T >

Base class for integer testing.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_integer< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__integer.png b/classstdex_1_1parser_1_1basic__integer.png new file mode 100644 index 0000000000000000000000000000000000000000..1d1126cb089844d9fa658085f78d30c15f1b0c83 GIT binary patch literal 2389 zcmd5;YgAL&6%I%hwIMM08Wp1phe1b;BSNr%5qU`!7=>#PlnfQY2Z+37LV`0?kYxod zpdyeIQ9>gUo>3AEYE}&dAt~W016L;#0s=-tV!Rl*JvVEnYu2*;*B`w<_C05xea_x@ zpKpKr=6)0ChhMgK84icT`ycQ=g2OG+g7Fp0ML;G^Z`=u9>%KV@;)9|n7>-ZrQ}Um2 zTz77{u;%8A@h4B70DbUZ71dyEY4VZ4U>um69QbuvhGwCW%XPsFvsy1}A;^~h6-wf*z~-@s7m}~Af_eyn z%oDW|KBJfRmY2!NKGk)0yhZ$aAvHP3+`+(`UIIZ$cib&b7vQC7kXMUz6bg{ezu{`C z<072Sgj(d~)YLktMiuYK5HsW$q`%@wFk2f{s!duh(T?n|O*8Zt3r~&T)gU_>Egw04I zi$7HutzC4FT~+EVm@eHyFf(s`vREbLR{R+ExSG5xuFBXDy*>H(svA^l;jW>;s?zr5 z&-~IY<(tC;kw*U*h*XtEo*|8~JO9BC?tDBQ;WTVfRgqRK5k)LsC-@wuLIHzg=^(vv zjXnsMD@z{|aJe*lsn?~&=_C~;P^;i^->l2kTK~;65h!s&^|>M*ch1clxY&4jgSo|^ z$EPw!{93-=8eE=6ZD|HfoJ=Nel9OdQIJ4A1;LYrPcg{=#ww;WvoxWrVK5U8wa`b;E zjn*dyQo78{%$s}$3=DV;h=ROhK9Mp970(l;(?ch}JxmUXwc`nmb0Q7d2D??G zK+Av)go~Su_gIw}wqk0_tYouG=bmnPpXkA#s$59SoOg5HcJ8Q`%+AV?MkgfnKQesuySsJ7Av426kpg0MYjO9u|EUG=@VV76*veBhe$JwRhCUB`fV)|fwc z>cWnZK9N$2|aOHK($+vaZlWpAv7qARNM9hR{Uh3!nupifJuYP!h-254;f4H_>?Sb5%* zq{#~_9%W3ZSr~j>NG&}EM%ydYAU813GTyo`O^_r4NWN3>G#{By^@Ey^BGlYerj$e} z<>hjaYMKLPhS)@Y6lq{nS#CC=7Tb*z{#J4(1+^Hz;9!}JxrJq23^>TLE-g>uiea$K zgv4@!Qi*Bfu{Al)=D)xlL-2npgMaIdYb45Kd$M&Lf`I?w zK+4q!sBeWoMM{O5y+z1fqUt{P_9i%^Cm)b!S3&&V2|qv$D+L`isIRTQ|LL9c)fab- z-fNkRjwG(+0Hr$in9d-}XjX3zu0u-W&*?LF4|BP^=s&bqA|C?4X&c_1`QV)2$72q= zwmryz`W8jB8$HKo&EWmu;3dYMH|P;Q1kuENwp2Pzq==l2=ma_V4 zvPX}`HsH%Y67lrqcE5{=7g3S6>&P_z{@EiUU!-j(;B4E4bbaRD;c&u0bL+KKA^SzA zT)ZpwWe{|&^Qwu+trR9Azuof-kz09nmsVB64oO_&=^uQl>>5-JXHcDs$lV!NmAZ6-(+H4I?{=?5&jKrd#jn?Qx?Vs~uLa&tSBl z#t+qXjEjX2TIEe*N#{ZcLb;B}JFf=U1t4U0R=A#8vp|Y+W1bh>APDG9SwEVSWs;LB z($~sqmGa?U{IAs*MGK?p4vuH&kQ_?*(9lSmT~em~Y-E0B3KrVn8#IGIDGh31-ZAO| zcF5vN@`H+KLlQ}dZ(>Ol)K z9^#{SjPe<606%jXyG*ODo^`xAB^-`A9<4mS!=pUxZJgouu|F#0k%g@8XVbY(53T&Z zuk>N>6*ll7=)vsIrKo)g4X)!lsE`%0dsM?=^K9AsesQeEmD0d9>ieqdmCRatuL6Sw zXih^eVhBR>NyL~=G7ZufP)d=3yYQ)&;#hpO z5e}VaxAVEar|3~oU+O4YgtBVTXIoIa60|vZA?_%J1274z&WV5%ihobM+x)igASihA zydwbjXUJF~6ZE{Z*%`B@8gcdlH3Bziu`ai^(ucC%DyRRz+;$F1{Ar{#r8n=0C-?!v O`TGQV*Y5xJhkpT4lc|va literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__integer10-members.html b/classstdex_1_1parser_1_1basic__integer10-members.html new file mode 100644 index 000000000..330d90cf4 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__integer10-members.html @@ -0,0 +1,110 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_integer10< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_integer10< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
basic_integer(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer< T >)stdex::parser::basic_integer< T >inline
basic_integer10(const std::shared_ptr< basic_tester< T > > &digit_0, const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_2, const std::shared_ptr< basic_tester< T > > &digit_3, const std::shared_ptr< basic_tester< T > > &digit_4, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_6, const std::shared_ptr< basic_tester< T > > &digit_7, const std::shared_ptr< basic_tester< T > > &digit_8, const std::shared_ptr< basic_tester< T > > &digit_9, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_integer< T >)stdex::parser::basic_integer< T >inlinevirtual
m_digit_0 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_digit_1 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_digit_2 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_digit_3 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_digit_4 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_digit_5 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_digit_6 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_digit_7 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_digit_8 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_digit_9 (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__integer10.html b/classstdex_1_1parser_1_1basic__integer10.html new file mode 100644 index 000000000..6dfeedf03 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__integer10.html @@ -0,0 +1,246 @@ + + + + + + + +stdex: stdex::parser::basic_integer10< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_integer10< T > Class Template Reference
+
+
+ +

Test for decimal integer. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_integer10< T >:
+
+
+ + +stdex::parser::basic_integer< T > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_integer10 (const std::shared_ptr< basic_tester< T > > &digit_0, const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_2, const std::shared_ptr< basic_tester< T > > &digit_3, const std::shared_ptr< basic_tester< T > > &digit_4, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_6, const std::shared_ptr< basic_tester< T > > &digit_7, const std::shared_ptr< basic_tester< T > > &digit_8, const std::shared_ptr< basic_tester< T > > &digit_9, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_integer< T >
basic_integer (const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_digit_0
 
+std::shared_ptr< basic_tester< T > > m_digit_1
 
+std::shared_ptr< basic_tester< T > > m_digit_2
 
+std::shared_ptr< basic_tester< T > > m_digit_3
 
+std::shared_ptr< basic_tester< T > > m_digit_4
 
+std::shared_ptr< basic_tester< T > > m_digit_5
 
+std::shared_ptr< basic_tester< T > > m_digit_6
 
+std::shared_ptr< basic_tester< T > > m_digit_7
 
+std::shared_ptr< basic_tester< T > > m_digit_8
 
+std::shared_ptr< basic_tester< T > > m_digit_9
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_integer< T >
+size_t value
 Calculated value of the numeral.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_integer10< T >

Test for decimal integer.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_integer10< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__integer10.png b/classstdex_1_1parser_1_1basic__integer10.png new file mode 100644 index 0000000000000000000000000000000000000000..a892a32e78d7e6eb40b9f74e2168f2e294e1f375 GIT binary patch literal 1228 zcmeAS@N?(olHy`uVBq!ia0vp^mw~v0gBeJAP0+g!q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)|^I1RD|os+48UOJ0B;#EanvBWxL?}S?+Divfk=WHeE6A%pu?Pi>+1) ze%o{7$t~G8I#z01r>6f-X_lY2@7{8kYh^m_*Ex!xKy? zh&t0}8T%bNJ)|0R9nwXF#?O&*`-CC&G^w7;oS z<*)V(AVX}~oZ@-j3?GcE7!IV&n(*@D4E`*qWvrQ2DVUSp@$K4ZRbU!->z_x_lKJUMCxvSh{+-&A zT=i(ZWyF`7!s@)cI*+6G|FKd3HF4p~R~x?dKg}&ueUo=fBCNk05!#%$&)gI=y(oEY zLYbGl{>+>8XByvrVDo7Y-+k`b63aPTS6A;{`6>7E4a1c$?moJ@d7;$2z1OmL_AoE2 zUAFIPACIr}{dAw%D|_$h-uV(z9-zFdWoBzn(F$;AzyI#JzoKH#UjNQDZ#$M{x9qev z<9)U!ewTl9$g1C0bpK8My=DHQ#Jjf-UrQ=G^Kw^s_zK_iuj7tNT(_OHsx|~39_YA7o(w1|so{?NfuiCUbhaq-e2D?&zoo6Ozj={hU<{ zOz5kb^B?72_I4DWxNNGHy3(RA%|1#>>Q$L>)BgVXuB7X{?D_21ue+~(zyAE&(bSsP z?;XvOjg3t1iZ8je>sS7vcguPcU*1XaQrapyOJ&imk0FQ5ipyMlOWI7A%)NB+`^INo|_xbS@3>#Z^S;c373z45ZM zSKPMyEK`{gXPBSmGTmVFghamR?mkc5*MIF^ieG)XbF07Sl5NVf)(JlQcEe=G<=U5a zyg@791)u+Nu=bY!#SQP?CT1I2KP$PrTKmef=cVhDdS2h_et-FQl%CS3sQCJ=E-rd6 zZd>d>xTW^r@q2CYih>jQpXALym*DE6_exkzaN_<22||J&*Mo^x&81VGU9z9Ac>QIr THurR3xx?V;>gTe~DWM4f%gA5; literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__integer10ts-members.html b/classstdex_1_1parser_1_1basic__integer10ts-members.html new file mode 100644 index 000000000..05b20c3cd --- /dev/null +++ b/classstdex_1_1parser_1_1basic__integer10ts-members.html @@ -0,0 +1,104 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_integer10ts< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_integer10ts< T >, including all inherited members.

+ + + + + + + + + + + + + + + + +
basic_integer(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer< T >)stdex::parser::basic_integer< T >inline
basic_integer10ts(const std::shared_ptr< basic_integer10< T > > &digits, const std::shared_ptr< basic_set< T > > &separator, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer10ts< T >)stdex::parser::basic_integer10ts< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
digit_countstdex::parser::basic_integer10ts< T >
has_separatorsstdex::parser::basic_integer10ts< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_integer10ts< T >)stdex::parser::basic_integer10ts< T >inlinevirtual
m_digits (defined in stdex::parser::basic_integer10ts< T >)stdex::parser::basic_integer10ts< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_separator (defined in stdex::parser::basic_integer10ts< T >)stdex::parser::basic_integer10ts< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_integer10ts< T >)stdex::parser::basic_integer10ts< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__integer10ts.html b/classstdex_1_1parser_1_1basic__integer10ts.html new file mode 100644 index 000000000..ca971fed2 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__integer10ts.html @@ -0,0 +1,262 @@ + + + + + + + +stdex: stdex::parser::basic_integer10ts< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_integer10ts< T > Class Template Reference
+
+
+ +

Test for decimal integer possibly containing thousand separators. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_integer10ts< T >:
+
+
+ + +stdex::parser::basic_integer< T > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_integer10ts (const std::shared_ptr< basic_integer10< T > > &digits, const std::shared_ptr< basic_set< T > > &separator, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_integer< T >
basic_integer (const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + +

+Public Attributes

+size_t digit_count
 Total number of digits in integer.
 
+bool has_separators
 Did integer have any separators?
 
- Public Attributes inherited from stdex::parser::basic_integer< T >
+size_t value
 Calculated value of the numeral.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_integer10< T > > m_digits
 
+std::shared_ptr< basic_set< T > > m_separator
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_integer10ts< T >

Test for decimal integer possibly containing thousand separators.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_integer10ts< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_integer< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_integer10ts< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__integer10ts.png b/classstdex_1_1parser_1_1basic__integer10ts.png new file mode 100644 index 0000000000000000000000000000000000000000..cf7ed1de2aebb5712928e93031feee7ddbe6943a GIT binary patch literal 1245 zcmeAS@N?(olHy`uVBq!ia0vp^cYwHqgBeKfo?QwOkPh$(asB`QKalz2&DYZYL(44; zGz%oApLucMzyY9m@TAKtfO4EAL4LsuKt33lGtIujz`&B>>Eakt!T5IW>%P|tJT2{= zAwU1l|FL8zgV}_*^Y5f~CS76ZJDYysXLoAkw8++0mFFP`CN6PjmGP{)Vj2@vukv$V z72hmFYlFU7-{d{xUVVSy5%jWhN4hQF!*`uGH*J3PF0+2!-*u0x|Nq$SzePFr^4Y|f z^KUQY3HfjO$-SUc=j{QnC0RdTMr4?#yI*lhj%ZI=lyx)s=j8(N$F@!ZV^H!pwxHb%+&^y^EkNAGaY<}cQ_+f~ea)V=(jO~T!*N;f@K zgYz%5BE?qvR$tvT#X~ga>F4PAOq2FpJ05R8>CgIK%mvX`cUZ&#{hIXLRR z&Soxd&vPpqls)^oEGB(fVF(ZEjYc1G_H6m@QMBTIqw>kdID`6(Tdlj*Q%;{+wY&ZA z&TrfM-v534-tJ;wiLZJ4()rhS-j+@DzkF&##UBp6iA!Z8Izx2rWk0UAv|gkpby(<< z-^&;7UFYnJr~RJ8yyMM1y&Xm?&*i>+6_>rL=5~!)fmW6C!gawRCtqoHAbOdk^F(^mN&zq;wem({ACSMU86neb$*-M?QGp9ufbIj4U( z_i9qXiZ2IMPlkV;UY_UTJIVj0uf?Q4zrjHQ3Y(~h(^4bVL>c}p$YU^Aoz}MduG+HM zl6k4Kr{`tuSTT*^K`PaEd5+)o%#RJ8<)2j*;ui@i&@yQqKtRCi*_tlxi?=NHcfwZ@to>JL + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_integer16< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_integer16< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
basic_integer(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer< T >)stdex::parser::basic_integer< T >inline
basic_integer16(const std::shared_ptr< basic_tester< T > > &digit_0, const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_2, const std::shared_ptr< basic_tester< T > > &digit_3, const std::shared_ptr< basic_tester< T > > &digit_4, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_6, const std::shared_ptr< basic_tester< T > > &digit_7, const std::shared_ptr< basic_tester< T > > &digit_8, const std::shared_ptr< basic_tester< T > > &digit_9, const std::shared_ptr< basic_tester< T > > &digit_10, const std::shared_ptr< basic_tester< T > > &digit_11, const std::shared_ptr< basic_tester< T > > &digit_12, const std::shared_ptr< basic_tester< T > > &digit_13, const std::shared_ptr< basic_tester< T > > &digit_14, const std::shared_ptr< basic_tester< T > > &digit_15, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_integer< T >)stdex::parser::basic_integer< T >inlinevirtual
m_digit_0 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_1 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_10 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_11 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_12 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_13 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_14 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_15 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_2 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_3 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_4 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_5 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_6 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_7 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_8 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_digit_9 (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__integer16.html b/classstdex_1_1parser_1_1basic__integer16.html new file mode 100644 index 000000000..eb85cbbaa --- /dev/null +++ b/classstdex_1_1parser_1_1basic__integer16.html @@ -0,0 +1,264 @@ + + + + + + + +stdex: stdex::parser::basic_integer16< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_integer16< T > Class Template Reference
+
+
+ +

Test for hexadecimal integer. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_integer16< T >:
+
+
+ + +stdex::parser::basic_integer< T > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_integer16 (const std::shared_ptr< basic_tester< T > > &digit_0, const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_2, const std::shared_ptr< basic_tester< T > > &digit_3, const std::shared_ptr< basic_tester< T > > &digit_4, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_6, const std::shared_ptr< basic_tester< T > > &digit_7, const std::shared_ptr< basic_tester< T > > &digit_8, const std::shared_ptr< basic_tester< T > > &digit_9, const std::shared_ptr< basic_tester< T > > &digit_10, const std::shared_ptr< basic_tester< T > > &digit_11, const std::shared_ptr< basic_tester< T > > &digit_12, const std::shared_ptr< basic_tester< T > > &digit_13, const std::shared_ptr< basic_tester< T > > &digit_14, const std::shared_ptr< basic_tester< T > > &digit_15, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_integer< T >
basic_integer (const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_digit_0
 
+std::shared_ptr< basic_tester< T > > m_digit_1
 
+std::shared_ptr< basic_tester< T > > m_digit_2
 
+std::shared_ptr< basic_tester< T > > m_digit_3
 
+std::shared_ptr< basic_tester< T > > m_digit_4
 
+std::shared_ptr< basic_tester< T > > m_digit_5
 
+std::shared_ptr< basic_tester< T > > m_digit_6
 
+std::shared_ptr< basic_tester< T > > m_digit_7
 
+std::shared_ptr< basic_tester< T > > m_digit_8
 
+std::shared_ptr< basic_tester< T > > m_digit_9
 
+std::shared_ptr< basic_tester< T > > m_digit_10
 
+std::shared_ptr< basic_tester< T > > m_digit_11
 
+std::shared_ptr< basic_tester< T > > m_digit_12
 
+std::shared_ptr< basic_tester< T > > m_digit_13
 
+std::shared_ptr< basic_tester< T > > m_digit_14
 
+std::shared_ptr< basic_tester< T > > m_digit_15
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_integer< T >
+size_t value
 Calculated value of the numeral.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_integer16< T >

Test for hexadecimal integer.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_integer16< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__integer16.png b/classstdex_1_1parser_1_1basic__integer16.png new file mode 100644 index 0000000000000000000000000000000000000000..e957f082f9664e98e758dbfaf71652b4bd98e724 GIT binary patch literal 1238 zcmeAS@N?(olHy`uVBq!ia0vp^mw~v0gBeJAP0+g!q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)}>xHn_tYh5;$+}WZpQN+FHNPHEVU;uX9ZPTqf;vuD*2suA}#N`n!wqzP=~8 zL2R?p^4D>(v(03$?u~jAQn0l*{#wzbnzifqN2&bW|K+q#wxUG3faks7Il`X5!VM-a zsb>W;t{<9Ge6E<2q0Wt;VTO;ek*(ZkN8b}$6nxoDm4mO?GW_7?Qe*hAK7onhKM9P6 z+ovp_pKS4&6s$SJeGdBfIFG^mUQ0C=+ zzx>$`L(ba|d1rKm?>={IiRZanSNGlv`MK@(4a1c$?moJ@d7;#^xYwoodzhCcFWYyu zkH=T~e!9=>mA&_L?|ca<4^ZC4Ys@YAcHt&aXz#OE|C{u&;`bb($mq^x*)2P5fuX%F zewTmq+K}%nqyMOXe|ch2;$7=Q*OJ1XmE2veeP!A6()CF_ujM?i+O2x3@-r&Feyhi) zro7`nU6*ZT_%bt@Tg|ghZT<5SHt$LAOPV`XVzuF+k_Zf_oh%IYi`f}`mT}IM>;Jhx zEhTEgvgTP6HDAdw{9$DkX7~|qz}NtcEut9*a+glIl;R{LIMeH(iqfNaFwvIzzUHiD z(S_ctjpiS>y#-_v!!s`TpoOo|*IV*R9u&x*tFPw)pgq zYwKBV_MAO&;Y-AXTi34E3xi_f`?;T=TwT_11q-bNMu*a>smpD1jMLq(xTHro-_n%* zdt+wV>^{fY`_3jG4%u_7)QnH+H6%jJo?kIu`JyzJb!+LOdES#&+{xbi?t1=#k~3Gf z-cm@K zCb7zA-fp~|u<7@uTB)3+yZmi0v*U`Hd)@CZ|BljA`UHv^7Z<%3w=MP`+*14R_`SCH zFu{rZPu|Trm*DE6_exkzaN_<22||J&*Mo^x&81VGU9yh|yZ$I(&K^(+#^CAd=d#Wz Gp$Pz(I$*s3 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__ipv4__address-members.html b/classstdex_1_1parser_1_1basic__ipv4__address-members.html new file mode 100644 index 000000000..8e24313c8 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__ipv4__address-members.html @@ -0,0 +1,111 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_ipv4_address< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_ipv4_address< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
basic_ipv4_address(const std::shared_ptr< basic_tester< T > > &digit_0, const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_2, const std::shared_ptr< basic_tester< T > > &digit_3, const std::shared_ptr< basic_tester< T > > &digit_4, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_6, const std::shared_ptr< basic_tester< T > > &digit_7, const std::shared_ptr< basic_tester< T > > &digit_8, const std::shared_ptr< basic_tester< T > > &digit_9, const std::shared_ptr< basic_tester< T > > &separator, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
componentsstdex::parser::basic_ipv4_address< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >inlinevirtual
m_digit_0 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_digit_1 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_digit_2 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_digit_3 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_digit_4 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_digit_5 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_digit_6 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_digit_7 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_digit_8 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_digit_9 (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_separator (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
valuestdex::parser::basic_ipv4_address< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__ipv4__address.html b/classstdex_1_1parser_1_1basic__ipv4__address.html new file mode 100644 index 000000000..e2b8e1f09 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__ipv4__address.html @@ -0,0 +1,277 @@ + + + + + + + +stdex: stdex::parser::basic_ipv4_address< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_ipv4_address< T > Class Template Reference
+
+
+ +

Test for IPv4 address. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_ipv4_address< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_ipv4_address (const std::shared_ptr< basic_tester< T > > &digit_0, const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_2, const std::shared_ptr< basic_tester< T > > &digit_3, const std::shared_ptr< basic_tester< T > > &digit_4, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_6, const std::shared_ptr< basic_tester< T > > &digit_7, const std::shared_ptr< basic_tester< T > > &digit_8, const std::shared_ptr< basic_tester< T > > &digit_9, const std::shared_ptr< basic_tester< T > > &separator, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Public Attributes

+stdex::interval< size_t > components [4]
 Individual component intervals.
 
+struct in_addr value
 IPv4 address value.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_digit_0
 
+std::shared_ptr< basic_tester< T > > m_digit_1
 
+std::shared_ptr< basic_tester< T > > m_digit_2
 
+std::shared_ptr< basic_tester< T > > m_digit_3
 
+std::shared_ptr< basic_tester< T > > m_digit_4
 
+std::shared_ptr< basic_tester< T > > m_digit_5
 
+std::shared_ptr< basic_tester< T > > m_digit_6
 
+std::shared_ptr< basic_tester< T > > m_digit_7
 
+std::shared_ptr< basic_tester< T > > m_digit_8
 
+std::shared_ptr< basic_tester< T > > m_digit_9
 
+std::shared_ptr< basic_tester< T > > m_separator
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_ipv4_address< T >

Test for IPv4 address.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_ipv4_address< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_ipv4_address< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__ipv4__address.png b/classstdex_1_1parser_1_1basic__ipv4__address.png new file mode 100644 index 0000000000000000000000000000000000000000..f586f05e67d24e71f831d13fe6cc1fa54e4c48fc GIT binary patch literal 854 zcmeAS@N?(olHy`uVBq!ia0vp^uYfp!gBeIFNK57eDd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5C84jcfA2T!`Z0w~8>666=m0OW&#In(Sb3=B*UJzX3_Dj46+eYx(n0#8eO zXUN&#_8)zvgl;>`(p&yKMo`Nw(eRjj_iypbCcf7N)F$m|V$<^cwye=>(%zSvS48Yo ze$I>HTeWY~1Dqs6M^x40ybL~$%+`VkF z*LushvXFxcTjFoCPue$Uf!ZanHlGxYYTfp?$4<>N2$1}xI#c4*yOVZ;U;il0Up#H~ zZ&!2S^22K-qqk;$h<%rry5T&p&%!#U-)C6At$uEE!Qrl3&b0TLv)EMnqoigmZ(5#V z+hXhQ{dB2z|00|BrxrQ!ve%cadirSh^8C43N^9Q)9@`SKXL(V1*Y__Mqu0);`>-}I zeB;cJ-_<=o-=-q}`f+{qq(8iW?N@xiQ(VXE`N_67 zSoP#RlK{_6=DZ=3-uN27GV#5v%EGXJy);9N^L59)cl8ce$zGZHMQe??ldPl!!>`K@ ztPMa7j0=Do7+&}?i!xLZCA4qFl%QR06I5PuNv)W4Wj5O?m9NW~OwH|%4QF=VqQOw!W8lJ7>RVOtqfO ze@Sh9@Yy4~b92upUr~uXIl+@Fb$xF3?TDMgY+BCIn+hH@mrQxQzuTO}l`d5yzC0@bq_ePo^d6hr73Q?c^YUU)+;8OW$~l<$_&fZ!uC6CufDamzN!*=GxqqF5W6+6 z*0TNA-*fd^p6uSMMNhBaUse63lY;J7&U5n?#*=b)m-ZRLVoXxLm9ClMjXH# Oz~JfX=d#Wzp$P!PC6#jk literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__ipv6__address-members.html b/classstdex_1_1parser_1_1basic__ipv6__address-members.html new file mode 100644 index 000000000..5ac132565 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__ipv6__address-members.html @@ -0,0 +1,119 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_ipv6_address< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_ipv6_address< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
basic_ipv6_address(const std::shared_ptr< basic_tester< T > > &digit_0, const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_2, const std::shared_ptr< basic_tester< T > > &digit_3, const std::shared_ptr< basic_tester< T > > &digit_4, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_6, const std::shared_ptr< basic_tester< T > > &digit_7, const std::shared_ptr< basic_tester< T > > &digit_8, const std::shared_ptr< basic_tester< T > > &digit_9, const std::shared_ptr< basic_tester< T > > &digit_10, const std::shared_ptr< basic_tester< T > > &digit_11, const std::shared_ptr< basic_tester< T > > &digit_12, const std::shared_ptr< basic_tester< T > > &digit_13, const std::shared_ptr< basic_tester< T > > &digit_14, const std::shared_ptr< basic_tester< T > > &digit_15, const std::shared_ptr< basic_tester< T > > &separator, const std::shared_ptr< basic_tester< T > > &scope_id_separator=nullptr, const std::shared_ptr< basic_tester< T > > &_scope_id=nullptr, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
componentsstdex::parser::basic_ipv6_address< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >inlinevirtual
m_digit_0 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_1 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_10 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_11 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_12 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_13 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_14 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_15 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_2 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_3 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_4 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_5 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_6 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_7 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_8 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_digit_9 (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_scope_id_separator (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
m_separator (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_ipv6_address< T >)stdex::parser::basic_ipv6_address< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
scope_idstdex::parser::basic_ipv6_address< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
valuestdex::parser::basic_ipv6_address< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__ipv6__address.html b/classstdex_1_1parser_1_1basic__ipv6__address.html new file mode 100644 index 000000000..632816ec3 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__ipv6__address.html @@ -0,0 +1,302 @@ + + + + + + + +stdex: stdex::parser::basic_ipv6_address< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_ipv6_address< T > Class Template Reference
+
+
+ +

Test for IPv6 address. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_ipv6_address< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_ipv6_address (const std::shared_ptr< basic_tester< T > > &digit_0, const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_2, const std::shared_ptr< basic_tester< T > > &digit_3, const std::shared_ptr< basic_tester< T > > &digit_4, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_6, const std::shared_ptr< basic_tester< T > > &digit_7, const std::shared_ptr< basic_tester< T > > &digit_8, const std::shared_ptr< basic_tester< T > > &digit_9, const std::shared_ptr< basic_tester< T > > &digit_10, const std::shared_ptr< basic_tester< T > > &digit_11, const std::shared_ptr< basic_tester< T > > &digit_12, const std::shared_ptr< basic_tester< T > > &digit_13, const std::shared_ptr< basic_tester< T > > &digit_14, const std::shared_ptr< basic_tester< T > > &digit_15, const std::shared_ptr< basic_tester< T > > &separator, const std::shared_ptr< basic_tester< T > > &scope_id_separator=nullptr, const std::shared_ptr< basic_tester< T > > &_scope_id=nullptr, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + +

+Public Attributes

+stdex::interval< size_t > components [8]
 Individual component intervals.
 
+struct in6_addr value
 IPv6 address value.
 
+std::shared_ptr< basic_tester< T > > scope_id
 Scope ID (e.g. NIC index with link-local addresses)
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_digit_0
 
+std::shared_ptr< basic_tester< T > > m_digit_1
 
+std::shared_ptr< basic_tester< T > > m_digit_2
 
+std::shared_ptr< basic_tester< T > > m_digit_3
 
+std::shared_ptr< basic_tester< T > > m_digit_4
 
+std::shared_ptr< basic_tester< T > > m_digit_5
 
+std::shared_ptr< basic_tester< T > > m_digit_6
 
+std::shared_ptr< basic_tester< T > > m_digit_7
 
+std::shared_ptr< basic_tester< T > > m_digit_8
 
+std::shared_ptr< basic_tester< T > > m_digit_9
 
+std::shared_ptr< basic_tester< T > > m_digit_10
 
+std::shared_ptr< basic_tester< T > > m_digit_11
 
+std::shared_ptr< basic_tester< T > > m_digit_12
 
+std::shared_ptr< basic_tester< T > > m_digit_13
 
+std::shared_ptr< basic_tester< T > > m_digit_14
 
+std::shared_ptr< basic_tester< T > > m_digit_15
 
+std::shared_ptr< basic_tester< T > > m_separator
 
+std::shared_ptr< basic_tester< T > > m_scope_id_separator
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_ipv6_address< T >

Test for IPv6 address.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_ipv6_address< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_ipv6_address< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__ipv6__address.png b/classstdex_1_1parser_1_1basic__ipv6__address.png new file mode 100644 index 0000000000000000000000000000000000000000..8a40ddfa392a8ce4fb83a2ccadeea3345dfbeb14 GIT binary patch literal 864 zcmeAS@N?(olHy`uVBq!ia0vp^uYfp!gBeIFNK57eDd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5C84jcfA2T!`Z0w~8>666=m0OW&#In(Sb3=B-KJzX3_Dj46+eO>fgfv08q zSD*Cz|2z91CvbBL9rwLFkI^dUtgC{Zz^Qnh)0=t}byO^y)U-UmE$j4}wD+azl_z#8 zKW(>)t@xF6JbC@gf9{jkzc?T0dFf^8mF{RO=e@GG%8FL!y}tK)>GZAt@12`}+u`nI zle=PDzSV`EJFs>AT;`LT<}6UVO#;3P&JO)%;wu}}DaD(!^nh@b zf8zPeK|H%EL_hA+?&i80`)6@<@45b|cBQL3w-mj(w0!A@d5>PUeE)JSdhLw54{P5o zym98hZ#$i}a>;hgx2NsR)Mk#pReJ93%erUB+f?Siej6V>=@0K;`xVjeEcu-${h9Y{ z?WC0aSu0d-&IX5tXldlMR1U@i?_YB>9J^q#B0m1`hQ8)qlll%>3A{RUfZ@V?H7$lO z%R0Fj_GT_(ascXNxB%2iSm=Y}(kYiDoF*+1GznB)Y3>{1`O25k)coGDeBFSrSKYE_ zOqny`CFZ{OoG(R&mRK{O22FkF7fUJWOAG-QVwJ|L(B8nz!sF z-$TFZ==*J}WN$tBeI;kx`^$5@CtWVSq7r#BZ}O896?_HB;#oisH$ zbN;kLr+bzQ&pXk&J?c;P!d=^?Y~$-!A6>lO_`|+MORpxMNlz$#=j(5@;qA5i$L(&W zKA3Q0eR_hY)y3QUw@rHTwNX`d<;wjIcQFVdQ&MBb@0Q_mPVgLXD literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html new file mode 100644 index 000000000..07da722ef --- /dev/null +++ b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html @@ -0,0 +1,98 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_ipv6_scope_id_char< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_ipv6_scope_id_char< T >, including all inherited members.

+ + + + + + + + + + +
basic_ipv6_scope_id_char(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_ipv6_scope_id_char< T >)stdex::parser::basic_ipv6_scope_id_char< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_ipv6_scope_id_char< T >)stdex::parser::basic_ipv6_scope_id_char< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html new file mode 100644 index 000000000..e5fed3e4e --- /dev/null +++ b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html @@ -0,0 +1,200 @@ + + + + + + + +stdex: stdex::parser::basic_ipv6_scope_id_char< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_ipv6_scope_id_char< T > Class Template Reference
+
+
+ +

Test for valid IPv6 address scope ID character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_ipv6_scope_id_char< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_ipv6_scope_id_char (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_ipv6_scope_id_char< T >

Test for valid IPv6 address scope ID character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_ipv6_scope_id_char< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.png b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.png new file mode 100644 index 0000000000000000000000000000000000000000..f5ba1c202e727e2c19ef18609f226f8172748512 GIT binary patch literal 980 zcmeAS@N?(olHy`uVBq!ia0y~yU=#$h12~w0B&X%ZgFs3;z$e7@|Ns9$=8HF9OZyKk zw=mEwkeGhv#eo9{fa1ZEF0TNoE(!7rW&rZRz?^CJ6$S?8cuyC{kP61Pb04mIti{vP z-dSSu{{Ink-^nu!GyNxLZQrZy{@AR6`PtzE@jjPLrk3)nP13nNU&-lGh>ORpE)LIN zLB-5nK1*)Od&X^E%-6On=3~W`vU-nCi)vK`Cz({wJ@H#HRiwQvdbiU}h5hF7Z97YDYjwp*#jbt7hokxMzqP)1@0~Z^xhwmZ!u7>(8ctjjivMcb zzRv9PJdd)Dd6%{XztowWt)6}E%bpFE)olHZ9ZN4RmO0t{-nQ1lT}twn`eXI%TdyUP zZoST*t9(e?`U% zD?1oom@;dsFgUrgFx=^4X9yN#Owdwd@Ns2n0LmGN3NkEHVmc7w!Y~7IgR`MA1FTG`=YBr52+%q2y4kMGMB%?tBNX8BinT4nY()!n;Zwb^6R z&3F|h&+~7;UH!VyU#RklfJ@#Ev9!&)3w7WBZ7=@2chA4OQpaXFU(a2)O~d>DMH819 zyLMPdrm`Cyt9z0or!SBhl+nA+bJ^cqZlzmAy{0^UhAE$<8@_HhCUEAWmfR8PdcP&> z-*o)AanIlDRbFEIr59PX&o%o$Z>^|3AQJN~{m$>7SNZs=?_a)M*6X@`**%N1YgPBX z%I1sZ-|l+;Z$nnjiisU_JNFBAzPRK#%j>mJiTdja%QB@vQEQkV{AsT8q(>6X)x8~G zYn0q)iQM}AakA;#(>#W6PYXZy`2IPi(Qm%;aqSZF#Y?zXUi+k9FDEunf=Y@ zlWNWHb)AmKXTSM=JABf-+pp(M`Z8(m+fV#03MapCDxKab5vh9eimCUcne&Zqe!Mvy zC>z@6VKi4!$@Bj{P_QZ~oeXhNnc3B$a@l9e)@!F8{p1h*{8)9VjHV4R|1o&F`njxg HN@xNA-)GMi literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__iterations-members.html b/classstdex_1_1parser_1_1basic__iterations-members.html new file mode 100644 index 000000000..ad9c2526b --- /dev/null +++ b/classstdex_1_1parser_1_1basic__iterations-members.html @@ -0,0 +1,102 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_iterations< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_iterations< T >, including all inherited members.

+ + + + + + + + + + + + + + +
basic_iterations(const std::shared_ptr< basic_tester< T > > &el, size_t min_iterations=0, size_t max_iterations=(size_t) -1, bool greedy=true) (defined in stdex::parser::basic_iterations< T >)stdex::parser::basic_iterations< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_elstdex::parser::basic_iterations< T >protected
m_greedystdex::parser::basic_iterations< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_max_iterationsstdex::parser::basic_iterations< T >protected
m_min_iterationsstdex::parser::basic_iterations< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_iterations< T >)stdex::parser::basic_iterations< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__iterations.html b/classstdex_1_1parser_1_1basic__iterations.html new file mode 100644 index 000000000..14a19220a --- /dev/null +++ b/classstdex_1_1parser_1_1basic__iterations.html @@ -0,0 +1,220 @@ + + + + + + + +stdex: stdex::parser::basic_iterations< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_iterations< T > Class Template Reference
+
+
+ +

Test for repeating. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_iterations< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_iterations (const std::shared_ptr< basic_tester< T > > &el, size_t min_iterations=0, size_t max_iterations=(size_t) -1, bool greedy=true)
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_el
 repeating element
 
+size_t m_min_iterations
 minimum number of iterations
 
+size_t m_max_iterations
 maximum number of iterations
 
+bool m_greedy
 try to match as long sequence as possible
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_iterations< T >

Test for repeating.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_iterations< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__iterations.png b/classstdex_1_1parser_1_1basic__iterations.png new file mode 100644 index 0000000000000000000000000000000000000000..44f974fba33e215a3f6ed8505cb00e1981908d5d GIT binary patch literal 823 zcmeAS@N?(olHy`uVBq!ia0vp^7lAl{gBeI};7C{iq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)~`-hB|g#11%_?>J>T`GrAD?1iA|F6nB1ZA`yee+JF5LIGyl31C{|=8!FJHU7x82q;&waz(!>gWu*&AmS{rmg3kCl8^Y<(}E zUAXmpb2;0(zqWVO0+rUv=yaB-Uhlgrn!NEiZ%EtINj@d2)tma&v)tlmYv=|2vh(fQ zuw_~P)n(_(ZH}B$IA0oF{&m(%tyia9` zb~QnUFKdYrs#!KANXpA&lF0$da8KVY75Br-kze%9(w=Q#kdzm2PEItPkQpD z+hvkSDNs89>K5Zg>hF&2d3AI9_0yf%|L@t^-Hr@{1ozn&F($jM|IOUEbCSyP>n@&~ ziZ-a6oEl>-rgJQ*UwQ@4;Ym+ZR3ksG`!qOUrh!q6^5z&{oX9YjEwwrFT zQ>iHUuJ6vOdG8mUlRaDb@~hc-!P%kTOnm=t`*Uya?pM$5%7*b}Ei*C>={schNNB37 z>yvdKkIJ@o=Lv->ety?CDMi)#)69i@lgl2|eCvx7uKh1N_v7U=rOVyD6DrR3V%eOQ}2(e`ILFo`pGy85}Sb4q9e0J$2E4gdfE literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__json__string-members.html b/classstdex_1_1parser_1_1basic__json__string-members.html new file mode 100644 index 000000000..adf28866f --- /dev/null +++ b/classstdex_1_1parser_1_1basic__json__string-members.html @@ -0,0 +1,110 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_json_string< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_json_string< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
basic_json_string(const std::shared_ptr< basic_tester< T > > &quote, const std::shared_ptr< basic_tester< T > > &chr, const std::shared_ptr< basic_tester< T > > &escape, const std::shared_ptr< basic_tester< T > > &sol, const std::shared_ptr< basic_tester< T > > &bs, const std::shared_ptr< basic_tester< T > > &ff, const std::shared_ptr< basic_tester< T > > &lf, const std::shared_ptr< basic_tester< T > > &cr, const std::shared_ptr< basic_tester< T > > &htab, const std::shared_ptr< basic_tester< T > > &uni, const std::shared_ptr< basic_integer16< T > > &hex, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >inlinevirtual
m_bs (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_chr (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_cr (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_escape (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_ff (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_hex (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_htab (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_lf (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_quote (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_sol (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
m_uni (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
value (defined in stdex::parser::basic_json_string< T >)stdex::parser::basic_json_string< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__json__string.html b/classstdex_1_1parser_1_1basic__json__string.html new file mode 100644 index 000000000..f229aa184 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__json__string.html @@ -0,0 +1,272 @@ + + + + + + + +stdex: stdex::parser::basic_json_string< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_json_string< T > Class Template Reference
+
+
+ +

Test for JSON string. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_json_string< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_json_string (const std::shared_ptr< basic_tester< T > > &quote, const std::shared_ptr< basic_tester< T > > &chr, const std::shared_ptr< basic_tester< T > > &escape, const std::shared_ptr< basic_tester< T > > &sol, const std::shared_ptr< basic_tester< T > > &bs, const std::shared_ptr< basic_tester< T > > &ff, const std::shared_ptr< basic_tester< T > > &lf, const std::shared_ptr< basic_tester< T > > &cr, const std::shared_ptr< basic_tester< T > > &htab, const std::shared_ptr< basic_tester< T > > &uni, const std::shared_ptr< basic_integer16< T > > &hex, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + +

+Public Attributes

+std::basic_string< T > value
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_quote
 
+std::shared_ptr< basic_tester< T > > m_chr
 
+std::shared_ptr< basic_tester< T > > m_escape
 
+std::shared_ptr< basic_tester< T > > m_sol
 
+std::shared_ptr< basic_tester< T > > m_bs
 
+std::shared_ptr< basic_tester< T > > m_ff
 
+std::shared_ptr< basic_tester< T > > m_lf
 
+std::shared_ptr< basic_tester< T > > m_cr
 
+std::shared_ptr< basic_tester< T > > m_htab
 
+std::shared_ptr< basic_tester< T > > m_uni
 
+std::shared_ptr< basic_integer16< T > > m_hex
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_json_string< T >

Test for JSON string.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_json_string< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_json_string< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__json__string.png b/classstdex_1_1parser_1_1basic__json__string.png new file mode 100644 index 0000000000000000000000000000000000000000..15bd53b1b7d4430e5969fab80919f8ed8a6187ad GIT binary patch literal 838 zcmeAS@N?(olHy`uVBq!ia0vp^w}Ci-gBeIJ*ZPnNq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)kYd&u{U|CcbmIggwhv9(0@ZHgm(olxnLq?q~9z z`|z?CPZ}KfXO2DRE>g+o78G7i6EM?7RD`LObWSPt?@@5MN&BbI*7usk1+*3f!8+%njd6 zZZIscB}V9hGM8eDU#o&=Y}N+PplYd{Nmu5{+`hH*Y;i2D_;amOkelJ-i_B>~< zkNc)&>aSB&)mMv`ZS?cH#Q*C?|Fzuu=V5itxtg|HU(Am5T(z=d>ZFjX;_u(amb*Wg r6tw%0nx}3iJap2w2{^q7{?E{9v-Pu5>CZS|if8b2^>bP0l+XkK)?Ak5 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__mixed__numeral-members.html b/classstdex_1_1parser_1_1basic__mixed__numeral-members.html new file mode 100644 index 000000000..33d217263 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__mixed__numeral-members.html @@ -0,0 +1,104 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_mixed_numeral< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_mixed_numeral< T >, including all inherited members.

+ + + + + + + + + + + + + + + + +
basic_mixed_numeral(const std::shared_ptr< basic_tester< T > > &_positive_sign, const std::shared_ptr< basic_tester< T > > &_negative_sign, const std::shared_ptr< basic_tester< T > > &_special_sign, const std::shared_ptr< basic_tester< T > > &_integer, const std::shared_ptr< basic_tester< T > > &space, const std::shared_ptr< basic_tester< T > > &_fraction, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_mixed_numeral< T >)stdex::parser::basic_mixed_numeral< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
fractionstdex::parser::basic_mixed_numeral< T >
integerstdex::parser::basic_mixed_numeral< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_mixed_numeral< T >)stdex::parser::basic_mixed_numeral< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_space (defined in stdex::parser::basic_mixed_numeral< T >)stdex::parser::basic_mixed_numeral< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_mixed_numeral< T >)stdex::parser::basic_mixed_numeral< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
negative_signstdex::parser::basic_mixed_numeral< T >
positive_signstdex::parser::basic_mixed_numeral< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
special_signstdex::parser::basic_mixed_numeral< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__mixed__numeral.html b/classstdex_1_1parser_1_1basic__mixed__numeral.html new file mode 100644 index 000000000..29294e2f7 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__mixed__numeral.html @@ -0,0 +1,259 @@ + + + + + + + +stdex: stdex::parser::basic_mixed_numeral< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_mixed_numeral< T > Class Template Reference
+
+
+ +

Test for mixed numeral. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_mixed_numeral< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_mixed_numeral (const std::shared_ptr< basic_tester< T > > &_positive_sign, const std::shared_ptr< basic_tester< T > > &_negative_sign, const std::shared_ptr< basic_tester< T > > &_special_sign, const std::shared_ptr< basic_tester< T > > &_integer, const std::shared_ptr< basic_tester< T > > &space, const std::shared_ptr< basic_tester< T > > &_fraction, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_tester< T > > positive_sign
 Positive sign.
 
+std::shared_ptr< basic_tester< T > > negative_sign
 Negative sign.
 
+std::shared_ptr< basic_tester< T > > special_sign
 Special sign (e.g. plus-minus '±')
 
+std::shared_ptr< basic_tester< T > > integer
 Integer part.
 
+std::shared_ptr< basic_tester< T > > fraction
 fraction
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_mixed_numeral< T >

Test for mixed numeral.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_mixed_numeral< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_mixed_numeral< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__mixed__numeral.png b/classstdex_1_1parser_1_1basic__mixed__numeral.png new file mode 100644 index 0000000000000000000000000000000000000000..f0f689fe2d4224e9b3dbf53deff36f1ab4126469 GIT binary patch literal 865 zcmeAS@N?(olHy`uVBq!ia0vp^pMW@kgBeJQB;6+1yGK&B*-tA0mugfbEer>7#Nt|c)B=-R4~4so4xL}0#8eO zXNk%0_>aD`SdyKqGFN{VSeSH$>DZ6M5B?q9q;q<2ORLKJC7nK#7H2C>e)8g#o8P-` zmHWY`9Zkj9*OmMJZda-Psy@N<(n|TCy%VY?Y0-<(`q`D7pWy>^+! z8s_%CU9^^%}v;O^j5l_48$Nyhb`5F8x`b59f)pA?UPqt@u zfS#XqLd9~InvrMUI?>9=X-~tL8tz{dXSn12-TB|IU9zA5P6&Ur+wi_XWmpb_M7*#h zgWGi%wuXzQ6B!dqd{Y=CVu=y@p}2I)rM)dGp5>QZrY!+#R?RG7eX{uTN5d^LG1j$b zqbA+@l->7B$J5WgL&x*)FPWdGIu-Muf3%nqdi%z|-7!1*-v51^J$r@wtY!S|*Uq~g z&$xH|&DnP!N;UMk66dH*T4U?(H)*R(*QBm#^|BAeiwlqVhP3^hP`=G#e*dMS#Nwli ziZ0g(<*h8f-F};g`rE9}KHhXi z=6TOrEueLJy#5o)f7_+VAKRxFvO41YDqwtsgX5!6blK;-Ze^eEM)HNfIjW<6GAcAo zs{hpS0Q<{*+jG{gsQVgS)_k`6@4aZd{IJbQ&rcMs+_LFqS32WEAAPMdmwhX4Sk^z( zjBxr^8~1neq$SUP{W%{tsV;VZ;~x#1g%>=60+!EI*}G(Bs;5+}aO5Olr~?CTtJ3l* dm)3saf311qxsI3PU0`Nl@O1TaS?83{1OW2TviAT0 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__monetary__numeral-members.html b/classstdex_1_1parser_1_1basic__monetary__numeral-members.html new file mode 100644 index 000000000..ce78e1a7c --- /dev/null +++ b/classstdex_1_1parser_1_1basic__monetary__numeral-members.html @@ -0,0 +1,105 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_monetary_numeral< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_monetary_numeral< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
basic_monetary_numeral(const std::shared_ptr< basic_tester< T > > &_positive_sign, const std::shared_ptr< basic_tester< T > > &_negative_sign, const std::shared_ptr< basic_tester< T > > &_special_sign, const std::shared_ptr< basic_tester< T > > &_currency, const std::shared_ptr< basic_tester< T > > &_integer, const std::shared_ptr< basic_tester< T > > &_decimal_separator, const std::shared_ptr< basic_tester< T > > &_decimal, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_monetary_numeral< T >)stdex::parser::basic_monetary_numeral< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
currencystdex::parser::basic_monetary_numeral< T >
decimalstdex::parser::basic_monetary_numeral< T >
decimal_separatorstdex::parser::basic_monetary_numeral< T >
integerstdex::parser::basic_monetary_numeral< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_monetary_numeral< T >)stdex::parser::basic_monetary_numeral< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_monetary_numeral< T >)stdex::parser::basic_monetary_numeral< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
negative_signstdex::parser::basic_monetary_numeral< T >
positive_signstdex::parser::basic_monetary_numeral< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
special_signstdex::parser::basic_monetary_numeral< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__monetary__numeral.html b/classstdex_1_1parser_1_1basic__monetary__numeral.html new file mode 100644 index 000000000..015528563 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__monetary__numeral.html @@ -0,0 +1,263 @@ + + + + + + + +stdex: stdex::parser::basic_monetary_numeral< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_monetary_numeral< T > Class Template Reference
+
+
+ +

Test for monetary numeral. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_monetary_numeral< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_monetary_numeral (const std::shared_ptr< basic_tester< T > > &_positive_sign, const std::shared_ptr< basic_tester< T > > &_negative_sign, const std::shared_ptr< basic_tester< T > > &_special_sign, const std::shared_ptr< basic_tester< T > > &_currency, const std::shared_ptr< basic_tester< T > > &_integer, const std::shared_ptr< basic_tester< T > > &_decimal_separator, const std::shared_ptr< basic_tester< T > > &_decimal, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_tester< T > > positive_sign
 Positive sign.
 
+std::shared_ptr< basic_tester< T > > negative_sign
 Negative sign.
 
+std::shared_ptr< basic_tester< T > > special_sign
 Special sign (e.g. plus-minus '±')
 
+std::shared_ptr< basic_tester< T > > currency
 Currency part.
 
+std::shared_ptr< basic_tester< T > > integer
 Integer part.
 
+std::shared_ptr< basic_tester< T > > decimal_separator
 Decimal separator.
 
+std::shared_ptr< basic_tester< T > > decimal
 Decimal part.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_monetary_numeral< T >

Test for monetary numeral.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_monetary_numeral< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_monetary_numeral< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__monetary__numeral.png b/classstdex_1_1parser_1_1basic__monetary__numeral.png new file mode 100644 index 0000000000000000000000000000000000000000..d046e3a0227a483c1cad86291deaa329c3efd44d GIT binary patch literal 892 zcmV-?1B3jDP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0009A zNklt@`v@-m zN4q|*17pwBba!a&cErITwAUB`z^N`_D1b=?P=Fx)t!~MU<(@Dw82Tkq5TtvuN5ruD zajasNpPcO?d5AO=V>JQdRxEgCRbH`M4!3* zD=_SZEEO(Q)!W+3-uhHk)!X`Kvf;UluV7GB{ZEw`h=CYX)eA8+45gIv_WBQ8{n>m$ SnDILR0000 + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_noop< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_noop< T >, including all inherited members.

+ + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_noop< T >)stdex::parser::basic_noop< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__noop.html b/classstdex_1_1parser_1_1basic__noop.html new file mode 100644 index 000000000..beaaa3e09 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__noop.html @@ -0,0 +1,197 @@ + + + + + + + +stdex: stdex::parser::basic_noop< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_noop< T > Class Template Reference
+
+
+ +

"No-op" match + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_noop< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_noop< T >

"No-op" match

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_noop< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__noop.png b/classstdex_1_1parser_1_1basic__noop.png new file mode 100644 index 0000000000000000000000000000000000000000..387530945ce6e7a1e7a6a44515e739d8bf2eb16f GIT binary patch literal 771 zcmV+e1N{7nP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0007x zNklN_ zw=9&Fs_Qjip6>~D4sL$m(GL1V=CN@n(v9P4BQa~y;uZ==yCoCdI3ndgPj8HtJ_fXL zb{A7xdFp4StBdW@X*Tn_226kJvEVDm2Hakg3jMy4@3NMvtE05^(IH0)FKL*qQ~TD& zryUa(pGx6T(7VTTmixH*5$S>4Co+#?WB=BM+KdMdwfR!r7bSkX?)Ms~_MAO*ZY0N= z?>U*myViP6ZZvLlm$17#CQ07b%U=PK{8P1{Kl^f$KjXZ)_|XZVis`=%c~2LM`W&;vjl4SE1*qd^Y$Saiwy*Q;Z&@fURo834JU?+- zy(($`l|D&%Y}`q5x)z!qli#}9Om>n6nZ*B1)!OBT2vLBcJ6*HfchC z{_*UAUXo7rHhM|=Dh+x`YNJ6fNo_RKr<78!`T=<>ok9G%Vj=(l002ovPDHLkV1ka0 Bd9(lk literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__permutation-members.html b/classstdex_1_1parser_1_1basic__permutation-members.html new file mode 100644 index 000000000..75e655e84 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__permutation-members.html @@ -0,0 +1,104 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_permutation< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_permutation< T >, including all inherited members.

+ + + + + + + + + + + + + + + + +
basic_permutation(const std::shared_ptr< basic_tester< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_permutation< T >)stdex::parser::basic_permutation< T >inline
basic_permutation(std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_permutation< T >)stdex::parser::basic_permutation< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inlinevirtual
m_collection (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_permutation< T >)stdex::parser::basic_permutation< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
match_recursively(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_permutation< T >)stdex::parser::basic_permutation< T >inlineprotected
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
tester_collection(const std::locale &locale) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inlineprotected
tester_collection(const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
tester_collection(std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__permutation.html b/classstdex_1_1parser_1_1basic__permutation.html new file mode 100644 index 000000000..392dfcdab --- /dev/null +++ b/classstdex_1_1parser_1_1basic__permutation.html @@ -0,0 +1,228 @@ + + + + + + + +stdex: stdex::parser::basic_permutation< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_permutation< T > Class Template Reference
+
+
+ +

Test for permutation. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_permutation< T >:
+
+
+ + +stdex::parser::tester_collection< T > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_permutation (const std::shared_ptr< basic_tester< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale())
 
basic_permutation (std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::tester_collection< T >
tester_collection (const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale())
 
tester_collection (std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Member Functions

+bool match_recursively (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Protected Member Functions inherited from stdex::parser::tester_collection< T >
tester_collection (const std::locale &locale)
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::tester_collection< T >
+std::vector< std::shared_ptr< basic_tester< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_permutation< T >

Test for permutation.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_permutation< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__permutation.png b/classstdex_1_1parser_1_1basic__permutation.png new file mode 100644 index 0000000000000000000000000000000000000000..47548b4fa10285d6fb75154a16987e8f321eb01b GIT binary patch literal 1223 zcmb7EdoXC$4=Ir$U-gEBv-N#?|yZ78YZ!aW7T~{3d00_z* z;iF)_!gG(SDA2op_)7)pd3*Y~9UdMk!o`*C#KIn$-Nn!1PM7_;*xlW&sQZ#RHHw}Z z(Z|adP~=ButNe@$03Z3F5H5bnN~;wj@`~Z{2UA`=o%O>%OeuQzO%kT3v-(OL^Bykd zT$kT`S{)r04j%}AOfotXFn}a~x1HNmehkH;Rc2MQZK)%;aTqE@bV1@iwwS`Al@WhW z(i-{X#aBsDqPwf9_)yW*{LCnwh(48rBM zM`I22=MGD~Tfr3^4=3kHM-JY{AgtjnF6K5#R&+(R|AxxV8H^f?I+8lL>YB8-bJhUM zAfh2iwh+RlWW}{<_YCdNjg)A0@F!nC|NC+viJqRe)yoOkZ7RYQR88*Bt>tRvG0(xK zyHo`n83Sy^%l|T+_&NFAL;ZjDL5f8*KPek}lPwu_cWHNs053mI-2G&616)Hx%e$~5`bhohJ zm%xHVp60Stg~eN;j>J;xusoA4>ape|s{Ki}Jf#co5+xH>q(>a8*ScjzZareUr^#Ey zDYxEj9dI-@r3X_OoNf9V=bPJCrQgb}p=0~e%R92fC(djfi5Rl)R3vC~lADnQ>r3l< zrTSx%(qh4GiA-^H@2}5BjOJM9n*)33X&@{NGMvQBhuGQif3UTlT_inmRx|F3ow1XmWp$xyhy>P-EH1UJ^0)K@Y|v(B+~E#ooDDJ)*hxr`ozbBgBMp*U>-2Z?a)!VP zqGVQP2#;?d+~cMVg1Na9p&OQJkyBdGV$g35%ykbkeh+L?Rf$!jT#0aLUZ`XDxLNUX N0F;{-qR}<%{=b||Zp{Dy literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__phone__number-members.html b/classstdex_1_1parser_1_1basic__phone__number-members.html new file mode 100644 index 000000000..35ef0b98e --- /dev/null +++ b/classstdex_1_1parser_1_1basic__phone__number-members.html @@ -0,0 +1,105 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_phone_number< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_phone_number< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + +
basic_phone_number(const std::shared_ptr< basic_tester< T > > &digit, const std::shared_ptr< basic_tester< T > > &plus_sign, const std::shared_ptr< basic_set< T > > &lparenthesis, const std::shared_ptr< basic_set< T > > &rparenthesis, const std::shared_ptr< basic_tester< T > > &separator, const std::shared_ptr< basic_tester< T > > &space, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >inlinevirtual
m_digit (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_lparenthesis (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >protected
m_plus_sign (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >protected
m_rparenthesis (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >protected
m_separator (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >protected
m_space (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
valuestdex::parser::basic_phone_number< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__phone__number.html b/classstdex_1_1parser_1_1basic__phone__number.html new file mode 100644 index 000000000..4310bbeec --- /dev/null +++ b/classstdex_1_1parser_1_1basic__phone__number.html @@ -0,0 +1,258 @@ + + + + + + + +stdex: stdex::parser::basic_phone_number< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_phone_number< T > Class Template Reference
+
+
+ +

Test for phone number. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_phone_number< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_phone_number (const std::shared_ptr< basic_tester< T > > &digit, const std::shared_ptr< basic_tester< T > > &plus_sign, const std::shared_ptr< basic_set< T > > &lparenthesis, const std::shared_ptr< basic_set< T > > &rparenthesis, const std::shared_ptr< basic_tester< T > > &separator, const std::shared_ptr< basic_tester< T > > &space, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Public Attributes

+std::basic_string< T > value
 Normalized phone number.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_digit
 
+std::shared_ptr< basic_tester< T > > m_plus_sign
 
+std::shared_ptr< basic_set< T > > m_lparenthesis
 
+std::shared_ptr< basic_set< T > > m_rparenthesis
 
+std::shared_ptr< basic_tester< T > > m_separator
 
+std::shared_ptr< basic_tester< T > > m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_phone_number< T >

Test for phone number.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_phone_number< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_phone_number< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__phone__number.png b/classstdex_1_1parser_1_1basic__phone__number.png new file mode 100644 index 0000000000000000000000000000000000000000..27855ba8646dda841a536957b959c830f5011819 GIT binary patch literal 858 zcmeAS@N?(olHy`uVBq!ia0vp^pMW@kgBeJQB;6+1yGK&B*-tA0mugfbEer>7#NtIdb&7mN;i#&lzXPVV;I?hZ#a7-b%xZ}=^KdXr8vC%0$cl1`sVd$W}$r@YT{<9p^f zY5mG)3nV@>Utit!*L~93U-}a~FRhUM**YO=g1qM)qn)oF*4Lj8k3RnW-^U7{DaxUj z&nCW_ADzzQ^M7Z}geAeuMGC>z3Cx*MHP(mDKl{@$Q-kNTs$@pgmnm{$JKr{JSNyH< z>8StYH&2$YdpmX6vF+!J5(V~~<~-ZWxa(`e^FW!ei<)ZAEm{9*;;NO7rzh@p{Pbi; z%=_pU+de(zUwmI`|NmCk#vHywSM`1$UA)}?JKeK-63q}}=Xcb_)BWiJ0| zv*>D9?Xk(H3g&DUwQkMx%@(zunz?z$$xrG3mw0@N%l{ue`APoE|4#R^LT-OlIeFcr ze5OkEbr-dh_e>{xZYp1U0vI&ToDBcm;u#F49drKoORBHZ=E>9wlV^+*(~q(>{4<@% zxS-rOh2cf4up~p(br-e3h7~*T_jdb%K$TvVMttn(F9O_axc-)T-k*{>`i3(f9uEui%Xl|{3qOepfR!bxM<692<*`Jlu78#tG6m#QVq}$}$Xf4L2?XKt8jh{%w zA3dKrDH0m=cbk(OxBqEfdOl;5`Sk01jtgh-ZS#Cuc)_c$Sgm$ye~7Q~{oWJHKGihO znO1)F)YrZ%=}%XC%6bn(Z#`%arr+Zr(c-cyC8(@r&O#=m>@Lnk(V-|yXj z&KxvjT_SYB7#bD3{8)|7-JCS@(Z*%pMXl%W-q6#k>Jh0uZTgh0`Tv%vyadIF_o>_d zzb7wY`^)+%EU#~~isyAJUDcPzP0C>bWjaxHB`|6fTMVZBW31Lc@oxW({)@m|z~JfX K=d#Wzp$Py*H?)BO literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__punct__cu-members.html b/classstdex_1_1parser_1_1basic__punct__cu-members.html new file mode 100644 index 000000000..cd3c6fbc4 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__punct__cu-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_punct_cu< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_punct_cu< T >, including all inherited members.

+ + + + + + + + + + + +
basic_punct_cu(bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_punct_cu< T >)stdex::parser::basic_punct_cu< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_invert (defined in stdex::parser::basic_punct_cu< T >)stdex::parser::basic_punct_cu< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_punct_cu< T >)stdex::parser::basic_punct_cu< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__punct__cu.html b/classstdex_1_1parser_1_1basic__punct__cu.html new file mode 100644 index 000000000..2a60ee7a1 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__punct__cu.html @@ -0,0 +1,207 @@ + + + + + + + +stdex: stdex::parser::basic_punct_cu< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_punct_cu< T > Class Template Reference
+
+
+ +

Test for any punctuation code unit. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_punct_cu< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_punct_cu (bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Attributes

+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_punct_cu< T >

Test for any punctuation code unit.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_punct_cu< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__punct__cu.png b/classstdex_1_1parser_1_1basic__punct__cu.png new file mode 100644 index 0000000000000000000000000000000000000000..2a47ea012dfae4649764f243583e65ae4ec2e96f GIT binary patch literal 815 zcmeAS@N?(olHy`uVBq!ia0vp^mw-5cgBeIh+uvRcq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)x8%0Yp5RXv*cLV-(1w48aZuaORI|eB^RZW_e>{xY$}&kV*RXm z^8A&efUiIM9)}+OrhHPlmbFu*cb#(VhZ{~+d55yq!)%}Df4y}3*8Z)JpIZieH}Q?< zE4I$vYiRKHd&O;!#xtsiST0T3D|T4>SWUm=3ZB!dk{PGoY1Zom{bt%W@sHNh&nZE7 z&fM9u_STgj-*!hxzA5&7v+Q1j)vk)CS|4rACS3BE7y8Y_*Y}0$B=ZyVV(zR9b=-Qn zdB09w_TQhOVxp5QPb?1p)ct6dTVr5VTZot?GKD9*1qt#EVq_emC>^Im`3FY5VEw^sb+ROVaP+g0o@+o(=@6D!=Q zQhgm13R{(QPjBK;W%wa!%aEYc+y143=eUX7B`*`H%MBjJj~N~Q&+=fnuv<-t;mf*C z7KXjqN{kNgi4i)`&ZXG0u|>gCIaA3q2&iS!mEAHyId_ibSXP{V$@+N4eU+0h*e9yI z+_cUzBPw-?`g`uGtDEyzPZz%aZ>_BT`Nmz#Gk+D$xP46Hl#k}yZB>(&#GIShG{w7x zbCPDYZd-WIPdVcNNwL{8djCvO$}!%$#B`sOM_QibveLM)?~!&<$yqhGZP$sdS+_5K z{|Ysr&c&auv`24Qi8AzOL(3@!Xs3 f3JjcuU%1z_uG_W1!`Tm*v>7~I{an^LB{Ts5OVW$! literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__roman__numeral-members.html b/classstdex_1_1parser_1_1basic__roman__numeral-members.html new file mode 100644 index 000000000..14304aa5b --- /dev/null +++ b/classstdex_1_1parser_1_1basic__roman__numeral-members.html @@ -0,0 +1,109 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_roman_numeral< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_roman_numeral< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
basic_integer(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer< T >)stdex::parser::basic_integer< T >inline
basic_roman_numeral(const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_10, const std::shared_ptr< basic_tester< T > > &digit_50, const std::shared_ptr< basic_tester< T > > &digit_100, const std::shared_ptr< basic_tester< T > > &digit_500, const std::shared_ptr< basic_tester< T > > &digit_1000, const std::shared_ptr< basic_tester< T > > &digit_5000, const std::shared_ptr< basic_tester< T > > &digit_10000, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_integer< T >)stdex::parser::basic_integer< T >inlinevirtual
m_digit_1 (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >protected
m_digit_10 (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >protected
m_digit_100 (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >protected
m_digit_1000 (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >protected
m_digit_10000 (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >protected
m_digit_5 (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >protected
m_digit_50 (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >protected
m_digit_500 (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >protected
m_digit_5000 (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__roman__numeral.html b/classstdex_1_1parser_1_1basic__roman__numeral.html new file mode 100644 index 000000000..149c778cb --- /dev/null +++ b/classstdex_1_1parser_1_1basic__roman__numeral.html @@ -0,0 +1,243 @@ + + + + + + + +stdex: stdex::parser::basic_roman_numeral< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_roman_numeral< T > Class Template Reference
+
+
+ +

Test for Roman numeral. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_roman_numeral< T >:
+
+
+ + +stdex::parser::basic_integer< T > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_roman_numeral (const std::shared_ptr< basic_tester< T > > &digit_1, const std::shared_ptr< basic_tester< T > > &digit_5, const std::shared_ptr< basic_tester< T > > &digit_10, const std::shared_ptr< basic_tester< T > > &digit_50, const std::shared_ptr< basic_tester< T > > &digit_100, const std::shared_ptr< basic_tester< T > > &digit_500, const std::shared_ptr< basic_tester< T > > &digit_1000, const std::shared_ptr< basic_tester< T > > &digit_5000, const std::shared_ptr< basic_tester< T > > &digit_10000, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_integer< T >
basic_integer (const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_digit_1
 
+std::shared_ptr< basic_tester< T > > m_digit_5
 
+std::shared_ptr< basic_tester< T > > m_digit_10
 
+std::shared_ptr< basic_tester< T > > m_digit_50
 
+std::shared_ptr< basic_tester< T > > m_digit_100
 
+std::shared_ptr< basic_tester< T > > m_digit_500
 
+std::shared_ptr< basic_tester< T > > m_digit_1000
 
+std::shared_ptr< basic_tester< T > > m_digit_5000
 
+std::shared_ptr< basic_tester< T > > m_digit_10000
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_integer< T >
+size_t value
 Calculated value of the numeral.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_roman_numeral< T >

Test for Roman numeral.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_roman_numeral< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__roman__numeral.png b/classstdex_1_1parser_1_1basic__roman__numeral.png new file mode 100644 index 0000000000000000000000000000000000000000..495f6128acad7fbf48667747eb97a71732400ae6 GIT binary patch literal 1247 zcmeAS@N?(olHy`uVBq!ia0vp^UxB!TgBeJ2T#oesQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#LWxJY5_^Dj46+eckt3fv2V2 zan+xH{xwC4jMA4by-odoVx5F)L-J?Ig8xd-=iKF-sWMk{h3BRArdcYrFF0QsGyrUklKDF8lZC_Fb&dQ#`Ax$|B*2m8U36$JuCLR{$W>DuGOlCTMJe{(7Gu9|GCo1-&H^3=cw#ow%={<)HNrIy(ZZQzcKav z6%a6a2|p{4alvVB@ws~}4EvWzGwhh`{p$8v|IuH`thQxU;o`>i#qnbu5yj=-xC)~iX(ojAIJ+oB)6+iIddlqHmcYx=s7=YG*}P#NK`FJ2ijyi@qq=_aCnOR(`ir z_}($y)MSU+GgsE%nz%6Y@$arG^Q{-HO)l>~ZyS7e*OJ*w`@T6wmRxydVRJA0@57fL zo5A7z^+i@%-bP?}7YBc@nvhev-g?jXd#@j_;miK9aYNLM^OmuPwVTcMu6rn25_8yd z)wgH$dXx67pZ@=-XOYwU?$6U#Y!50ewEHTna5DVM{Wo7jtvo(u?rol>@?RewG`d$T zpTF^C_~5;ZvB7%hl6`k=l6EhNTOgbCdr6-ZA443ep%0F#`ypPMJB258bQrU4?daeK z6OykkRay!wv&Va`=L^!>*3ofEe5I?4-8#Jw1*%i4d{0iB?)v)1zk78%dfxy26ruiW z;=-5DHhf!s)o{!HYyN!fr(!2=y;|q8B=`Hu$sV~!vxNeYlKt!#Nt+s1)+J}&k&NDa zPx;hXByyQb^r$C_?lekpH)E$iH)SB<8=XTNfHI{&v_-#?#;Q=fS2 z9LKI%U!P~yTw3=2>*p)0W~c}nR(*<-PcMx)+^?|J;JVhTtjyScv%RYx`ku}6tML5( z;*iIrTeo(cEmsP<-CVCHIPv$dt@eq66Su!IU$I>&rK_*QV|}H!;Ka(Kaort10s>$J gFpC6v-TT6S^3!kSn%3?8z@mu3)78&qol`;+0HR)P_y7O^ literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__scientific__numeral-members.html b/classstdex_1_1parser_1_1basic__scientific__numeral-members.html new file mode 100644 index 000000000..4648c5e32 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__scientific__numeral-members.html @@ -0,0 +1,109 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_scientific_numeral< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_scientific_numeral< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + +
basic_scientific_numeral(const std::shared_ptr< basic_tester< T > > &_positive_sign, const std::shared_ptr< basic_tester< T > > &_negative_sign, const std::shared_ptr< basic_tester< T > > &_special_sign, const std::shared_ptr< basic_integer< T > > &_integer, const std::shared_ptr< basic_tester< T > > &_decimal_separator, const std::shared_ptr< basic_integer< T > > &_decimal, const std::shared_ptr< basic_tester< T > > &_exponent_symbol, const std::shared_ptr< basic_tester< T > > &_positive_exp_sign, const std::shared_ptr< basic_tester< T > > &_negative_exp_sign, const std::shared_ptr< basic_integer< T > > &_exponent, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_scientific_numeral< T >)stdex::parser::basic_scientific_numeral< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
decimalstdex::parser::basic_scientific_numeral< T >
decimal_separatorstdex::parser::basic_scientific_numeral< T >
exponentstdex::parser::basic_scientific_numeral< T >
exponent_symbolstdex::parser::basic_scientific_numeral< T >
integerstdex::parser::basic_scientific_numeral< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_scientific_numeral< T >)stdex::parser::basic_scientific_numeral< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_scientific_numeral< T >)stdex::parser::basic_scientific_numeral< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
negative_exp_signstdex::parser::basic_scientific_numeral< T >
negative_signstdex::parser::basic_scientific_numeral< T >
positive_exp_signstdex::parser::basic_scientific_numeral< T >
positive_signstdex::parser::basic_scientific_numeral< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
special_signstdex::parser::basic_scientific_numeral< T >
valuestdex::parser::basic_scientific_numeral< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__scientific__numeral.html b/classstdex_1_1parser_1_1basic__scientific__numeral.html new file mode 100644 index 000000000..278512f78 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__scientific__numeral.html @@ -0,0 +1,279 @@ + + + + + + + +stdex: stdex::parser::basic_scientific_numeral< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_scientific_numeral< T > Class Template Reference
+
+
+ +

Test for scientific numeral. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_scientific_numeral< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_scientific_numeral (const std::shared_ptr< basic_tester< T > > &_positive_sign, const std::shared_ptr< basic_tester< T > > &_negative_sign, const std::shared_ptr< basic_tester< T > > &_special_sign, const std::shared_ptr< basic_integer< T > > &_integer, const std::shared_ptr< basic_tester< T > > &_decimal_separator, const std::shared_ptr< basic_integer< T > > &_decimal, const std::shared_ptr< basic_tester< T > > &_exponent_symbol, const std::shared_ptr< basic_tester< T > > &_positive_exp_sign, const std::shared_ptr< basic_tester< T > > &_negative_exp_sign, const std::shared_ptr< basic_integer< T > > &_exponent, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_tester< T > > positive_sign
 Positive sign.
 
+std::shared_ptr< basic_tester< T > > negative_sign
 Negative sign.
 
+std::shared_ptr< basic_tester< T > > special_sign
 Special sign (e.g. plus-minus '±')
 
+std::shared_ptr< basic_integer< T > > integer
 Integer part.
 
+std::shared_ptr< basic_tester< T > > decimal_separator
 Decimal separator.
 
+std::shared_ptr< basic_integer< T > > decimal
 Decimal part.
 
+std::shared_ptr< basic_tester< T > > exponent_symbol
 Exponent symbol (e.g. 'e')
 
+std::shared_ptr< basic_tester< T > > positive_exp_sign
 Positive exponent sign (e.g. '+')
 
+std::shared_ptr< basic_tester< T > > negative_exp_sign
 Negative exponent sign (e.g. '-')
 
+std::shared_ptr< basic_integer< T > > exponent
 Exponent part.
 
+double value
 Calculated value of the numeral.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_scientific_numeral< T >

Test for scientific numeral.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_scientific_numeral< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_scientific_numeral< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__scientific__numeral.png b/classstdex_1_1parser_1_1basic__scientific__numeral.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbf4c31873b72ec643ea9fdc5260bd458dde70a GIT binary patch literal 864 zcmeAS@N?(olHy`uVBq!ia0y~yU}OQZ12~w0jv*C{Z|A=5d#u3I z+N<1q?zjC%GtML88D$x6bKgA+iFlfn^ZDqE{hM@77nM(R4gGr0iKE4Vqosh?iL-vy zs`V#NIG9gYpI5E>+ds54%8t8fRn~;}&O3xIiL{7*ar>>f`uN`Wf9;=rFZ>%V{%hvK zS7{fHz5UGAYA{cE$*NyIX$m5t*Mf&i~}vC!dHHB741crEVpj{HN4%GTV?- z@%YojnOg7m-7x5@x|(2J{9dGQ@53z%?VA&SS^e0Nr7Go+p}p<&d7jY2iMB0k5~f}9 zy!_&~gc^6U-@`vYi~35WWLqZaoHtUmw%6HfFWj|itMb1HiOYM>-nq1QZ;0@&%lnq9 zZ8;*hk5AW0`{(hf8re4nfu&!pZcG-K!~X7lolFFIO?zRfZ@$B>6G2wA`CmWLv+n?SkZhs!Hw-) zZ`tbp&eC;Lv@af6`&E~rK_S0|fkAlF>>U{yEn*CdBwD6kXj{4I{_ncS$#wGA_rFap zHFmywc0upl(`M|65;6f%NLHTGcYO3BIfiTZ=hZH(aw}KDvGJb)l<};GcZ@ zigrVOb8lq*|2)l}X5ZGi3O_vA6@Ppdo6ER7_prsQ(B`-5ocAl=DIDol@6eU~%(-Y` zvSM8Of$eG`^_#XO?f!EnptM5F`_+R_r5uJE?uM;u-WgQZTKMD|`-I{pmtQEfq`Xw@ zk&QjoGG)f(nE?#h?d=f~zt>1Ve|U7(2bMz|A6L|+a0r_&RQ>j$G{bMroM=bB)SHhw zR~4^69Qgjw-d9EkLmmk~vN>-zk)c4({=*OE1J6(9JKW%k(28LA5MEiS%rJ+;I8lg+ m;m>qPN}ZrECFs=Ir~GA1*WU1qM%7KbLh*2~7aX2ad=9 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__score-members.html b/classstdex_1_1parser_1_1basic__score-members.html new file mode 100644 index 000000000..70578fc20 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__score-members.html @@ -0,0 +1,102 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_score< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_score< T >, including all inherited members.

+ + + + + + + + + + + + + + +
basic_score(const std::shared_ptr< basic_tester< T > > &_home, const std::shared_ptr< basic_tester< T > > &_separator, const std::shared_ptr< basic_tester< T > > &_guest, const std::shared_ptr< basic_tester< T > > &space, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_score< T >)stdex::parser::basic_score< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
guest (defined in stdex::parser::basic_score< T >)stdex::parser::basic_score< T >
home (defined in stdex::parser::basic_score< T >)stdex::parser::basic_score< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_score< T >)stdex::parser::basic_score< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_space (defined in stdex::parser::basic_score< T >)stdex::parser::basic_score< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_score< T >)stdex::parser::basic_score< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
separator (defined in stdex::parser::basic_score< T >)stdex::parser::basic_score< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__score.html b/classstdex_1_1parser_1_1basic__score.html new file mode 100644 index 000000000..3d31a16fd --- /dev/null +++ b/classstdex_1_1parser_1_1basic__score.html @@ -0,0 +1,248 @@ + + + + + + + +stdex: stdex::parser::basic_score< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_score< T > Class Template Reference
+
+
+ +

Test for match score. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_score< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_score (const std::shared_ptr< basic_tester< T > > &_home, const std::shared_ptr< basic_tester< T > > &_separator, const std::shared_ptr< basic_tester< T > > &_guest, const std::shared_ptr< basic_tester< T > > &space, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_tester< T > > home
 
+std::shared_ptr< basic_tester< T > > separator
 
+std::shared_ptr< basic_tester< T > > guest
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_score< T >

Test for match score.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_score< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_score< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__score.png b/classstdex_1_1parser_1_1basic__score.png new file mode 100644 index 0000000000000000000000000000000000000000..389448e6e0c7070afa123298c0905a6fa2a344f9 GIT binary patch literal 780 zcmeAS@N?(olHy`uVBq!ia0vp^`+zurgBeIpcw!$5q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)22&u5$6{Jv+I{&=)e@N?wL2lJ=>nkM^lmz7VqylmEzf*@!8^0yazrRApU zyz_p1@xgB1T~U8$>~X0|{R*__zDeQDdJsQu4y`)`(V+2sE8-;eD6y?DO=@P)pT*!PUt_m`O1nPsIf zRMlMdKz-#lo_Q+QPX)UfZnJpA)0^yZvvcCzGbU#ySDO6L>*GyllE|NYL|Qsr+zopr0C|9ZDgXcg literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__sequence-members.html b/classstdex_1_1parser_1_1basic__sequence-members.html new file mode 100644 index 000000000..7e5e1a176 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__sequence-members.html @@ -0,0 +1,103 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_sequence< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_sequence< T >, including all inherited members.

+ + + + + + + + + + + + + + + +
basic_sequence(const std::shared_ptr< basic_tester< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_sequence< T >)stdex::parser::basic_sequence< T >inline
basic_sequence(std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_sequence< T >)stdex::parser::basic_sequence< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inlinevirtual
m_collection (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_sequence< T >)stdex::parser::basic_sequence< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
tester_collection(const std::locale &locale) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inlineprotected
tester_collection(const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
tester_collection(std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__sequence.html b/classstdex_1_1parser_1_1basic__sequence.html new file mode 100644 index 000000000..ecfa8d0a3 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__sequence.html @@ -0,0 +1,221 @@ + + + + + + + +stdex: stdex::parser::basic_sequence< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_sequence< T > Class Template Reference
+
+
+ +

Test for sequence. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_sequence< T >:
+
+
+ + +stdex::parser::tester_collection< T > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_sequence (const std::shared_ptr< basic_tester< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale())
 
basic_sequence (std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::tester_collection< T >
tester_collection (const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale())
 
tester_collection (std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Member Functions inherited from stdex::parser::tester_collection< T >
tester_collection (const std::locale &locale)
 
- Protected Attributes inherited from stdex::parser::tester_collection< T >
+std::vector< std::shared_ptr< basic_tester< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_sequence< T >

Test for sequence.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_sequence< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__sequence.png b/classstdex_1_1parser_1_1basic__sequence.png new file mode 100644 index 0000000000000000000000000000000000000000..4cbbb2b70b1766ea378cf7646480ced8f278806e GIT binary patch literal 1190 zcmeAS@N?(olHy`uVBq!ia0vp^SAn>LgBeJ=_r=WsQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#LU#JzX3_Dj46+eLKlmo1^9S zHm#$7<3G+kGrhsjZ1$78GCJGd%oP-@xuRGfn7#Hg=TsH-;Gl^qJgTCe$1X6hN|ICg zIm?aFYPNYyy6$ax&$w6KAu5?)Y_1v$9uN7xHsX8oMcX6a)-mgSTf5)>9rNDQ7rWSU z{yt{tX@2>i@8_gd6V|@9X*GFUb31&+u{}q5O8Tr+xqYpbx3(|cwWBjU#BO3={f-sd zw{~s2zI)bo%R_;14=a@=F~QeEfp%~ifnWusKKmt23nbKR=e z{ib!ze>KbGWT#r5TfOi*yQ{?!ie!%`JX za$4WYY&PAn_S~+%tOV^EwVgLlY}dB-w7YhDf0D}2^IvjTZB>c6qdcj`w=zsc(%I8> zlHrsPAcH$}?bdT@3_q0bG9*~}dY0}!+hMADmC01`+MJL`W=4gsNn8v`8Y>wT+DKqL zki8o9y2MHKNNNJkA|IO7fIv%ia6uap}c>f7eO;CSNi_%AZWF zzIeB^`ns_A?`!wvUt3w7zG>g1yRJ0o^R?si{BFPdKkMxY|4mzuhqUIr^>7fodv3e! zRH@gx%?!&YM_oMd`BK@uW!)G1QXQT?j@5D6KX3Dw1o7i+GWWg$6g^GaB8?!|c{YAG;d)^TGQ0 zp^DMj(#fk@e>>D%TP3XA^qU^V7zA|3sBf+FuM`ajnbX$6Ljd{Tk=HRFXATdKk4$0x~iduG)I-CJRIT z5@`mX<(ez=wo7hYwj^qS+L2k4wXzi$Tmpj_9e|0H;Ya`pj6I8kyk`1oC@D?WT0BJl0p?Vj$8cKd6q4+;xz{N=1AII%x_&WgahGs8c)mf!xiE*&Lx*G>)k{if4D zT6}5xkH%FUTef``5xfix?#)u4#f&dl?wXPt^qOb!o5`YctAZP5opKA&4i%iT{ZtaW zb-3{D_nS{XUvXy5!LFPmW}pyX{#Wdax2@YPom|OXx4zCyeKT2i>bAKdt1sSlx^5j4 zy7k4m+qy^RCq2IyIP>wFmA@uS%C&v5*23okzfPO@di_4_a*y}5;m1oQ zt{qUWU+wyQ#@fc*mDj%Bl**X2yX%J+uZZAJ$NzuaUnFzxbKF|@t+}?}S5?XAO85#` lAb>+6W1-g4DL22!zx#2E&zUv#6|h8M@O1TaS?83{1OUz=HIo1U literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__set-members.html b/classstdex_1_1parser_1_1basic__set-members.html new file mode 100644 index 000000000..f6cfdc29a --- /dev/null +++ b/classstdex_1_1parser_1_1basic__set-members.html @@ -0,0 +1,100 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_set< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_set< T >, including all inherited members.

+ + + + + + + + + + + + +
basic_set(bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
hit_offset (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >inlinevirtual
m_invert (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__set.html b/classstdex_1_1parser_1_1basic__set.html new file mode 100644 index 000000000..ee7bddf7c --- /dev/null +++ b/classstdex_1_1parser_1_1basic__set.html @@ -0,0 +1,235 @@ + + + + + + + +stdex: stdex::parser::basic_set< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_set< T > Class Template Referenceabstract
+
+
+
+Inheritance diagram for stdex::parser::basic_set< T >:
+
+
+ + +stdex::parser::basic_tester< T > +stdex::parser::basic_cu_set< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_set (bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + +

+Public Attributes

+size_t hit_offset
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_set< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_set< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t) -1,
int flags = match_default 
)
+
+pure virtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__set.png b/classstdex_1_1parser_1_1basic__set.png new file mode 100644 index 0000000000000000000000000000000000000000..ddc42eab11d8837190f3b5944010003bdffcc981 GIT binary patch literal 1140 zcmeAS@N?(olHy`uVBq!ia0vp^hk>|*gBeKX+O0PSQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#NuUd%8G=R4~4s`?~M70#8f3 z9dwxVkBe>6m+L1cTxnK` zzkKGPK^lAC;$?5$Cx!i=-l#Hl-?;*#l@eiRtY0rGJ^1aOe*CfR|Ncd&ADg)H<=w>B z)B9KRg#16~AA|8{}rmyaad>uuk|e0Cka zwriL9EUo*mE|(oFxstf~)!x@U=_|{3$1mb^o|(D&*Tj`8Z)KlP;GLyj-0Hi&?Cjia zKex-DPs`XKArZ2w?^8l^xWE5%#ffXLe)#1#+cKCp87k$@8}l2sSImx zT(OLuek*Rv%Qbpila@5CKL0HxSM_9Z?eF+zmHH?@9`*mbRDRC+mmufy>8%Kl%FFc$ z3ZC`4JeJREav2Z2f5pZiex2RmPTuwQ9}I1*4?hXaKOj)b$#Bo{AOiz1oEScY8!$BN zZ(?NlBg(_@V0{7uLp>`q!w+ojY4{fq8vH{b64zO5(!@86AnJ<7qCcOSm?-s#$c zGIxCgm5JBB-BlMv3gZhcI{i+m63^1J&Rv)@v$j<2Zen)qU1{H`?>$dQ`KxAn%;+e2 z`$Fd{&+oaj45rN7wn~2HtX2KFPI+cezsSZF2?plYEmz+e+L+tM*4^m1G%LlRao^l_ zl}k~)>)&s&{3~`_=HdT(d9S49r7K;sTbG=Bx$BDAGGF;?OA8mTzY-=mv3T$G`rZ16 z#s9Uqy2!nF|IE?lNv#OTpImH$g1}(aTv|edV0}KPK6Lw>;(wuvlb~V;tEzxUjj_OUjHXHs?5LgAnnz5!!-@%r(9RR1g75@l=QouKl<43gI1<>Uy9pY zwrzWFH*wX~?X~uI=g0;MHz(e{kQ1Q0CZuhl^c%@3r|aUa(*8$akAao)^jmejL=x=vLF8P x|Jw`y87lHG)<11jxgQA6yoV+fpSym|o~Pub<)+ZD$AIMngQu&X%Q~loCIF;xEvf(j literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__signed__numeral-members.html b/classstdex_1_1parser_1_1basic__signed__numeral-members.html new file mode 100644 index 000000000..e962a5036 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__signed__numeral-members.html @@ -0,0 +1,102 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_signed_numeral< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_signed_numeral< T >, including all inherited members.

+ + + + + + + + + + + + + + +
basic_signed_numeral(const std::shared_ptr< basic_tester< T > > &_positive_sign, const std::shared_ptr< basic_tester< T > > &_negative_sign, const std::shared_ptr< basic_tester< T > > &_special_sign, const std::shared_ptr< basic_tester< T > > &_number, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_signed_numeral< T >)stdex::parser::basic_signed_numeral< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_signed_numeral< T >)stdex::parser::basic_signed_numeral< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_signed_numeral< T >)stdex::parser::basic_signed_numeral< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
negative_signstdex::parser::basic_signed_numeral< T >
numberstdex::parser::basic_signed_numeral< T >
positive_signstdex::parser::basic_signed_numeral< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
special_signstdex::parser::basic_signed_numeral< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__signed__numeral.html b/classstdex_1_1parser_1_1basic__signed__numeral.html new file mode 100644 index 000000000..82805f0f6 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__signed__numeral.html @@ -0,0 +1,251 @@ + + + + + + + +stdex: stdex::parser::basic_signed_numeral< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_signed_numeral< T > Class Template Reference
+
+
+ +

Test for signed numeral. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_signed_numeral< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_signed_numeral (const std::shared_ptr< basic_tester< T > > &_positive_sign, const std::shared_ptr< basic_tester< T > > &_negative_sign, const std::shared_ptr< basic_tester< T > > &_special_sign, const std::shared_ptr< basic_tester< T > > &_number, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_tester< T > > positive_sign
 Positive sign.
 
+std::shared_ptr< basic_tester< T > > negative_sign
 Negative sign.
 
+std::shared_ptr< basic_tester< T > > special_sign
 Special sign (e.g. plus-minus '±')
 
+std::shared_ptr< basic_tester< T > > number
 Number.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_signed_numeral< T >

Test for signed numeral.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_signed_numeral< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_signed_numeral< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__signed__numeral.png b/classstdex_1_1parser_1_1basic__signed__numeral.png new file mode 100644 index 0000000000000000000000000000000000000000..34aa69bc99b8b6150fc4ae6ab40d1c1734898016 GIT binary patch literal 874 zcmV-w1C{)VP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0008@ zNklyGOn41|Y?w3_#S;*;iPY)F-~yWQ0>6{7|)HXk_7Urf_9B@`x-OsBz3 zl6f?^NivV_a2NMSlCP=fpc#t;=TXc0BgyOfE8HaMbe;R9EnVb(9OrVTvmQa#=Q`v( zzV^4j$3#2QHC-H9f4@X$;QIFtg(MqY<1VDNjku7m9ZwrWH5W(RL}OToWT9(^C;Ri< zSM&Wccic+7gWaTh5v=Qbt*P@JkGe59);d7m+OcI{*TOp(k1D)_Z@u3Q;7`5Z zd&YL_`MxPD(#M>y=eB=u+Nqo|{Z%K)&*{%`FU9L>wvyy)8uv|- zc{I35GLHr~N#@baJx$Y;PXO>+`T~H2O3MB9l@mNE_l%tqJS+F8=KzpNgBt+yXmA5S z9t~~)$fLmx0C_aH0U(bCHvr_(;0Ay^8r%SoM}r#x@@Q}aKpqWl0LY`k4FDfjDWxP7 ziX^4e;FhF38r+hUM}d3mynPlu2PaOS#d>8Qe$7_BCCTZ7+>&%t?{l9yG498qEGIMT zF}6O}3+M5*zx_QX+L5m5;?Vk4$ZdG>)hsgOZEn+M-t1*Jk!0;Tcaf}ZUW??~@w9K& z=HiH(Xbew6Hj64-Kerr18~Hd6x743=%Wdm|$I3xvZC&4MO`Y#}5lzUj0q5}SAT7`0 zrhU+3!sod=(k*RTn0>}p)gxU~cNa~bcOzfp_Ip{^g)$ZkT~pU$n#D_snb26AZPWRd zWUUG5B44}jka0KfyGYiK2)?ehxz*3MSKsf3t;g-kN|6+F^Znj4wp-8lAXaa!p1P`P z`|+k1>$x)u^*mS}H)~h32D|$mlceYRrjN2Dwfa%#lH~Op+)FX4FTVTPJ+YOfZ_wYk z@1G!(q;uWjmZbkhgIkjFXmCqX9?jgPl#);X0CfJ$@}QY^asU7T07*qoM6N<$f&}Hg AcmMzZ literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__space__cu-members.html b/classstdex_1_1parser_1_1basic__space__cu-members.html new file mode 100644 index 000000000..5b5ba9531 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__space__cu-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_space_cu< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_space_cu< T >, including all inherited members.

+ + + + + + + + + + + +
basic_space_cu(bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_space_cu< T >)stdex::parser::basic_space_cu< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_invert (defined in stdex::parser::basic_space_cu< T >)stdex::parser::basic_space_cu< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_space_cu< T >)stdex::parser::basic_space_cu< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__space__cu.html b/classstdex_1_1parser_1_1basic__space__cu.html new file mode 100644 index 000000000..1968e3749 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__space__cu.html @@ -0,0 +1,207 @@ + + + + + + + +stdex: stdex::parser::basic_space_cu< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_space_cu< T > Class Template Reference
+
+
+ +

Test for any space code unit. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_space_cu< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_space_cu (bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Attributes

+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_space_cu< T >

Test for any space code unit.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_space_cu< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__space__cu.png b/classstdex_1_1parser_1_1basic__space__cu.png new file mode 100644 index 0000000000000000000000000000000000000000..b429a485e3319ccf3e8d5e6ea62466fb78f1f6ee GIT binary patch literal 814 zcmeAS@N?(olHy`uVBq!ia0vp^SAjTygBeKfe0<;*kdhAY332`Z|38rV;?396{zJN+Dq z$0yURG9krudemp&TMf$8| zyAKpuZy$Ir$xeTNV_{^sao$3sEs8T=+8 zo?-g2;jwO*nCR5q=T`6TI_U4ezaSiF*PRLL#T36kc5Jy*|2j7GcKzGfr!iUA4#;d0 z*;ah^`hiW>`L|XzF8#3c!8?Wf>)xpRjL82lu6(lpI1Lqu}WSt$;Ny%|A_4)U`?7%l)q zjN!{dPgaInqJ-XSES=IOJV}LjnWw5JP>W}fJXgr^2f3G~HS^2d5B#Wd@+JRDm6zYI z_Jpi3dos8Bs#*E_+w$u^fB*RLrr4{Q%U-_Q(BpgJ)|I+bb5qzS#Z>!DU2=(Up32U$ zZ+)_}wpu(E({dI!nq|iOcZs8!?Pb#t-~9(0H<~%FYW}k9T)EA&X_<#-^FCf@c&~PD z5ZSa6TRzA1!nhEm`r3WjV3ON=(UgEQLMUY~S>b<1Yj~eMwA>u2;-+z6&+bbwD zT_j%jkaiclV9_7p_geRlZho)zJZLl9vja=*=4S6>oA$Q)vU+xc-r=`WGs@LgZuuWl z=2^Ao{2$?8E!Xn{-Y#9RhtV_Zw6xcy$+OB~Auuas(v|kGRa1hbeE%~@tla2zudD@> P4;VaM{an^LB{Ts5mA{H5 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__space__or__punct__cu-members.html b/classstdex_1_1parser_1_1basic__space__or__punct__cu-members.html new file mode 100644 index 000000000..363893d9c --- /dev/null +++ b/classstdex_1_1parser_1_1basic__space__or__punct__cu-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_space_or_punct_cu< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_space_or_punct_cu< T >, including all inherited members.

+ + + + + + + + + + + +
basic_space_or_punct_cu(bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_space_or_punct_cu< T >)stdex::parser::basic_space_or_punct_cu< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_invert (defined in stdex::parser::basic_space_or_punct_cu< T >)stdex::parser::basic_space_or_punct_cu< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_space_or_punct_cu< T >)stdex::parser::basic_space_or_punct_cu< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__space__or__punct__cu.html b/classstdex_1_1parser_1_1basic__space__or__punct__cu.html new file mode 100644 index 000000000..2ae9827f2 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__space__or__punct__cu.html @@ -0,0 +1,207 @@ + + + + + + + +stdex: stdex::parser::basic_space_or_punct_cu< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_space_or_punct_cu< T > Class Template Reference
+
+
+ +

Test for any space or punctuation code unit. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_space_or_punct_cu< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_space_or_punct_cu (bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Attributes

+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_space_or_punct_cu< T >

Test for any space or punctuation code unit.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_space_or_punct_cu< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__space__or__punct__cu.png b/classstdex_1_1parser_1_1basic__space__or__punct__cu.png new file mode 100644 index 0000000000000000000000000000000000000000..0d9647b599d1d0ce36b8002ad6c3ae419cb8d82f GIT binary patch literal 952 zcmeAS@N?(olHy`uVBq!ia0y~yVB`a`12~w0OMsMgfKQ0)|NsAi%olIImi8Z7 zZegHVATj;SivtG^0L6nRU0wl{<17jC3uXZF!N8np_7w&OW@k?q$B+ufw{su%Jyzgp zY46-J>wEp9Z0Sh{9d>7a+xB*@Oz%{NV+Ys`>o@A0p0v$2!ow)HR*2nGyKur5DCPG^ zyNtDu5$h+`y+*u3C9cnRCt|#yyMXRw+D`{OJ0Bft&iTT4@)7;a|&KmZ|yHw9eQxwZe*rCHndshRNfy`7-Lb4&TBXyKfn zndct7NWbBiQ=IuvO*}cXgm>d_SqYhM`x5Uy{GF-rylz@qn`yakL5}XbtJi#D4{wT= z+1spKn*GkppUHBv*Kg)~`I+^3Z2gSx77pM2-0gqJy_~yz@q}ypCe85L{eQRmjlcKp zPstwM6+g#%TeAJ$$Zb1+?YeRM(b-3-uGep#ee_y|N3QHat+=kI-M0B>J5=tc&F^_U zP5-=12hpP{CymeC>V5ktehefuW4 z1L@A#43+*Pj10lv5)5mOFdp!dp)%!vFwjdg^LDe6XXfk47AldQ&XcA>sH+cGw8|^b zVy%$;&dhwZ+GSGHUV(O%y+`_Z?Yj2w+WT#fm)7ZCzrHnb&CFf*n0DRa zvD~#yKR>N!|JPMwNn2vCzdx%I*x6OHFfYeKRCv4o}$o`buH{{k(a1 z+a(q*Uc6QC(YhXsWx}tROzxdkILzmAU10b9`7>YJ%4~cu^5{ZgpYgfW{0@6>hB*FP zIg`IBM^tY$4Zfau|Imcq*V`HL@GUYe?F?dlnJNIbZG+WnFzFpn{Ky85}S Ib4q9e0R9Ta$N&HU literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__string-members.html b/classstdex_1_1parser_1_1basic__string-members.html new file mode 100644 index 000000000..5ce9fdbb8 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__string-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_string< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_string< T >, including all inherited members.

+ + + + + + + + + + + +
basic_string(_In_reads_or_z_(count) const T *str, size_t count=(size_t) -1, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_string< T >)stdex::parser::basic_string< T >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_str (defined in stdex::parser::basic_string< T >)stdex::parser::basic_string< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_string< T >)stdex::parser::basic_string< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__string.html b/classstdex_1_1parser_1_1basic__string.html new file mode 100644 index 000000000..57e95e1ad --- /dev/null +++ b/classstdex_1_1parser_1_1basic__string.html @@ -0,0 +1,207 @@ + + + + + + + +stdex: stdex::parser::basic_string< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_string< T > Class Template Reference
+
+
+ +

Test for given string. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_string< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_string (_In_reads_or_z_(count) const T *str, size_t count=(size_t) -1, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Attributes

+std::basic_string< T > m_str
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_string< T >

Test for given string.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_string< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__string.png b/classstdex_1_1parser_1_1basic__string.png new file mode 100644 index 0000000000000000000000000000000000000000..421a49836787138912ac8c47e57ebd400c2b27da GIT binary patch literal 791 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#NrqdAc};R4~4so4D?=0#8eO zXUN&V{(CZ=8Kfuq#(kf%5~fKGpYRazuNro#c9t;-@p7nGEZf{_vCphzcVgP zPLW^x<@6?<#as+^f&2^-Va}KB<&+=u`|dx)-(zp~ca0^(1@Fmn48JliF+0fnRx!L- z?8(niYx0tDLBEmMhdVb?u&f?9o_HGYT!}?8p=kfP;Z~Nq97pRIV6br(>MO8 z$lh(@d*h5|?2+tC3+|_XT2-_pGwR1T5%(|eChdx|sVvO?d;1&X=Y=bEw5mQ=WmUa@ z_k1INP@W~jvunF_zO$F@tWWMZoQ + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_string_branch< T, T_tester > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_string_branch< T, T_tester >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
basic_branch(const std::locale &locale) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inlineprotected
basic_branch(const std::shared_ptr< basic_tester< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inline
basic_branch(std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inline
basic_string_branch(const T *str_z=nullptr, size_t count=0, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_string_branch< T, T_tester >)stdex::parser::basic_string_branch< T, T_tester >inline
basic_string_branch(const T *str,...) (defined in stdex::parser::basic_string_branch< T, T_tester >)stdex::parser::basic_string_branch< T, T_tester >inline
basic_string_branch(const std::locale &locale, const T *str,...) (defined in stdex::parser::basic_string_branch< T, T_tester >)stdex::parser::basic_string_branch< T, T_tester >inline
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
build(const T *str_z, size_t count) (defined in stdex::parser::basic_string_branch< T, T_tester >)stdex::parser::basic_string_branch< T, T_tester >inlineprotected
build(const T *str, va_list params) (defined in stdex::parser::basic_string_branch< T, T_tester >)stdex::parser::basic_string_branch< T, T_tester >inlineprotected
hit_offset (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inlinevirtual
m_collection (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
tester_collection(const std::locale &locale) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inlineprotected
tester_collection(const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
tester_collection(std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__string__branch.html b/classstdex_1_1parser_1_1basic__string__branch.html new file mode 100644 index 000000000..ef67ad3d6 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__string__branch.html @@ -0,0 +1,199 @@ + + + + + + + +stdex: stdex::parser::basic_string_branch< T, T_tester > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_string_branch< T, T_tester > Class Template Reference
+
+
+ +

Test for any string. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_string_branch< T, T_tester >:
+
+
+ + +stdex::parser::basic_branch< T > +stdex::parser::tester_collection< T > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_string_branch (const T *str_z=nullptr, size_t count=0, const std::locale &locale=std::locale())
 
basic_string_branch (const T *str,...)
 
basic_string_branch (const std::locale &locale, const T *str,...)
 
- Public Member Functions inherited from stdex::parser::basic_branch< T >
basic_branch (const std::shared_ptr< basic_tester< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale())
 
basic_branch (std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::tester_collection< T >
tester_collection (const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale())
 
tester_collection (std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Protected Member Functions

+void build (const T *str_z, size_t count)
 
+void build (const T *str, va_list params)
 
- Protected Member Functions inherited from stdex::parser::basic_branch< T >
basic_branch (const std::locale &locale)
 
- Protected Member Functions inherited from stdex::parser::tester_collection< T >
tester_collection (const std::locale &locale)
 
+ + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_branch< T >
+size_t hit_offset
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::tester_collection< T >
+std::vector< std::shared_ptr< basic_tester< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T, class T_tester = basic_string<T>>
+class stdex::parser::basic_string_branch< T, T_tester >

Test for any string.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__string__branch.png b/classstdex_1_1parser_1_1basic__string__branch.png new file mode 100644 index 0000000000000000000000000000000000000000..31fa6a8e1d9f81d2cd60bec2dbefb7b2520e8110 GIT binary patch literal 1971 zcmb_dYgCg*8vcS>Bx=!C(DlYj10^8XLx2bfmOvmM$i)!M0*TnVa#Iip0SpbWQlX}W z$OnQ+3`n>O1ZzU%4t9IQ-A33%E(M`k1qlg+wp@$^2>o!&Y0v4;?fjT|X5KkxW}fGL z-nkJJ;Ij*P00{uVE|B0w1OS9NjC;0kf%_6(X)8P&3_4B1udlDeaC&x$&i4POOKSnYl%*lbTeWBtQ( zW-eAAzmiPyhx*RuKClf+v>1-?MO&b&irlQAB7*!j2?ZXlBS1J}0qT0CIf!&_j7~ZQ zC4Y5h8}%ITYlV7IS6C^cgcYEiGlbIzsk&=|UX)vuy079?leR5YyGmy0uYNX7%PH?i zK3sg@K*{pUoC<_8o*3Z^#crZIU{b%%$@rmeXsX4SdVajpvNftPX60vAUt9}~HF|EC zPsQEiw^%Um8Pn+xMe=P87x_E1894b!-dQcf-OP|xd_26)C2GH#G{73oYOH?jS?F?1 zHI_IYpP!n3UIZiw~&1cf!VMMQ|`JCbb<-azGTTnb{L&?pm-NPw?=)01VX z{Q&HZws`|y*WR|fTtv>ySOevI^rrC6gzEY-YsTrvH1D~Sqs-3X&K702e4(EfMD63A zvwz5728GNmW3XhUn?CNU-wGsA8e4NKHK7a}|0Pk^(=}n&l5;k4=x%IU_LK1rI^U6g znRX03rKI8Glque%Zef+0O?B(~=7r=4`kpAYZIUdjf$}dqU@tDH=S*xPBt&|ji@5EY z%bK^$=5oZDiE@yMQY}m{G7tEye7alKD3JURc{;tmwsFDZAoWCr##dOGuOXEwP>Ygg11LjjITE&+zT{22U*rQCnyrl9rrn8{(yTniM z{U0nZFpq)}7GyZXKZ__pt%Ypl`R`eKLOp}7LRA$#*wWM7f^y5x&hkD zlegXvv^GfdME?0&{+c4Kr2?Wa=!?E+%tBc}4wjozZn`r7%^hQ-4qqU7lxQWl+|M&$ zJ&o+@3D6kjCF7fJw~axN*sZ%} zgVJIQI2WpzdT~}UdPrNoqrtLDulcuaA*p`;m4)g;zD-!~vv=E(btx~47wg;y1~t5f zFP9(BWVPK%KV_+sdebl`j=#v#s#K-Jh@-#y;@cDZkk8lU}fW7RQ6q-0#A#Ab} z1W%fV)z)&#{DcBzE$!#r~GCh%*={V!d{e3p zcwC6Y`m?#Q6Y8w8_-aWGL!5EL*on*IUHyx(OZ%~(n%`=koz(e;Agk{x5JZYPg9lO? z4nA^P)V0K8eO#9`I<N0q1cig+siZ$tl__70y}Xr>?hwv4s~ulJ_K zU_?2L3JwRqdQvW(J*0@4v1wk-5hzE#KhzZG%5Hw&hr{VCZ$JF*VA{VzlI34vt@f75_izzHQ-+hcaL+Hk95e5+%)DQ^sgk3JdPPf7R({JjDoKEO+eJAdsLC9{*3 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__tester-members.html b/classstdex_1_1parser_1_1basic__tester-members.html new file mode 100644 index 000000000..94fdf80c3 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__tester-members.html @@ -0,0 +1,97 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_tester< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_tester< T >, including all inherited members.

+ + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__tester.html b/classstdex_1_1parser_1_1basic__tester.html new file mode 100644 index 000000000..1050bc2f0 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__tester.html @@ -0,0 +1,189 @@ + + + + + + + +stdex: stdex::parser::basic_tester< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_tester< T > Class Template Referenceabstract
+
+
+ +

Base template for all testers. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_tester< T >:
+
+
+ + +stdex::parser::basic_any_cu< char > +stdex::parser::basic_dns_domain_char< char > +stdex::parser::basic_punct_cu< char > +stdex::parser::basic_set< char > +stdex::parser::basic_space_cu< char > +stdex::parser::basic_space_or_punct_cu< char > +stdex::parser::basic_url_password_char< char > +stdex::parser::basic_url_path_char< char > +stdex::parser::basic_url_username_char< char > +stdex::parser::basic_angle< T > +stdex::parser::basic_any_cu< T > +stdex::parser::basic_bol< T > +stdex::parser::basic_chemical_formula< T > +stdex::parser::basic_cu< T > +stdex::parser::basic_date< T > +stdex::parser::basic_dns_domain_char< T > +stdex::parser::basic_dns_name< T > +stdex::parser::basic_email_address< T > +stdex::parser::basic_emoticon< T > +stdex::parser::basic_eol< T > +stdex::parser::basic_fraction< T > +stdex::parser::basic_integer< T > +stdex::parser::basic_ipv4_address< T > +stdex::parser::basic_ipv6_address< T > +stdex::parser::basic_ipv6_scope_id_char< T > +stdex::parser::basic_iterations< T > +stdex::parser::basic_json_string< T > +stdex::parser::basic_mixed_numeral< T > +stdex::parser::basic_monetary_numeral< T > +stdex::parser::basic_noop< T > +stdex::parser::basic_phone_number< T > +stdex::parser::basic_punct_cu< T > +stdex::parser::basic_scientific_numeral< T > +stdex::parser::basic_score< T > +stdex::parser::basic_set< T > +stdex::parser::basic_signed_numeral< T > +stdex::parser::basic_space_cu< T > +stdex::parser::basic_space_or_punct_cu< T > +stdex::parser::basic_string< T > +stdex::parser::basic_time< T > +stdex::parser::basic_url< T > +stdex::parser::basic_url_password_char< T > +stdex::parser::basic_url_path< T > +stdex::parser::basic_url_path_char< T > +stdex::parser::basic_url_username_char< T > +stdex::parser::tester_collection< T > + +
+ + + + + + + + + + + + + +

+Public Member Functions

basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + +

+Public Attributes

+interval< size_t > interval
 Test for interval.
 
+ + + +

+Protected Attributes

+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_tester< T >

Base template for all testers.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__tester.png b/classstdex_1_1parser_1_1basic__tester.png new file mode 100644 index 0000000000000000000000000000000000000000..292a3495d8264051cf2b7c3b3254f82b3344ef7d GIT binary patch literal 29947 zcmd^od03Nox^`!@<){_f(Yj08G0M~hL@S6a8OK&ijnLK>Y7wF$AZkDa!kVP&wA8Ak z1{E-BYOSFbAqql(K%#>Z5i!~b5kiQ_5+IPU1VYI6J-?S#ZNE9+cU|Y4>s0O!xZm{ZC(c<*;x}?R6-Ir$$Bc4Dz0t@ z!_zvMR^M&bM-|n+{y51T7>54p8V>wboP{Mc4#m&|RwwBD_x2T+^1r#Zjz`FK=~=no zbcf_1bmGd+sf7iOo5``qr@U5m>pEM}f1PH%wd=5sA@gBuaMm^G3@e{dx;SU53`hEB zPo+hKv;4&xgE*4N4psYQGZt9O-_J`4BRrvH1~~G42qw!u;>z87rp0Yr?(}M>^h)xZ zHjd<3+`Lm^mTuX(;#D{4yF*xfVfeyrOJdd}^V4k^3#JDMZHM&zy?guW{#jfVwGIxq zEQD9I=_BdFj;OB-tF*zk3UU2?c}iz*opk^?QD#RAjHeHB6nSJdoM|ELCpc7sHo}a~ zyN$Ub(SpvR@B%z5e22rUR+^OP+srX=h%v$FYuqUK)Z{=ML_clX@}Ia=;}><}rPsxO zedy5K<5Q-FlnM%#{4M=a`VZS{{5NG!ncDi^lD`d3I`fyA#J$9iS7tk|zj?iU@~e`0 zGyV&o=sFVg<>}zd!COzy=>F`y3kQE0@A4>p`^P~aG12j^;ox1QFFbq@8T->6d=^^I3@z&R0ymG3oax5pI@M3UT|Cpad#>cq_gQOr`U{AmAR+rl>F1edyfnmvLe}ufI!)Wtj%Hks(=}F?y-0c0L)Cp*SlymI5I_Q9S?W;6Ri z`t}E;>#Iyws!xLs?V!KM!Rr;d@Z*otna%fpP2c_*T)P<&E7lA@^Eh$S$aT~{gzsNp znY%oHdF6pWpT9dpH2GEf(f{%Y`}cAD{}+Sni4H81SMO?1=d~s6vwhYPVkjY0l=p^2THggMeK^U=H@wi;uJHRj=(2GSvU5jamWa%1g>Fbvoj))c|Zy(>xMjZVh}rUQNTP-Ga}me)5W53d>48jxYF(^DMQcoA?76nF!1N3+_c&i% zYU&KPyrnr>)iZmW=TOVf0r!qi5$wQ8$Q)}+w)4C7_id9B78Doh22RMV&a;bc)>ia3 zPg4sm6+f4qg=k5rZ>^azXpUMSQDzuESHUY{9Mb<)CP}x~83KqpZk~La*y3y*mGH0h zKoW_>mN;?b3L`DRCEb|(Cc|()yuz@G)2GtOnj?1BCEb)jxVm)RolLl{XjOA%!v0_n zUrP;tYnqezeHz8uP zgAI35$>DvA3uN_Os(sRvo1bPm6q-m2=2oXa;Sb2RF_T)1YB5 z%+6%)(y+=>o9DwZcHBLQN7Zd898!ek4n!%+FsnBO9s1<>yI$TU`6D?eNHZF@4?I!a zuBgm?l)JogO59SP1v6$ESNxae!havB*mu~agl#>2>2&Z`?;BgVMI?Zt!V)L$5^@8_&Vdtx10}<@jxFuhY8@X_lmW;ucdv zK|>13gG4W7!$n)GZTdzhX07*QZK`Rq*AU3U-j=qCv=5nY!ugqgTg$8`Nsk3Gt5gH( zdF37T<~yyo%5Hov(5*LY@|`Ab{nbA-d3KIBV`DX>jon1n*2Hwy=Bcv$r;#m>t>yKJ zhC9ht9{a8v?9QK$-zIo1Y7bQ6B$jOXOzGz4Yu}4k>#}N~SMa#vOgI*nD%udjcW^u- znNhACf{(N1JL||F7-Cu?%iP^nCY*LtyJ2yK4+_71j-@N!(GY}13gypu zeJHvfr-rYKHgo4kOv`$RIP6L-KR#t6DsDYBC@I3VODW}z#NY-Tioxs4D?f!?Y4_x^ zTO{%0Zr<+ywvzn&VF(Q#6l$o~E`RcA$$%T^Bj$#YHI zge1z)QGA6j9J9~-EzGlfiQW5X^CXqBTcz8~eU8a#I@MgND@~td>Zd*JxzqT7F~5Pp zwT(|~%VAX>yy&^4;-7HpX>%l-4xk3n3wlBR-Z@!OhDEFyHj`o*Mq_`5RM};XD_WR_ zS4be_#6iX4j)z9_r-kR-2eoUXqcn#-8_x4eZ}uz-#eyw_ zNTQ9+V7#}_9El1(qK3kV$+G*LuS{q9S3Z4*Q}wiejzqm)xlGdZtMt?qb0h&vc*X!< zcD1o9WT5BH!w3C){p&p%{Qt@iK4AF@mx)qcy;H1LdvRV;crY(ac&~9nrt9k1aWUbs zH&^NOFvm6nKLh0}y;B;Vq@S@R18>PjH!Oj}3vM;pd6_4{iH`{$?vhMVj*BZu5n;rY zKf@;(mmF{YTz(R7*YG9WOz4?wy3_Ex_7J@ev|WTo^)Td)JzGz=Om;hEmojClc@{K- zoHfu2)<7%xWzeBRVgLP4)Xfl0i1;X?*QZ_wu)$-LY)lVy5;B`ZQ^HqL zC3qL7L=`$me}#@D8QQ?KW49oyEkaq1cptLbFE3=ZEKd*X088=o68YN|L;dls&58Jm zui#g_wll#?&E30kxZq9?iV3Ihih8=^N$Uy2h2%**tB6a~^YKPoS)^C**YNG-JJ+4P zU!8O%B#!^FoBe#*1y&-?t#?P;O?eH&#l5dE>39oV`3G%Iyp(p6axG^xtL3Pv-FK=V zi19hIZSi?>%Y9*O?18Z|`yr8^-L~Ue+_pU1jY;{A3vWl~3cI4_1ZLR!-N_+#haShe z!JViZ+)3FofOUiUE7azzB2LP$B?Xb2ng@SLG;eqpl8KX`Dqu-xaWD$Hnf9rDv{s6m zvMWtWY1@N?@=w_yjV+mOOnN-r5E?GNy3$JkHS)n@Ecyl(EUt(!t&ZKyjD(n0JuuE&4%cK?%unRJc%>Brqosdg7Y*w~3}}*nW(p1;yr=`GtIo@^e2{ z;uVL|63g|9w(dr&7`TMd$A5b`VR@>PZLLe>^mAtFV41tq>;?^mU)K0_mPD5b6)Bq0 zzJHx`MxorwZ;Q5DDugjbM`O6mOPD1Ys4JU{vv)hvqos$jw?IZ#L6;?>$^Ro|*0-|O z$kIJjcx7d0uEjU+X;a<{bTFnmlAZ7OSuO>PXT)PLvA8dv#n@X@_APfH?PB`Igh4-F z&PA)};6o9`5iqWFDRj9*SIpE{OE1GS<(nLm?6QE+c{Rmh=eogMKBs`xQ>QI99CkOo zgGOlR@mdt7;$AuysFrd~Xt*-mlM+u(&M8P0k;9#%sUq2p&DE?dCr7u=d#X?1HbpZ` zD%k6tW8Yr0@D_|inDBaKU;6_l?#RGfe+`(SX7N4ZTxX$nm7g6ESLA$c$_>^yq(;Z7oOfmtK=N@rV zywL1Pf4)8|?E0S48hb9KIm8Ng>897{N<2E66RCSY3p%73Jchzny+sFYA}?0D(pNd) z>11d7ntJEZl>yuShnG|X1>(fQmYdF{mZ7Sjt4#2>{clIJ1ZDK6o2O=d{Bq2YWDbsZC~(t9FN15usO>CcxLmZ*%j>C3(`Cgf`t>& zr!P|0*CbaDkK7A``DqJQ*fY{-W}V<}{W4)gGo^BKSXM-_{MN>eYnBYARHHQOVwQR{ z3GIsbkC?ARAhr>{Z6_~|gTb3dwKYB5k`j@D&x4aQHpy&6lT6jiH_4F7$NEW!hy+S+ z*I?u2YY~H~76z(7c>qE{+y&8h5FIpq6qva2+Zwo;&BFt?h)7uAvS28(%%C)UMyhwH z4;V7D#gllN_|n$F3dOur_(Z61=WhM>P!m98wJ3Xj?P^!`i0l+}Q^=!^&CE`eWNjr> zKbJFKZJw(8prvOtU>zK&Zd7By0I7f1BMpkxwk&e^LdirJGC-dA9;fn>@MycaxhpWv ze4L&(Hrw3aS+`=cAtpFK_UsimPu4>ivo{i13wz(=RJCM6&$$6`$&x;@+FZQ(MljQN z##PoC(IU?cQZ9Km@6{&NCgC3PjDdA3$tR>ssO^->>Vpq){mYajBiYv>wR=JfAguN1 z-5vZTsd(N2{_ZV(9sGTkh>aT;R|G;$P@?%dc(*-s*Ii-XNxVx9q*FSi({(-O)Lo__ zw}jr4O-Gr{HhagDX`2#SPD=@Np+7(u8hW~X^2K?OX5;oEJPe)@HTaM8r56~eFP(t@ ztpxzmA5h5u$xak&fPEH7a+hy{>Hq9knZ5TM7ke$PxB%gWjsqPj93bjnH}SVQ5T_yi)#ln6g@xqR{l^Eapu2*dgSKhy`XUg!ffQSp(&{V~yW zWtY2y4{3UlDPo)0mVOO`f~K<_OYu5s%=zJg+ewy*WmAukzWv%K_hpH+llv*+!`uW* zKkJh$=i^h#vv(F(J#7?rht#Q$-fhYhq1H5;C~{mJ@6s*%J44uEwlwd0aAghHjM#vEMH;>$!;;Usnse)e18jkNQ@G<#p~$ zvGv&7cHT3wAK^h{ziaSXC=jhnxqB^2ww7FHZ@D|64{$o!<$IuHX+5+S=OT24^h=^d zj}&=!U>TIHq_RC&2Vf4etFYw4?=c@vZW7(!86dCaqBNPr^Uz)ef^1c@YkI9WQO5d!GjTfF5@tV@aQj*3F2oP&iVWX*! zdb9Qzd{Xu^^tfN+L?~~vQ_qxKLACx}(m5Hf_H5joI8D%Mita1%XR%|PO*BhSeOp#R z5|#$U)K_$z&T?itI02`v6Gc|qR7;<^FoN7p=7{0}%o!%ui3X?~dBUB>Vy?kG=|;OBu8X2q6Cr zXl?|!n=tKHXR$ zjA!Rm8v2_{pPz;_S@)=&new8;lzB6Zduea{HsGWA#I1pnsHW`yys<-W!$&nX)REj8 zvG5M%kTfE~Zz1n$aZ5*4P?^XvTT`<20Yw$YO!9%(LXfxCL>XR)FGGuJB?qGf?~JiB zgd@Mj%3NMH!{|pVsFIU-?+UJXWF3*+)=uPO`U?MXA49gqyrRm^fY_hK*`25V72MnK z3@J!fpLwvPPF7TD!X47@SP!thCKM~Uw7;Y_*Au7~h`51zh_7`JUrt={rOvi(Oe1{X zYo_DNBto7&MAd-!77UpP~7Ep#!<|S@zf%{cMwBCzJxCnQelJTyW zli)jGpO4^mesGy3j-?KhaC>jEbnzuXKX<%9Kko+QT)A@oZ%3D(KF5k0!UHyYA7YwK z2h-K5#nX1J*_Ch8KnN$e55w2;NzzG9noNWxwlVfS&-SsZmCLb+N_BDHLFB@RIBXq9 z?t7i&XS>9*{niE|>vq<%8NOUg7uL%4piI>^nyI+2x!eDfz7$Qy<_8#VxPgjI#(6^% z`Zt-sjxQK`C!O#y9F4{>38O^B_rsaSqj24aj_yqGKhi*FHX}UrW4~cW^?~pWxEu3d zo~RKV8zVqMo!wo``{QDsw5S~7;s#oJQ}HBp^$14+hCh~4$}q^^QrvT@=s=XkR-%S} z9Y-&UXs}c}XrxiyFHp%2vuuJKV&&Erx4hC$^S!P$o<2a@DTk*BT~Rzh6f(XlI{SVX zW1qL%>m}l@rpJtefi$|gZd)9^wc|{(UG|S(mbz+CvFJ;;<*1`_DN%*2`=;S`O?}y} zU+qu$E-bcoPqSJTfuo;6Xbp)R#d_;$lym&qvg(4qqNaV$KPF$WIa;}%n0Czp(99w( z)s@58OS#?Yu~4b~r(>x=An?e{OZT=EM_5`7Yg9XKHKA%riQ`JK%qW{KOn$G-ek zHwmgFBzDM)+)DMen1|I4a-V@6k#@5B4Gms_wp~KQ(x$E$p%*mtSGkbiqPOXeKz?)j zJk4eB@!xBppmtJr@;3O%8d^`V@V=}@Dz{h>Jp1;|)dZnIdC9Qz{xmp4)Uny3nL9dG z{0L(OUeVVyEp-=6aq9yzhASokZfvveB`Tp8#(`~`1goI$q73vZw5wMMUqagw+2>fw zos6r5)OHzCn@{HpsZH=_s;y6MJm3oqBG#C_$kHXQWF5}>)mLNw&=39gBk4|2eCu7V zdKHhCmEyWpexSc~yN}#G%(d6283EYr+SVE<+zUk7_*NP=A5@q6?5u-^?7eeib8BnR z2q)*C0Gyn4&8aCWsb$b9mM&jc2!+y1K3XWhs9%#NUplD#6z;uFA97S$MydK^wtwx4 zuPbi}*hS~~3u{~QQ4{9GFqVimtfc>h8Zez*0pi`*=bzy9JVd!U1LOO4DKNf5q#nu{ zAqwb=py~2|c_OAtG=_?lu^Mb_*#hY3aY(8Wg-H=+NZ5n+&|i?3a&$rqI z&L_>mXpjvUCDFKp=nus&#yLPL{c8fq)J01#UdzJro!9Qf{n zKhPb~e~}mzog$o?rK4-1tDjl&LRZf)#+C1RFz_hG81uNJuj@y{FHya(f`IGz6!T9_ z|0$Kri3RkVu;bN6$kdmylg+f>Fw{b=^80QxtSf68p%l&hCoueKmI41tA_-#xV?a*W$pcO*>bEF}3^FR?(S6y*8$ zLJMIWGCAp4=}x4p(EkT{VafhMJjD< z9sng)XKJ85!K;@F7aW*MuiouLUaLVov9iq{Dpx$+cpOGfHU#Is7e~(F;B4%d?y!+M z1AUxi$4P587vGm}%8i#d1eAR-if7Q9LpnPi4Gb{~oTS_z>jF>VG0G%_$jeYz<<85k zv+`Tbch|23u|d}&o{gK(e66nRRC}TegsirU9G*9C8!uh-kI_t+F!SE*T6GR-MVy8m z3+)5*iXk5r-oZbM~ z+@Pu769$K4s1asi6NEDFG~Nes@OH=B$?+&5mO6MZuE0UBHa11zP^@J_8GcEy4bVxA zidi1A1jk($3}tHu4#52Bh#Dvz+;BhW(*>r5C_$28awx~qDlvjNLCRYZk+k{a?f-+%c^BDOX~DXHUD4^{LOjawhNYa{<+q>bEvE9mnLstUOjiM>|@GBTzQx9 zQENwao|CE}ymm9Dt({JeQpG1uq|O*JsVTSm$NZrZ+vo+7)@gw{B@hg;W0Pw;&#|lE zM^kZbz_b+K^G))wyyXk;571_~)wZVia^yeOK~TOr2`kXNN|I^MM%z%WBRBbiVVieB z5jSY4q@}S*V~`83T|+9>`Sq>#k{J0$RHmb;;qS6N)vSBj#Z4EoO2hbK@?ql~)77c~ z&3+RtYayj?I&)Xh4;TV>6(Mi}XIHP@*@!1Q0^{wcXuN%NCmpX3f?qsFkxfGA?iEOx z&jIz%J^aJSVQ|kz=lnTCC^XsVEVV0+s;o*U? zrnzxMa;5M~lTpLj3QOL+g!z5x-a&`xx1EEKC`Q#Oz~s>}1%4w`ZbMLEdE&G^1g%GF zLgP{hMO-u*oOMBU-ioE)cQtbr4LR%7yJ9M_!i;+xU3Hk3D%6}H5vm7n6bPt#?6c1kzr;qC1Mx^Tx#(AV$ zpr}{;_}?O{|9uS~Qm`gIO&^c>P)OlRy{!N3sH6?uIVQS~2rqUwq1YOO-2~nHD{#vJ z5GZU2-I z$1?t<{TbD|)x0R)B7O-B6tV^in{P?@k5-$RkJ6tQ%r`K}R9+qnZ}|~5Yd@wp`2GmZ znjXoM$HbrxfZ5WKpzpa<^xVVotMtEIs0Y;0Xx$VAIV6kYT?ecCNT^Xm6PSB2(JMD{ zRhv%gO)rI$LW4m9XAqH$EL|<+C$ap6{6x2R)bZ;*g%+iUwr?Y(CE%Y<x5*1vU?wA^;1+pX(cOYR4)OW5VNBcix4(k;r9c%tD#)`HmCW;X=y(mxw^r=yHDhJq|XISRi1TvB@O;U6YP zz4xZ1vel1iy!UXrZHnCHn1=>|yGTfz@GFpSx17K6q35HsJqrTNC?c6yy19G^FvSb# zS`u=O|4Stg}vHOVK8p9_2jBZ>qRrybsZ;k zAqeLL%&ENZto($F5+*4kj8;da)!nJ&Oe8XFUX0x#4bEqE476Yng3T~07v zNS9}_o5vtq_U-7a?{`jJ`{f#^MYcQZmIn$+83nT&)Mx})1Vk3V%kPnvM6HP(T}&&u zy^tK0^=ilI$4-*VsMBJB#62}03ZUONvLsTgX1D;_b5Q||EnF2qDNs%Kn}kc$hhY>{ zCf5Gj+zVnFYY3*Za6_JV=kPvPg6!CKpYy-)`aX1LWchLO?t=0Ibr)=a0nApQX~!0} z@*vYyqtop_y81KFFrsp|rd~%t;vc0Zz6a9vv3Q$4eaI}unDndYl)VGD-nrD*1crQp zX%L_CGJ4QofD! z?}l`bMJ~l6T5w%}UpwxEGl4dk|0qYHI(RtUcQ#2_w-F`eMwJs zdDoXRIl2E>$*#V-jrj@AHJ`&p*x)EnOAdIO!GEyFC4P7pgDO;!gt%M^eNX_I@dPTl z^XgljW+c{bvfer57A3?)$c-KaUd@hoRJT1H$%6kxSjy8Wk?fqWY?keYRUqZ-m`=Xe zo<5Wn7Js%zRAP%%$bSi+FY6+BI#L_Dx+`?1aK+>OXjYgGNU;lFy_n}>KAR_|w)EYh zW^NVjUm2ahzH6w|cCd2?pOX}rWZIKe71IYNV$L!^NOUktLotr<`GlF&g)0nZCi%nR z`n)BP75AE>D3#Uic)j1m_RkaT0wH18Z|}E`mghgr_F3|{GOqD)(+_EBY&U)9COVbN z3q{NglGd5~;a=UV@iQ48Dvq_sPJ&3NgS{Njp`Ns%)*xR(1J_cen7Ea;I<@N4?nsN_ za&m=S{&dyusQuMXOtqnhofiRd;W&bx022x;lR6jr7<$5}Kc2XoEU#_yd;EI+g0*^q zjwDOBF5tsUu!V_LMwv>P7@sQ`mpg?Iiy2*MGKDfSuR$pPEH7RtMjhBia`@_Nfas2I zsoAQ7RJ&{rm1w?VI0k53XGu)5E+9ARXi1|3hzI8|HQ4V4ttw$oPvOJP(CiOGd$*8yqeGGC>@v)6@Vnacj>+f))9yEJj9c5iyoGACdAJahb@o6K zJ*8^h&uS9CTViAhC-jYx6jPwhHVZ#st&>jB5CrGv{u-lrne%O~AOhA&dp-oQKw>?b zbV+8JU4@RSJ8ik)_aSo;#HA_Lu{3+8h7iizcFvo5yy{`{K~ezZTO>CgRS@W40n9>x z>-3W7PG~bH6#LSJYiSSKk5v7D)Jw<-2osjjkGF5Pj(xQ=RJQ{Yr>Kse3geY5EZ1KBm=b)5F4AF~M{-)r&NU={ zdP?jsrUz79rmTLpqdc~foJ$}gQ2-1lX(w|)Q`Zp1x>tF2WSYspib?8BfdfVUbJKcM z5m#$lnO8^(2b4mobfnxQRs}HKPQkr+-kHOD3w5044HFBx9u;)Ym#3glFghr^b|Nz= zMZc%Bvc=9zkOc`S6uNE!xqBmlis&E3x9uh$1K_JwhWc#{5q`;)Y)i~rgL7apYl{Y$baU-r(=f67@n^IFH8W965XK`5*KdFnk8YQ>#8l)*H+Cn>&L!I+hx)r4oni~|?vwkn z4}nTp!NW8JKB3Ejyfo72oh&HM+LMs-HfRWTI)fVv?@3X?9EoI$;*wP+EroRIG#-I{ z4{*>*nnkFXLnyukYR==g#*mvn7A+#0xj+`!hoHZAP??Yd!d?iBM`9}6v$Pq&|8|RT zy)2zqA+(Ye&$N=r?Zv4rK|65PFlZ=LmF9%c?h=$MzsHn%^nXb)VLO@G2PPU5H_814 zX?q5g5hog!3EBPu*J*9p*QzeDSon(BXb2?}b#rU0s`uR4gDaue(=eNZNFl#k`6MuO zN5kwglTPlT;UV7by{lDZ->+0PJzv}zwK;I!B%19QP|mo0-83&vg~2)FG8QBBrfbh%(_>(}U#f_Qn%Z<&|>W z?P#H@N%{pjQ?|)!3vg=tb^`}j8&j#T-=K~%7iHFS)U@FROqpw^uCG@-KY-C$aId7< z{3Ss+HeRY8pwuqZjFb#~VzT`Pu7+#V?BhA{ia5q)abxAhO z*}2YSlT=f}XphElYdpswG=~TJZtyicF*OYgZv`3L&8M1!L!-3IYYcxbvd|yXl2g&p z0~Eg#y-P}-&`gF;(r+fF9i{lx1yW&I6XDs*LUiqa8v`66Pp-`4yVP^H+AO;7n^IMp z?8`Z9N9_!nv`iB2q5}2%58#{8Z)J9wEe$KNNHmf>)<_CJxX_DL}A$yz~? z>C>3$`#nV=jQ(``<_{oW`^?MlHu7 zjg8Mhzy*@x5VWFjR9fGM7&YLg-C*e|0Fd-)c_DS~dJz2R=3n7_D+c<0n>Z=F8|%K? z)G79cHH&a0Sl)d5`ngA+KZ`@kJUz;_gY{i8Td<^91WEB*RYBi)QuNc=eiw$6Fye8; zm-k0#6QcR%x5?>FNB#VkJT{OJ@@SZP?fhL;W6X#UEAzJ8_m)3hc7pyk0<}3v8yYyO zeP8;FA(qWDNmqyJ=fi=m7_zekLv|RO!LjpbQ|3z8=kTnB7q2 zza^{wFv}DZ%5NUaY}`R2>7OaSC+JH#nucPyl@zzMW@lqhvayx=7x28=()+wnx#9J? z6nQ|=e0^i@lT?S3&1RrFeFoQI8kfz!fw>72H7u>Dac(%&i+R(I2GJ6q2um_558WdYlB+rP+U{^kfxya`3x4nx@}KXMM8axDRa2xE7LtA zE**E-SgJ7mU|O8D-6<`{RaU>uOMogxgy?!ke$3mlumIQ@%h&8$jftypwu4t6s@a7C zQL8ByTfu;CKjcDTxWjnRX?K+BcM$nIDQv;`b}hWz@MU$}WsLdvo4~n%1H(qX<QQ_}AURrCP=f!S20ATDDE`E&mx1JZBW46`45$m14ZmL&M~dbjW}!zg z?oCBfXd63a2X#RX4yzR*iS5{|i(-uqUTR5YEwfUc*M0P!mjIy}kx(+P;phd@{3n2~ z{AmPVnZ+2DSCu3*E3X-9EAurPg+e~-=jyMed{Tfw)HK_$fQe;4D}Xi7#^UO9Y-5o< z|AA@5ze>I+RujnVS3UWcX>gN;&yC#MIj_r})7OO(L0-C3U%~l|>hG&P;w*(G%v31# zcxPh;2=p9`f2}t37Fr088`_qmt=jv%qAGnL8BD$?);Ant4A9Zyr z$GbXFv>R1*1ncTBwvXYskg$7CaNUZNz_75R3#zisw+Nw4y`F+05r_dxgq_JA``#Dz zm_t~uAN8BhiW~~+w)4_x*m5HYLUjtz%52wia<2W1iCf>Y#4qNl6D1vTrF3mcH*KXu zk+6o;G}L_Y5}3cB^IMCec5cSE!^?|Wl1N*y8!^l}wE?eFkGN*Dt(CYT(Dek8*>Cv` znf=X0xSd0V`%qKoGhT2RLF*nr$@)Rzp>81kzZp|)aPr$?|N zo6K45Wp+g)z^j0^xWZN=rnw(WeYj(Qt|Y+MUlL-3zGQ4NNTN!*YOz%xgsiyJVUb1M z_#I&@TK0iGM(!lsQCRjlf|h+$FVxolJF*SB9+*}m?qMnI#a$oyA_AS-nt!yNF}BQ@ z_uMk0;mHY}l6*QldGT^D+7*asLhkeCDy)`J-JQyG@$sHrEY|(8oehcO!f;pCpE0Zi z4G7X8BHt<|_)uuK6|`uonwzlIxVe3_q>>{Iaj~i=xJ?KuCR|5x6iyh4qi6OS6TjGR zTOdIp#6bWZ{4N+YapxO`#Z=naK>W_cHh+*&>1caKN5s4Tijf$4d9(;x!`RN){sR*3 z`TkVRwbEA9tO?P8Ne8>VBuNrcQS1e20!&oQN<)vcvDKuoK=qve0whwsh?`7M_wRp5 z?e4Fyju|YA)sIw75%n#Mq{!^Rv@jmi3fUuj{=IjSkNO7jlpb{nNxcZClf|VrzmKMd zBkdk@`C(t8{h(2kW^>n~Skm^Wvb=SgWlznUB5*@7-Y79pSTbV|DfaldKE8PC8gE=t zeD4=TndU%IILc$Q$2G~7=@fb=ctGy>hYbu4rq%{fgC%>0pLZ)*)m2jteVy1)<-{9G zw46OtNiyzPLUCLe;bgdA!~fNfv5gcxQ(~%ND1!4d!yOi4-Q7WelKl~sY$&X%4|aM1 zN>A63k7BF^Cb5g4LBh)&9KxNZBEoJXAp z3+!>U>l^$Vwh;UZf0;4nWMm$&u$z_I}5F(hg-{AMZj+d$wK1;)K0 zLG!C-T%`p>uIxM8Sw}@^vDR$CIEg+1)ATWb2wV z(dVjR79$lxZ-2nYNFsf77D4SppIoGlK2UK5? z0Zf|$Z4|#1WMioU>ypE^5OA)h!60g%*@g-pXQ3~6oQ+1@_xm)K`0DCbTh%594FRmp zfVG_qnHLE47nIC}!?7nbN!u04g!-VUMpL-Tbsx(cZRO61enZk2tv2iZ3{UoaXKNnf zjmBYKdV$n-$>9FR$YYT2zDHeMGFbC4OvN88Sn&q0s%hAoCwWa!A2N?@7X}X61)(L} z>*Fl04O-MlzWp>32@R^v2WCn>vt) zX`&O4%gVJ{pOcUg>&4)4S7sShK}L*9)5-Fia@TH?e#_V~_C5+gJF(vhJ#W_M7UUGj(c63}=qCI|&Vce}dLYNTW&HgEfvJixK_%O z^(Fj9>11BKH>L#a1laBlz;<9)&oQlHOfY*YC@u5!SnlPy_Y3Adv}YWG#nlBpk*OHU zJdf5)6mLjmy$B{wE@16o8eLEe;d6zE_}Uq8h(mTTn+g$f`I1NgapPc$ji|vo$%N%R zBZg_lgUsG>RU6|J3aM>G&9WP!Ro$)BsX&U&7#fC)gTmt1j#z%PRriAD>p@8v+eX@gSpNs_IH3o4I7J^+$6@2}7sH#62CTIS5oL=qa$WpOB4PlZ) z(?Gkp#b&m#f;n%-F&3kp`p)1N(;G^}&462hx4>Df#P&5oX?BtEj1YsV-4m;`@ zLjPpnVbOd*#(uhqfgEXv_k1Lydp@$K;nV8Y6p>Tt%Q2swN05x33@0Oa?+n!he{OPw z;f~1K27KQ$5F`m92HH7#94)n(gq+3|Ge&SJQR+i#|51u`kUaOIOH5OZw{K6)&qk33y#hOVm=!Y^Sv)jp@w6D z^$ush3;$wC(+R&c(7D2Nmq4~O>8TJ7@9<`xtg^i%y zBz596VZd!!dblKZ<(sMs#qy;Lwrz5_ntFZJ^lim^mpN3FmpPTv`Ikfb%x@#u7D(+F zqJ|)Hq>d|?9;Q2qN%AMIj&h+CC9CAIWCgukIA`E!*&Z90tsd6jJzgHD0Lu!soKnni zS1+z;_=L#nL+I^(Ox<~;5FBMmrpTp8A3t>Ur+S>eYZHmt>1Kc4u9onAEECz%WrB-N zc#i)qr9w;gAn4A@hOVv~epdp`K3x3uLbt#ny~40Gifc?rm922Tlr0E@9`q_Av||~P=e`0x$!|Q))vO_-ST2CJrK`_%ugt9og&WM~G%xpwMz>x48=9VKf z!XL-q0t{kD-oFK`k3;PgDTMRb@`evu4*MsZgv$}PwN`>1aE=s=c9VmtNo=Yzd=}8a zwNt;~CY$)iY~8fjG=W9g_jjfN#CgJI+3z%Avn3(=_!2E8;jL;)(uf<~k#<2AtZi>L zhkO!m#Q21Zr`jtw*$65Iya^QuTn0s@D!qZ85;P`??`XK_7+_yYy@34c6ysQ&f)U1h zqf>gy@SdiXzUJwLZ(&cPG~LM+R?!B<#$BizQ{7B>>a^^3V{}AoEa}#g9Ig#MM_Bh~QbQY>!{q`1>}wV#hUq!WXc^$x>H#0UpK}t?e`zo(2m)gxwnoeB2ppq6Gl^q)B zzeLI}m|}RRc-R#{j+yuT-NW)UA}=8$ZNkjS|8?L5Gy_AwR(~)1fOW=CvADvt=2Ik- zn-4N!2LU3^7|8e0Vn+)KzJdgwwTyS>ai=_90%mXx{4qQAwpRe2(X`3bL#? z5EB<~x$`lR5!=uZmH!_(x*}>PuM*j)xQ~N#KyA_6!AqMTvLM^duCg*=>yS6mCbr== zjV4azBHM~7p0fH5hAGP0KJV&~r=scs3Q(p0uOYRy3*3`x9=J0GI+FJkkk)t=K!#ff zX75|#<&*Ih z=#3!`n=8{BP9Mc`<)}gNJ`|Fp?;4Z}SH%KvlJ>GdcCf>Z1!n{UzJ*uI? z{%bl*J%j2&z?@Y^q2j2()Ug*k=A4wkw{CQLh1rGV^xm>mL?tvZTRfb@JHM)}i96S$vm* zA$!A222c|4{$AT3#A0t&b*p4?g#=;5NPMyz&A3890>%>}GV@9Pf8OF9B*eAT(?5G> UungX&^cAlUyx-6H$M!@22mNBdF#rGn literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__time-members.html b/classstdex_1_1parser_1_1basic__time-members.html new file mode 100644 index 000000000..2cb1afec2 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__time-members.html @@ -0,0 +1,104 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_time< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_time< T >, including all inherited members.

+ + + + + + + + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
basic_time(const std::shared_ptr< basic_integer10< T > > &_hour, const std::shared_ptr< basic_integer10< T > > &_minute, const std::shared_ptr< basic_integer10< T > > &_second, const std::shared_ptr< basic_integer10< T > > &_millisecond, const std::shared_ptr< basic_set< T > > &separator, const std::shared_ptr< basic_tester< T > > &millisecond_separator, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_time< T >)stdex::parser::basic_time< T >inline
hour (defined in stdex::parser::basic_time< T >)stdex::parser::basic_time< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_time< T >)stdex::parser::basic_time< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_millisecond_separator (defined in stdex::parser::basic_time< T >)stdex::parser::basic_time< T >protected
m_separator (defined in stdex::parser::basic_time< T >)stdex::parser::basic_time< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_time< T >)stdex::parser::basic_time< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
millisecond (defined in stdex::parser::basic_time< T >)stdex::parser::basic_time< T >
minute (defined in stdex::parser::basic_time< T >)stdex::parser::basic_time< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
second (defined in stdex::parser::basic_time< T >)stdex::parser::basic_time< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__time.html b/classstdex_1_1parser_1_1basic__time.html new file mode 100644 index 000000000..1902e3715 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__time.html @@ -0,0 +1,254 @@ + + + + + + + +stdex: stdex::parser::basic_time< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_time< T > Class Template Reference
+
+
+ +

Test for time. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_time< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_time (const std::shared_ptr< basic_integer10< T > > &_hour, const std::shared_ptr< basic_integer10< T > > &_minute, const std::shared_ptr< basic_integer10< T > > &_second, const std::shared_ptr< basic_integer10< T > > &_millisecond, const std::shared_ptr< basic_set< T > > &separator, const std::shared_ptr< basic_tester< T > > &millisecond_separator, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_integer10< T > > hour
 
+std::shared_ptr< basic_integer10< T > > minute
 
+std::shared_ptr< basic_integer10< T > > second
 
+std::shared_ptr< basic_integer10< T > > millisecond
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_set< T > > m_separator
 
+std::shared_ptr< basic_tester< T > > m_millisecond_separator
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_time< T >

Test for time.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_time< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_time< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__time.png b/classstdex_1_1parser_1_1basic__time.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ff90add76a0fa97bf70112270dd981fed6851e GIT binary patch literal 782 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Nsldb&7L4NVwc-TulaI*t?uvHUrl1)zis~f$Lij{dE9S(u9p-> z9Itko+bA7>`<7$;iK^T?ttHnBw@;k0)#9<3l(Y1t)^}DmSMB}t)pTo1GXB0%TejuZ zh5o4E=eL($X89b*ysZ99#D}TLvU$gsIPYJ7W%(PQ>sJD!eq{vMwmM6>y}mH-){kw; zhaN>|>PS_6uR2#G-z-0G--O>z*IskH@y}gxcE`hj+4)y%gCDJbUAMk5@BGc!>uyDB ze$ETl+>^Qf`4zXvO}krS-_20@8I@np>hWp5R`b6%r#&adUw(hm*0XLJo2}=wj0=-f z`qF-7&RVvci{am5IfjDhyR-g%++qB0?aTBZ(vR=YuKOaxaN^Pe_68Z=DuxpmNnlt6 zYc9PLrZK4`n77LF)WrqUm&la9*xtFl{A%$9?r&BXuEnUVyvl#sd(vgm#l_P8|L;8B zbTRV$&#(8YW<0sEfO_1iDeF48{Hx7=du$K2yBN4H;!F!}QCYs|^o$&b2s>Id!ZJMiyHo4Jg+OxKsJ zyW6|t*Z26#L41&;lh6l6fRysdf4@%Vxp00i_>zopr0N_N9p#T5? literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__url-members.html b/classstdex_1_1parser_1_1basic__url-members.html new file mode 100644 index 000000000..f6348746a --- /dev/null +++ b/classstdex_1_1parser_1_1basic__url-members.html @@ -0,0 +1,114 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_url< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_url< T >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
basic_url(const std::shared_ptr< basic_tester< T > > &_http_scheme, const std::shared_ptr< basic_tester< T > > &_ftp_scheme, const std::shared_ptr< basic_tester< T > > &_mailto_scheme, const std::shared_ptr< basic_tester< T > > &_file_scheme, const std::shared_ptr< basic_tester< T > > &colon, const std::shared_ptr< basic_tester< T > > &slash, const std::shared_ptr< basic_tester< T > > &_username, const std::shared_ptr< basic_tester< T > > &_password, const std::shared_ptr< basic_tester< T > > &at, const std::shared_ptr< basic_tester< T > > &ip_lbracket, const std::shared_ptr< basic_tester< T > > &ip_rbracket, const std::shared_ptr< basic_tester< T > > &_ipv4_host, const std::shared_ptr< basic_tester< T > > &_ipv6_host, const std::shared_ptr< basic_tester< T > > &_dns_host, const std::shared_ptr< basic_tester< T > > &_port, const std::shared_ptr< basic_tester< T > > &_path, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >inline
dns_host (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
file_scheme (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
ftp_scheme (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
http_scheme (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >inlinevirtual
ipv4_host (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
ipv6_host (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
m_at (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >protected
m_colon (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >protected
m_ip_lbracket (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >protected
m_ip_rbracket (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_slash (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >protected
mailto_scheme (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
password (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
path (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
port (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
username (defined in stdex::parser::basic_url< T >)stdex::parser::basic_url< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url.html b/classstdex_1_1parser_1_1basic__url.html new file mode 100644 index 000000000..aa251c03f --- /dev/null +++ b/classstdex_1_1parser_1_1basic__url.html @@ -0,0 +1,284 @@ + + + + + + + +stdex: stdex::parser::basic_url< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_url< T > Class Template Reference
+
+
+ +

Test for URL. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_url< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_url (const std::shared_ptr< basic_tester< T > > &_http_scheme, const std::shared_ptr< basic_tester< T > > &_ftp_scheme, const std::shared_ptr< basic_tester< T > > &_mailto_scheme, const std::shared_ptr< basic_tester< T > > &_file_scheme, const std::shared_ptr< basic_tester< T > > &colon, const std::shared_ptr< basic_tester< T > > &slash, const std::shared_ptr< basic_tester< T > > &_username, const std::shared_ptr< basic_tester< T > > &_password, const std::shared_ptr< basic_tester< T > > &at, const std::shared_ptr< basic_tester< T > > &ip_lbracket, const std::shared_ptr< basic_tester< T > > &ip_rbracket, const std::shared_ptr< basic_tester< T > > &_ipv4_host, const std::shared_ptr< basic_tester< T > > &_ipv6_host, const std::shared_ptr< basic_tester< T > > &_dns_host, const std::shared_ptr< basic_tester< T > > &_port, const std::shared_ptr< basic_tester< T > > &_path, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Attributes

+std::shared_ptr< basic_tester< T > > http_scheme
 
+std::shared_ptr< basic_tester< T > > ftp_scheme
 
+std::shared_ptr< basic_tester< T > > mailto_scheme
 
+std::shared_ptr< basic_tester< T > > file_scheme
 
+std::shared_ptr< basic_tester< T > > username
 
+std::shared_ptr< basic_tester< T > > password
 
+std::shared_ptr< basic_tester< T > > ipv4_host
 
+std::shared_ptr< basic_tester< T > > ipv6_host
 
+std::shared_ptr< basic_tester< T > > dns_host
 
+std::shared_ptr< basic_tester< T > > port
 
+std::shared_ptr< basic_tester< T > > path
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_colon
 
+std::shared_ptr< basic_tester< T > > m_slash
 
+std::shared_ptr< basic_tester< T > > m_at
 
+std::shared_ptr< basic_tester< T > > m_ip_lbracket
 
+std::shared_ptr< basic_tester< T > > m_ip_rbracket
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_url< T >

Test for URL.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_url< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_url< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url.png b/classstdex_1_1parser_1_1basic__url.png new file mode 100644 index 0000000000000000000000000000000000000000..e02fdfa07078defd4a87953ccad2318a5845f0c6 GIT binary patch literal 767 zcmeAS@N?(olHy`uVBq!ia0vp^dx1EBgBeIxUv7y5QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#NtkJY5_^Dj46+P0V|vz|+#+ z8FKco|DQ>|OgAR%$=$wIe5&YT-W!JU$0qELn3gIT7U5A8;9E7R=i(CelMyH`!KI*!T3rQ}dUuXUndV-_TdQD`aWt zu5H(M&AOpB_i9R6SbJvtS+;1)(gTlYl)Uiwu3Rnma+lPpS@*1`c)Xji>)yS!{%h~& z&NtYv-Rth0zwNo!_qtCqFNJsdr({+pRcFQK{$kyIt7hf9*+To*|K7~DtNfhgt{9b@ zY47JaCB{~l`|Zp)^F%Gt|Nab>%JtLtGpYPs+qGc-ucAp$o_{GX@}Km6si*%W!&zTc zBo|Mui=37k!gzrH6*EKI)eB$b<&_`v`|dx)-(zp~cTX{cg4bj@h9r}hj0$cfFdlem zE;U&*K_wFy$evvnmrP$G5qm+tS%3W+@dsurOy$hGRZ2x2^gX9%#qEgCcHXc1b>qFz z*}3)WnAbk8{{Q1P&s&e{Uj;XO;eN30(YiTta(v^<3-hOa3bVabx;82PqP0tX zkLuKG)?4eg*B<(_&P0xP@6CDh&(u!xIxT!V`1Ptg`Zun=GA@np` + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_url_password_char< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_url_password_char< T >, including all inherited members.

+ + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
basic_url_password_char(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_url_password_char< T >)stdex::parser::basic_url_password_char< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_url_password_char< T >)stdex::parser::basic_url_password_char< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url__password__char.html b/classstdex_1_1parser_1_1basic__url__password__char.html new file mode 100644 index 000000000..daff88bba --- /dev/null +++ b/classstdex_1_1parser_1_1basic__url__password__char.html @@ -0,0 +1,200 @@ + + + + + + + +stdex: stdex::parser::basic_url_password_char< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_url_password_char< T > Class Template Reference
+
+
+ +

Test for valid URL password character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_url_password_char< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_url_password_char (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_url_password_char< T >

Test for valid URL password character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_url_password_char< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url__password__char.png b/classstdex_1_1parser_1_1basic__url__password__char.png new file mode 100644 index 0000000000000000000000000000000000000000..5ed55350fb4c3ff2a3b2e6a15a1d4f39df98bc4d GIT binary patch literal 921 zcmeAS@N?(olHy`uVBq!ia0y~yVB`j}12~w0q~+EH4}g?(fKQ0)|NsAi%olIImi8Z7 zZegHVATj;SivtG^0L6nRU0wl{<17jC3uXZF!N8np_7w&OW))8t$B+ufw{v6p9xL#) zw0DM_{p-Ky=g}J%v^=-wmOt&tWR`HY>#00y;v1Y*YcMe-t8S9(CWVtLQYPwn7`>9~ ze)P}d(>yo6UE6MasJXVuR;AK?|M4c3x#u=l6njpO)VUGiR~dlj6HhEt(Kk#?@M~bl=w&tn%^1U>n0vsYkWyB-#?65%)P%iE4ppjyV=oV z7Z2F9^7C!=HpzQ(PU3o@aq^K8F3M{;B%A z`v0ZuvshGH(J#Zj_4LATKdX=IJ2|`Wo#1YpJ5TujPk$FOsb+2YH0Me2m-#nG2tWDi zp?FVdQ&MBb@0P~i%jsO4v literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__url__path-members.html b/classstdex_1_1parser_1_1basic__url__path-members.html new file mode 100644 index 000000000..eb7c85665 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__url__path-members.html @@ -0,0 +1,104 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_url_path< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_url_path< T >, including all inherited members.

+ + + + + + + + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
basic_url_path(const std::shared_ptr< basic_tester< T > > &path_char, const std::shared_ptr< basic_tester< T > > &query_start, const std::shared_ptr< basic_tester< T > > &bookmark_start, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_url_path< T >)stdex::parser::basic_url_path< T >inline
bookmark (defined in stdex::parser::basic_url_path< T >)stdex::parser::basic_url_path< T >
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_url_path< T >)stdex::parser::basic_url_path< T >inlinevirtual
m_bookmark_start (defined in stdex::parser::basic_url_path< T >)stdex::parser::basic_url_path< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_path_char (defined in stdex::parser::basic_url_path< T >)stdex::parser::basic_url_path< T >protected
m_query_start (defined in stdex::parser::basic_url_path< T >)stdex::parser::basic_url_path< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_url_path< T >)stdex::parser::basic_url_path< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
path (defined in stdex::parser::basic_url_path< T >)stdex::parser::basic_url_path< T >
query (defined in stdex::parser::basic_url_path< T >)stdex::parser::basic_url_path< T >
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url__path.html b/classstdex_1_1parser_1_1basic__url__path.html new file mode 100644 index 000000000..493ecd35e --- /dev/null +++ b/classstdex_1_1parser_1_1basic__url__path.html @@ -0,0 +1,254 @@ + + + + + + + +stdex: stdex::parser::basic_url_path< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_url_path< T > Class Template Reference
+
+
+ +

Test for URL path. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_url_path< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_url_path (const std::shared_ptr< basic_tester< T > > &path_char, const std::shared_ptr< basic_tester< T > > &query_start, const std::shared_ptr< basic_tester< T > > &bookmark_start, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Public Attributes

+stdex::interval< size_t > path
 
+stdex::interval< size_t > query
 
+stdex::interval< size_t > bookmark
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + + + + +

+Protected Attributes

+std::shared_ptr< basic_tester< T > > m_path_char
 
+std::shared_ptr< basic_tester< T > > m_query_start
 
+std::shared_ptr< basic_tester< T > > m_bookmark_start
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_url_path< T >

Test for URL path.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::basic_url_path< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_url_path< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url__path.png b/classstdex_1_1parser_1_1basic__url__path.png new file mode 100644 index 0000000000000000000000000000000000000000..a47856f69d96cf2119ffbe3d81580c8c7c389ed8 GIT binary patch literal 812 zcmeAS@N?(olHy`uVBq!ia0vp^XMi|>gBeIBMP&T|QqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#Ntgd%8G=R4~4s`>^k^0#8eO zXUN&#_8*t}Hf>z^a@o~V%RbS~yvHQ!9p>zhn3gK(8sSmI<0~=gO`vd_N_B{|+D`dN zHU4WErs_(~TR&@?{iK{%zYSDgekq<2-Yj}X_K)NKS9ZnKdXLw9Tf6`N9ri5m%U=aA z{5oD{&3=8qn^dAuX6|v1CD}hS{ntozids^-g=|XEz>@KU{$#D`h@(uukP=CrhZ*o{%nWA*{rfPDXLoi zKeN(2E3b!{ZWekbR{r~YUZ&c~;@Ur76;JM86yH+$)mHsv_OJW?Z7RR7v?!jGGfni^ zPCDl8*9&pGRZhO_HkkA! zWO~B9pVDXMereqOD)08Z)19kpU%$8SpQ;53>1h|#W=kx)_g|LH^V+$@Nh!eKo`e+K zY!ci5e!XH7<52mZt!HkQhk?#Jv#sy0uG1@fo#MCL%;@99PYwIiRL}hDGEL|coE;i9 zYn|(x`G<0Xi=7^>YQ48F)|Ij2x%779d67>8Q=jm?m+INQFx+3w^IDF53?s+E*H8WQ z>VD7Nc&fna>nrQxm>FrN){CO%o=o01E0XEn*2uG;ycjpmiQ3_@>DwX`?@K%F{{8Z} z>$~RA3^8A-jk4ouUP#|O-@(AjWN(}PK6!^FVdQ&MBb@06>3z8UO$Q literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__url__path__char-members.html b/classstdex_1_1parser_1_1basic__url__path__char-members.html new file mode 100644 index 000000000..24a8f28dc --- /dev/null +++ b/classstdex_1_1parser_1_1basic__url__path__char-members.html @@ -0,0 +1,98 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_url_path_char< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_url_path_char< T >, including all inherited members.

+ + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
basic_url_path_char(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_url_path_char< T >)stdex::parser::basic_url_path_char< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_url_path_char< T >)stdex::parser::basic_url_path_char< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url__path__char.html b/classstdex_1_1parser_1_1basic__url__path__char.html new file mode 100644 index 000000000..e78f65152 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__url__path__char.html @@ -0,0 +1,200 @@ + + + + + + + +stdex: stdex::parser::basic_url_path_char< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_url_path_char< T > Class Template Reference
+
+
+ +

Test for valid URL path character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_url_path_char< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_url_path_char (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_url_path_char< T >

Test for valid URL path character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_url_path_char< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url__path__char.png b/classstdex_1_1parser_1_1basic__url__path__char.png new file mode 100644 index 0000000000000000000000000000000000000000..631633e716bd2defa4b7133de6bae0614decc42b GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0vp^Z-F>~gBeI3I?f~pq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)01)i4a zUwzW=|L^R7@5B^;$>go1Pg`%Vz=HnnKjMcCc=`p|Ce?IU>3VKk>E}Hu_mx_15&xt= z^Rk#lwq;n%Gu5@9v}fu6hG{Bu-(B7(b;_B$wEKG->P<*swg zQMI=Xo8@K?aAtYRBJJNE-#%iv)QmQVW3aBWM#!n;vx!t++{vRXCA%<6^*qvn-! zmG4tlR{VO@b|hBchAV3OU-xQh_51F>9^6yAbV_c;`Jjh+M_IYbU$3o>PWby~@7;4L zrt0|%BNpAgUE{ZH#olaP^=PHC$-7zq-4O3kIsf%r_zabL*Z;zA=XB-GaR++%*S$$8 zvtMmdxw#A+78A=P+8$~$HP~MeXRvYWU-b7^mC(Dz8SXdOAKGWLCG9INdj$cloOERw)7z-ZYSt{~Ieb-DEN-p# zeJ;38GGfx4x`|8^eKo7Mc6!;%D%Wh| z_9Y@&uba{%wd5A=P%OO8-T!G%tMg~3wYyo`x2*fkT|HYx`?rOickAw;BgJJuUo}Sm zvU*#!O(O5<`+K+F`h*pKGF$uf;NG+8ZrvAl19^7A2Ttxz(^FKx-EejNm80Swlg + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::basic_url_username_char< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::basic_url_username_char< T >, including all inherited members.

+ + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
basic_url_username_char(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_url_username_char< T >)stdex::parser::basic_url_username_char< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_url_username_char< T >)stdex::parser::basic_url_username_char< T >inlinevirtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url__username__char.html b/classstdex_1_1parser_1_1basic__url__username__char.html new file mode 100644 index 000000000..703d049f0 --- /dev/null +++ b/classstdex_1_1parser_1_1basic__url__username__char.html @@ -0,0 +1,200 @@ + + + + + + + +stdex: stdex::parser::basic_url_username_char< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::basic_url_username_char< T > Class Template Reference
+
+
+ +

Test for valid URL username character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::basic_url_username_char< T >:
+
+
+ + +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

basic_url_username_char (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T>
+class stdex::parser::basic_url_username_char< T >

Test for valid URL username character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::basic_url_username_char< T >::match (_In_reads_or_z_(end) const T * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1basic__url__username__char.png b/classstdex_1_1parser_1_1basic__url__username__char.png new file mode 100644 index 0000000000000000000000000000000000000000..4a9ec7ed9b9886a85307d153e0ec468ed2ef51f7 GIT binary patch literal 916 zcmeAS@N?(olHy`uVBq!ia0y~yVB`U^12~w0wQ6Hh$l-|JSsID`%GQ zAC@-p&pWoRjQ4mi^Ofb>;{E0uA5=PEaI$!cWZj2XFKcH8o(Owo^M>)&x2?~gfBWj4 z?l$9V|2)a+L;U%ZZ7-F%Ua_m5y~Q)~^2OXs>jaE~4VRl; zFL_8X2u#rsVqAxID{Mm2~Ra3P1ug#O>^mzYwWI*f<8|+5NcC#1sbX7 z8OV1mtWxsAiG#t*>nlCy?Y{kv&(r9aqr{|=74ofxDHjsXED?+0Kb!ly{Qu*{wQKX& z?^NE#<1602_8wEz)w(xPd(&SR%kDMKTwN!yYDw6sTDg`gMdPk3USE^>1GWp=+HV&;KSwg{rtj;5HJ6`XIJj%Bt?{=lGWXPe zZ+P30=f2Z&OLWV%l8V_^Ccg2y`f>5|SBqOqN@joA*1Y@i?A4)@=DpstROPSJUgl#( zPj)iDT@gCz+>5RIjg3`KzT)EX{Iwn!3-FNSmsmPwQq(;ARWkQ^_)<1Y0`m`pr>mdK II;Vst0Dd{D-~a#s literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__agent-members.html b/classstdex_1_1parser_1_1http__agent-members.html new file mode 100644 index 000000000..1e800b7a7 --- /dev/null +++ b/classstdex_1_1parser_1_1http__agent-members.html @@ -0,0 +1,94 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_agent Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_agent, including all inherited members.

+ + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_agent)stdex::parser::http_agentinlinevirtual
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_agent)stdex::parser::http_agentinlinevirtual
type (defined in stdex::parser::http_agent)stdex::parser::http_agent
version (defined in stdex::parser::http_agent)stdex::parser::http_agent
+ + + + diff --git a/classstdex_1_1parser_1_1http__agent.html b/classstdex_1_1parser_1_1http__agent.html new file mode 100644 index 000000000..f0a537469 --- /dev/null +++ b/classstdex_1_1parser_1_1http__agent.html @@ -0,0 +1,232 @@ + + + + + + + +stdex: stdex::parser::http_agent Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_agent Class Reference
+
+
+ +

Test for HTTP agent. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_agent:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + +

+Public Attributes

+stdex::interval< size_t > type
 
+stdex::interval< size_t > version
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP agent.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_agent::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_agent::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__agent.png b/classstdex_1_1parser_1_1http__agent.png new file mode 100644 index 0000000000000000000000000000000000000000..c025b1f8a83f6826c0419720fa492af302fe29eb GIT binary patch literal 794 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)lFzsbG8?n_Ki+fhXpg z@!Y-tJLkXVpTOcbcgxFU4N0?O3R|LBKE>;t-qgdQqhiUoOkvU+$zTD`Z#@bcJJ~(= zwM}cz(&4K)Tcx}%Uc_Y*U%uFsu-9Au=W>7FSGu|H{rlsOix~s3df0u^@|=pxp^!) z_f^eq=9CjQ*&N0f!fK9Qleawm@n<%-Rr)C{>q{o3jnR%57gQJ>`D*93PiTcM*T)%0 za(j2K*3oj*>kOCddUEq}YTGN}izfn4x%V*x_(B&-8e4|6xO)+zS_ie+fqNBc3KRhe%P|^SRcD=CYKI#9?7s@{0ovVIQ z{?Pn$0-k04njI?D$AI3pO%~mvbJ|FN;X(KZMh4|X6GwUZW=$#I3#-y~Tn}^33gu(? zbxeeX!8VzTsbQWWE2G2t8BGie(tR8mE*LLUV0ZxxQid-*nj8#On93fAE}3%4!(q~r zLIYOMAfQH-mFYIBFAV;E6BDub-?=OGPde*T|8IZui}!rjJ!`dZzkI*$y{scM-p%jb zqbDqz&E>ms`V#$u;DAY9)=N}QZoOmeWLR9N;<;-s2pwAV22yjNPXmOx&G}-k#((mD^;Sna3q(o3FBymU!=Z z^}OhAHea>imij4=TBj^gznI-G)Ld#J@Q?9K-MUrt TvOnDfreX$9S3j3^P6 + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_any_type Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_any_type, including all inherited members.

+ + + +
intervalstdex::parser::basic_tester< char >
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_any_type)stdex::parser::http_any_typeinlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__any__type.html b/classstdex_1_1parser_1_1http__any__type.html new file mode 100644 index 000000000..8a5731ebd --- /dev/null +++ b/classstdex_1_1parser_1_1http__any__type.html @@ -0,0 +1,193 @@ + + + + + + + +stdex: stdex::parser::http_any_type Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_any_type Class Reference
+
+
+ +

Test for HTTP any type. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_any_type:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP any type.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_any_type::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__any__type.png b/classstdex_1_1parser_1_1http__any__type.png new file mode 100644 index 0000000000000000000000000000000000000000..60dd77744fafccb967a135fa362d3816184bd7fa GIT binary patch literal 817 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)8B{sc^T7eFg-Z}}5HP;gV-&T9~ed+A2_4R$zk2~DGY;srT*>i~x9T`p5 z{!0sunJ1-sJ2alrUBq%}ONsbo?PE3lk}G&lPv9}ptvoe7=lT|{Je>*siRv>;E@eDk zX=b|bESpx-%@umS;@i5W=f0h$oorK=yC7NRyjJzBWojRVPDrQtyFU13`>Vq8;wFtB zxsT#k$L~J1h{>qCVw;m)#ix>8PG9>n)&wXNdr!^@EU><@zu9Q-?(`E&UzYXvU$=5T z{wy32i8@BQJM_+({X{alYv%fCuH+&*cZ zK2PQUF!<)CtNvzmbCw>6>}k<(HY7!SCAVP#OxG+D5I{lN}5=BUbJN>Y3o zVU`RpqJ=pas;;pxH2?#UVL`gD0>g_)VuUK(6aW5G!e3n(eccB zAsH~Cs9VF)NcXPmqogz6Sv1Wz2ec$gT^J{^0B|>B@Aq2`XRLaH@FP hX0viBwlsd>pM7@iI{Ea_%fQ6V;OXk;vd$@?2>?=gc02$8 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__asterisk-members.html b/classstdex_1_1parser_1_1http__asterisk-members.html new file mode 100644 index 000000000..c38d8f6d5 --- /dev/null +++ b/classstdex_1_1parser_1_1http__asterisk-members.html @@ -0,0 +1,91 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_asterisk Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_asterisk, including all inherited members.

+ + + +
intervalstdex::parser::basic_tester< char >
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_asterisk)stdex::parser::http_asteriskinlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__asterisk.html b/classstdex_1_1parser_1_1http__asterisk.html new file mode 100644 index 000000000..7237f44e6 --- /dev/null +++ b/classstdex_1_1parser_1_1http__asterisk.html @@ -0,0 +1,193 @@ + + + + + + + +stdex: stdex::parser::http_asterisk Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_asterisk Class Reference
+
+
+ +

Test for HTTP asterisk. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_asterisk:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP asterisk.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_asterisk::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__asterisk.png b/classstdex_1_1parser_1_1http__asterisk.png new file mode 100644 index 0000000000000000000000000000000000000000..75c3ff4954c2f903eb70ebee512160ffa4741c64 GIT binary patch literal 803 zcmV+;1Kj+HP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~00086 zNklIQ&w3^)72$z1x1Gv$q?8382L(~ zwkgCiiQ5{_uJWh^xkEfVp-7%1ot{u#5sec{WEpvpZwjG;;~v=bUcEyh%}_m&uXTrx z;%RodgRS(KJmcE@dA(A}B%U>sw{A&D!p!MdvJ5Q2t z!mmCdlI$K+5J~ooDTpL{#zWAuEXzOufN#ME0E~pu1buuArf4)l4?SZk8cxvcasbdb zrXT?58B-7d^o%J80D8t01OPo_3Ic$hF$DoY&zOP$pl3`$0MIk0AOPqYQxE|3j422J zdd3t40G~lhDUAdqNg4-JkRFL zZ;iJ-+vpGb_P+nD`BoO=x_vP6x=ggM$$WY7#(QTct_3Bjj6GhG+{jOv`P7o6GF*C% zz;(E?HImfA9YJMh0*_C{KIT<+vXOPjFDtY}&VE^Q_e#zRTC1fg=$I+1tmRUW4Qz?* z4!%QBpl@93cy^V?EkW*J!(wB9N69trkZ%g1=;I!o3c7cP8g@xK!QGN;ce#91b5F~2 zzRSg9UY9hw+|eIhm$M~z*}89jha~9~pN;T3vm^!lyrAu)^fqzxge0kFOhJ;=Go~O( h>KP9~DWx + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_cookie Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_cookie, including all inherited members.

+ + + + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_cookie)stdex::parser::http_cookieinlinevirtual
m_space (defined in stdex::parser::http_cookie)stdex::parser::http_cookieprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_cookie)stdex::parser::http_cookieinlinevirtual
namestdex::parser::http_cookie
paramsstdex::parser::http_cookie
valuestdex::parser::http_cookie
+ + + + diff --git a/classstdex_1_1parser_1_1http__cookie.html b/classstdex_1_1parser_1_1http__cookie.html new file mode 100644 index 000000000..c560c7105 --- /dev/null +++ b/classstdex_1_1parser_1_1http__cookie.html @@ -0,0 +1,242 @@ + + + + + + + +stdex: stdex::parser::http_cookie Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_cookie Class Reference
+
+
+ +

Test for HTTP cookie (RFC2109) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_cookie:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + +

+Public Attributes

+http_token name
 Cookie name.
 
+http_value value
 Cookie value.
 
+std::list< http_cookie_parameterparams
 List of cookie parameters.
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+http_space m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP cookie (RFC2109)

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_cookie::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_cookie::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__cookie.png b/classstdex_1_1parser_1_1http__cookie.png new file mode 100644 index 0000000000000000000000000000000000000000..fe910cfd07c902fb659a02343b31c4c66b733529 GIT binary patch literal 788 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)s3 zKJM@TADRA)dBeiHF}Lr2E-DG|JP;wq_FR8jYNQ*J*d!VDU;$6JVdlM zHdl|`Ai)t2w}?^{s3Y|Se7UCY!yL`^W)n5XrqOx`x0bBi9= zzZpMrzwXS|k#bb)>^FLHa`W~hUUHwh22j?d2XD_XIe@{_-nYHb__2up7 z4qskdq#nJ}u<~5kT%j4JZ$ozm-QwAK^YF4$qUOGbcHdW=RMWA2zn{v_yFbL6w$09e zXX9DN@xQdq!^mct!la%a%?=giWYH};r;P*{9=I1UH%v5`wcvKHf$L(r`GE>WQ&B-`{!7uDtiCbd$_l72AWa%TI{0 zmM8y_vk@tI%2#^SJBYu&@X4>xcPiSgn&)q7J-@t1cW2nsb2_!FPI+Duuef^B{e + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_cookie_parameter Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_cookie_parameter, including all inherited members.

+ + + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_cookie_parameter)stdex::parser::http_cookie_parameterinlinevirtual
m_space (defined in stdex::parser::http_cookie_parameter)stdex::parser::http_cookie_parameterprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_cookie_parameter)stdex::parser::http_cookie_parameterinlinevirtual
name (defined in stdex::parser::http_cookie_parameter)stdex::parser::http_cookie_parameter
value (defined in stdex::parser::http_cookie_parameter)stdex::parser::http_cookie_parameter
+ + + + diff --git a/classstdex_1_1parser_1_1http__cookie__parameter.html b/classstdex_1_1parser_1_1http__cookie__parameter.html new file mode 100644 index 000000000..007698670 --- /dev/null +++ b/classstdex_1_1parser_1_1http__cookie__parameter.html @@ -0,0 +1,236 @@ + + + + + + + +stdex: stdex::parser::http_cookie_parameter Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_cookie_parameter Class Reference
+
+
+ +

Test for HTTP cookie parameter (RFC2109) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_cookie_parameter:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + +

+Public Attributes

+http_token name
 
+http_value value
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+http_space m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP cookie parameter (RFC2109)

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_cookie_parameter::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_cookie_parameter::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__cookie__parameter.png b/classstdex_1_1parser_1_1http__cookie__parameter.png new file mode 100644 index 0000000000000000000000000000000000000000..84c1f091bf1e9535055bbb74b2eb7f7f316b70de GIT binary patch literal 838 zcmV-M1G)T(P)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0008f zNkl~a%Wo(+1fsqyW1voXkP9d#T*C@wgVHQVbKOFL%Ds(K_eH4yAt+m3RA(H$v z%&d`QZlm-C3VM+sl-Y}&BKyR4R0H8NaX#mh0rZfQP4O1Eb^oA)70D8le1^~Tb zN&|pDKuRf%2_#7x5mTBZ^@b@;l6r%aws&sJEq<=K+N^HS221}}(j@6iyp@(-acqC9 z;r3oHdya4Y{jo;gj8vxE^^(_RBC}?FY*d-H1RODL3vzT-;3kSJElH&vG*YTt6~M6< zXCp}}%_OflHV@mcx4ZGb``l9CHfFc-(jv}!!zw?xNGSyhkRl(xHi$LNkk?z<@JGUB(v7XqKp#^Q!FM|;i~d?+VTeE8OE8EF$A z9|a%4m2WNHhLBN7rd>RcafLkAmU>m{lc`{yaR1n^RLCQ9XBD!ph$W)zpstYNy(USg z`1bPo{?fX2-ThA5cFA45!SjtMNnc`SO_F-UlqN~NVM>#v-td%`Qc6SOKMV!4YByeX QIRF3v07*qoM6N<$f~*#n+5i9m literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__header-members.html b/classstdex_1_1parser_1_1http__header-members.html new file mode 100644 index 000000000..427e5a243 --- /dev/null +++ b/classstdex_1_1parser_1_1http__header-members.html @@ -0,0 +1,95 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_header Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_header, including all inherited members.

+ + + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_header)stdex::parser::http_headerinlinevirtual
m_line_break (defined in stdex::parser::http_header)stdex::parser::http_headerprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_header)stdex::parser::http_headerinlinevirtual
name (defined in stdex::parser::http_header)stdex::parser::http_header
value (defined in stdex::parser::http_header)stdex::parser::http_header
+ + + + diff --git a/classstdex_1_1parser_1_1http__header.html b/classstdex_1_1parser_1_1http__header.html new file mode 100644 index 000000000..e74d2051c --- /dev/null +++ b/classstdex_1_1parser_1_1http__header.html @@ -0,0 +1,236 @@ + + + + + + + +stdex: stdex::parser::http_header Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_header Class Reference
+
+
+ +

Test for HTTP header. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_header:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + +

+Public Attributes

+stdex::interval< size_t > name
 
+stdex::interval< size_t > value
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+http_line_break m_line_break
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP header.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_header::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_header::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__header.png b/classstdex_1_1parser_1_1http__header.png new file mode 100644 index 0000000000000000000000000000000000000000..beb24399e6e6c93cbcd67ecf09a02ec0088d5db8 GIT binary patch literal 800 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)6g{4t4faDpV6TrTX!QMYVqZN+kNl6*FAe{zrFnQ{>EL)C3gugpz4;UGg6HT1^k0m>=iO>X< zOkn6wx&qYb`AV{!S2i$zx4w<&Rn_m)UH&gx_+{a~|G9U5?+uOm{r&mlO>4KmGF2#NIzRWAnOgl$>eL@Ic`YT+tcPKND~c3lUVqCr z5sbgPuxqp0q$Of;w$8xt6&AjKaH(Q_Ta>5R`3WkvN8e7#4&PavyVT&RVf@oaX8FNM zQ%`qhpLCi!c}ewY} literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__header__collection-members.html b/classstdex_1_1parser_1_1http__header__collection-members.html new file mode 100644 index 000000000..310027ed5 --- /dev/null +++ b/classstdex_1_1parser_1_1http__header__collection-members.html @@ -0,0 +1,90 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_header_collection< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_header_collection< T >, including all inherited members.

+ + +
insert(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_header_collection< T >)stdex::parser::http_header_collection< T >inline
+ + + + diff --git a/classstdex_1_1parser_1_1http__header__collection.html b/classstdex_1_1parser_1_1http__header__collection.html new file mode 100644 index 000000000..c891811ff --- /dev/null +++ b/classstdex_1_1parser_1_1http__header__collection.html @@ -0,0 +1,113 @@ + + + + + + + +stdex: stdex::parser::http_header_collection< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_header_collection< T > Class Template Reference
+
+
+ +

Collection of HTTP headers. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_header_collection< T >:
+
+
+ +
+ + + + +

+Public Member Functions

+void insert (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+

Detailed Description

+
template<class T>
+class stdex::parser::http_header_collection< T >

Collection of HTTP headers.

+

The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__header__collection.png b/classstdex_1_1parser_1_1http__header__collection.png new file mode 100644 index 0000000000000000000000000000000000000000..0b89c27b661b05c735334aa6a3600a9d9b7afa48 GIT binary patch literal 639 zcmeAS@N?(olHy`uVBq!ia0vp^KY=)agBeJ^X;N+hQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#NtiJY5_^Dj46+y}fR+fdET& z+@-(&=U7f#&p>eLU+sIySI4PHJ0X=~*@Lnaazfz0Z~≠^V z&hBU1pZOI}+B3&Q{p4y-AY&es@kQyZ=cR5Fbx-|Eb5!fe zb+5KP^Dhi8jsLvnEyDx1S%Y(G_jhc5W>(+bE<6A2 z`u|U#m&>$Idv?|6cJ%(rDQ}mnZ_Ac(n3%7h`|R1_KKXxBpJr*@sd8Gr zy0qr;Wz+e&&k9$pHkD`p@OM^w$a<^F*j8!3uQN(B@6G>w^Pk-LO8Zy-=PGTR($D|g zmcM*!Eq9#vtAA_Ozdc@Myz*`PFB=tE@t3u^?|1WkE_=0F&GY@wZ`%KJ?LB{$$E5%J zwPSwY$A_;ceUaSxY|<0gS>BVxGxa>FVdQ&MBb@ E09C^}I{*Lx literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__language-members.html b/classstdex_1_1parser_1_1http__language-members.html new file mode 100644 index 000000000..4e768edee --- /dev/null +++ b/classstdex_1_1parser_1_1http__language-members.html @@ -0,0 +1,93 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_language Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_language, including all inherited members.

+ + + + + +
components (defined in stdex::parser::http_language)stdex::parser::http_language
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_language)stdex::parser::http_languageinlinevirtual
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_language)stdex::parser::http_languageinlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__language.html b/classstdex_1_1parser_1_1http__language.html new file mode 100644 index 000000000..edb03f6db --- /dev/null +++ b/classstdex_1_1parser_1_1http__language.html @@ -0,0 +1,229 @@ + + + + + + + +stdex: stdex::parser::http_language Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_language Class Reference
+
+
+ +

Test for HTTP language (RFC1766) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_language:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + +

+Public Attributes

+std::vector< stdex::interval< size_t > > components
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP language (RFC1766)

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_language::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_language::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__language.png b/classstdex_1_1parser_1_1http__language.png new file mode 100644 index 0000000000000000000000000000000000000000..b3cc04998bc82155337f34692d340ea284f317b6 GIT binary patch literal 811 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)9oxb$LnEdLs{2OnwX4LrpCsS#RGVuf zRkL;3vF(-)p$5`dm%cn?_OWZNZBc2@@pzt+zA2HV{ux<9>l^ntehgvFyMFPwcIP$M zgYv@r*VMh2>SjBU^XMwy&j&XzKjqu1u5@Fe%d~0gHy1td+YsMuwKx3z1nd8u zIX{2Mx%!Ue+AA|`(pLL zXS1#SC*@z7e@}7Jn>bKVTw_r>Id3bI?&(cDDhxjaYZ(rBNb$aSoNTb@Vnf)xjU8>w zvqJe8eqCc>YM5u*$gm*YSApS0q%a3V6;VR_7EK9~^7NQw(x)~-kc?s{Nb@FbF+etiP?CKJC4Qxb6kZptP&D=NaC9Gn^o6ZQ~uZVD_SfL+saYx##K3W99PHlb=+w z@c(}2Z5lhIA76hU^x_rY&)1LMy^HRPiFtbNj+gK0 + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_line_break Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_line_break, including all inherited members.

+ + + +
intervalstdex::parser::basic_tester< char >
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_line_break)stdex::parser::http_line_breakinlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__line__break.html b/classstdex_1_1parser_1_1http__line__break.html new file mode 100644 index 000000000..5aa0e93de --- /dev/null +++ b/classstdex_1_1parser_1_1http__line__break.html @@ -0,0 +1,193 @@ + + + + + + + +stdex: stdex::parser::http_line_break Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_line_break Class Reference
+
+
+ +

Test for HTTP line break (RFC2616: CRLF | LF) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_line_break:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP line break (RFC2616: CRLF | LF)

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_line_break::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__line__break.png b/classstdex_1_1parser_1_1http__line__break.png new file mode 100644 index 0000000000000000000000000000000000000000..8559b77086ebe00e257a0dfe09f8f49b62deff9a GIT binary patch literal 820 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)vTptzWY8a*4#?{f1Brf_3N~$@6R89TD*Arl2x-0f2(1saVa_2 ztiF0qn!}}aUMnW#%7$>g4BKlx$+$Z3k(rgN^rY6jQ2)1=z69wOKju6taqq;^;PT1K zSW`pH?bq@ae~Y;XDb01x95|DNe{7rK95 z68uhZ?b#W-o-g{hP4<lL>DJGi<_T#9MYq>ZytAsDJ$bXZs%zHirIUXdy}uH7_URTr z@s_6UXLnZ2n3vQ4@1)12HJdf|hRdJ17C0&Lx^B92?%hd3Rc}nRwSSsBwWm6*IA-71 zsG_< + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_media_range Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_media_range, including all inherited members.

+ + + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_media_range)stdex::parser::http_media_rangeinlinevirtual
m_space (defined in stdex::parser::http_media_range)stdex::parser::http_media_rangeprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_media_range)stdex::parser::http_media_rangeinlinevirtual
subtype (defined in stdex::parser::http_media_range)stdex::parser::http_media_range
type (defined in stdex::parser::http_media_range)stdex::parser::http_media_range
+ + + + diff --git a/classstdex_1_1parser_1_1http__media__range.html b/classstdex_1_1parser_1_1http__media__range.html new file mode 100644 index 000000000..7379ec29b --- /dev/null +++ b/classstdex_1_1parser_1_1http__media__range.html @@ -0,0 +1,237 @@ + + + + + + + +stdex: stdex::parser::http_media_range Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_media_range Class Reference
+
+
+ +

Test for HTTP media range (RFC2616: media-range) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_media_range:
+
+
+ + +stdex::parser::basic_tester< char > +stdex::parser::http_media_type + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + +

+Public Attributes

+http_token type
 
+http_token subtype
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+http_space m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP media range (RFC2616: media-range)

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_media_range::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_media_range::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__media__range.png b/classstdex_1_1parser_1_1http__media__range.png new file mode 100644 index 0000000000000000000000000000000000000000..6d2e1b6a9d134ddcdfe4974309d939c243ebb201 GIT binary patch literal 1227 zcmeAS@N?(olHy`uVBq!ia0vp^7l62fgBeIJTt4*hazU`tVa`LX>+_nhK+o+nf+`(II8dfz0EV%hTQ!mKr0XEdG*T%NLMXP?K{<-d6MUg>4cD!wt@$MX1# z2P?}>H=bn+I+=5A*%`Im>Fa;p(p_F`^Z%Gb>XLm+b)Cb5cd%v2W~ofwG5@$(yl#kj zYuW5Amv60$eSVQ~rmIc#LbIQOFH2f~$r?s1bh-Ar;-pz?8vFL*1*faO^O&ZZ?OuM? z+{!uiGtcgrlVR0o4AXY|>7Louw<{($S8eCa!|P68HMrZvzu#G^)q?69N7#e&NY<1zP-it+|q#Xzb-Dv zKC!DPeQINKcsaB7_ja`#?@D(a-DmsWK6~$6*PVIs9gp`WuQ;NsFMc}Dpl|icG`Syh z8B`}$O$A0*{PDYTVZB?YsRZe74miI^>yXBVc@OWVhs^4@lFbqF-6MEOQDF5ZyIbn1 zlA^a}UG-;9;g5*F)vCMvepLBsffYShwr_cAb>Z7IzwB>8H>cT7_-dWcb@zzr@m;aI z&prOFeP!1+ZIhT;f!sT*+H!(3{CvVsN=~qK{(ENboP~lHz8Z&^o!@YJYRlH;SN&3V z#YDfk$1rPd%IsNhi^_t^CR<&YzI#r`3GTapqxSrtS}FTRykT4arPmViKYG92x*xaj zGv`iL6{Sa^j6fn1OmGKyY5J-#{OFKlFqoXiTxFxCJc~Eu;mqy~s|7EL7#>73vM|gO zbzpc9Ndlw5-SYV#PTQh$Kbf7>PF9LIsJx71beS~ot7w3cy-KA&C=!(Szc&2=O8wg# zFB$*-me0HG?&}NPwbl3PuT@!h7sZ}AKk?H&!;nYQrgx{Bzj^v5wWQMXQU=eI6TnDF zxpcj7`||MQwW<@p8gYNs*`n0LH2bQp^ggDP#VeGicHf%(^`f2T>B@z%i}E(}+wNoB z61r}AYVl#-vuWAkAFq8Vs{Hjb*Q-i zIw!fwcj4?UbyDpP-*~(VAxyj z{TOO&-2ya3b-~-kU#!}`UH + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_media_type Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_media_type, including all inherited members.

+ + + + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_media_type)stdex::parser::http_media_typeinlinevirtual
m_space (defined in stdex::parser::http_media_range)stdex::parser::http_media_rangeprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_media_type)stdex::parser::http_media_typeinlinevirtual
params (defined in stdex::parser::http_media_type)stdex::parser::http_media_type
subtype (defined in stdex::parser::http_media_range)stdex::parser::http_media_range
type (defined in stdex::parser::http_media_range)stdex::parser::http_media_range
+ + + + diff --git a/classstdex_1_1parser_1_1http__media__type.html b/classstdex_1_1parser_1_1http__media__type.html new file mode 100644 index 000000000..043a88a43 --- /dev/null +++ b/classstdex_1_1parser_1_1http__media__type.html @@ -0,0 +1,245 @@ + + + + + + + +stdex: stdex::parser::http_media_type Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_media_type Class Reference
+
+
+ +

Test for HTTP media type (RFC2616: media-type) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_media_type:
+
+
+ + +stdex::parser::http_media_range +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + +

+Public Attributes

+std::list< http_parameterparams
 
- Public Attributes inherited from stdex::parser::http_media_range
+http_token type
 
+http_token subtype
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::http_media_range
+http_space m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP media type (RFC2616: media-type)

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_media_type::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::http_media_range.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_media_type::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::http_media_range.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__media__type.png b/classstdex_1_1parser_1_1http__media__type.png new file mode 100644 index 0000000000000000000000000000000000000000..c8471667bb25c8f49bf1a64c625b5c56f6a47a50 GIT binary patch literal 1224 zcmeAS@N?(olHy`uVBq!ia0vp^7l62fgBeIJTt4*zv+nMny-(vR|k}MOnMi!)TM#f=78O zmHx`?vC+3b*u84qQzy`&GWVZBK;+uf-@Z%ju#Gm){{3y={duyrr!RbY8gT!6gXtpf zdlj3G9p>@4^_oFzNu0Hp;@wi4wt?uVB&rGn(nw%!Qt$X>ly3;o$&fk|<@$H4iZ6lM?&gcc#9BgME_-nK6qe)=2 z$gSK^^2?&H%8w+pa;>~>ctX52jeUD@!sXvzcuX_Rb}#QW zw{kB1%(FVCcbVz47oS7jg+DJ_thIdUS=RF68=;n^mvw)9uy&cW{MV1yE|cn`_A`F5 z`uXn63;WR0SAZNMYQ$xJl=<&mpHtpEW?C4zlev&x#$=p7$pI+WF+wDp}7yQT`4U`wI*! zY!>I&uV=WunRolP{P(}#PR+lbn&a91-BM2&N*GWAa@Gy>u*7Kr`b-}ZmrLC_lW87U9r2*J^HPEW!5%r zlbBh7oI9)9Y63I-e5Rk2oM7+#_srZm3k5HHH4ZU9zv0x?hN#P1f_7?MSKBS#kf#1~ z(X-Wa=1FWy~$^m+Z6>h%2#TWY7=`~Blk-j?hC-icbxpAhY!A{ol* zGHK#eAR|)y0x+0dm>T3SGBc!I%5msFp5n5Zaji|UpfCHBP(Fqv?M4QLO+p+DN~AE} zt(X#&Ce+n&!p2KMaN-Ft@rx_t{m&T@e`AVFH|?J1?4uwkxV*pdl<}``-;1`{MqdXf z`naEEy2na>d&xZRTlZ=^-#Xpu!}HF~a}y7DIg-f};__t`qf6J`zU8)iUS>ykb;RW@ zoY$#!=)}h8yPMx>JKXE`yfkBm?aKB4&Tg5bev9>$+3yRFq#dH4l|^k6m1DRnCz~3* zjyZR6PQ>=-fA(aF03C37(FNa_;x)IozSh~d-)U{;^FvIX9X(&>8b9fFGSB>L!q@mm z@>Tk~H$0&WqSII8%}boRT5jvDjHN}P>wL@f8TOqrbv+wyd6$3J+Wb&U!HMR(ewY4w zu=-h9N5=_|{Vd?1-%$1~-X&$t{`A&eL3&D;UYkwm@NiKD5-DI}t;5nOMic)rzi+*A VJA=Eq4p` + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_parameter Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_parameter, including all inherited members.

+ + + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_parameter)stdex::parser::http_parameterinlinevirtual
m_space (defined in stdex::parser::http_parameter)stdex::parser::http_parameterprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_parameter)stdex::parser::http_parameterinlinevirtual
namestdex::parser::http_parameter
valuestdex::parser::http_parameter
+ + + + diff --git a/classstdex_1_1parser_1_1http__parameter.html b/classstdex_1_1parser_1_1http__parameter.html new file mode 100644 index 000000000..38e84b7a1 --- /dev/null +++ b/classstdex_1_1parser_1_1http__parameter.html @@ -0,0 +1,238 @@ + + + + + + + +stdex: stdex::parser::http_parameter Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_parameter Class Reference
+
+
+ +

Test for HTTP parameter (RFC2616: parameter) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_parameter:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Public Attributes

+http_token name
 Parameter name.
 
+http_value value
 Parameter value.
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+http_space m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP parameter (RFC2616: parameter)

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_parameter::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_parameter::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__parameter.png b/classstdex_1_1parser_1_1http__parameter.png new file mode 100644 index 0000000000000000000000000000000000000000..f1fb8e650b178ddbe53854ffd364de1e23d04f78 GIT binary patch literal 813 zcmV+|1JeA7P)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0008G zNklVFR3=`U!j{g6PyV(P5!zO9cgP~-sEQhfzFyNivy3nJ`vY15+X^5A10Jm?X>@G3-`7)vySim<8zy+N1Cde z!O}k*o*td^V96>sBOqxd6G~)}gGwTuO>P37s=#l^toSy1*@=s8B2!$Mrr&e|ejD*n$eS8eYXf#4ApRpJXM`%_#0O%W& z5CHUyNeBRX#v}v)J!29AfSxf40YJ}~gaDvtOhN$AGbSMb=oym`0Q8JW2mpG7 zd}l35s&JQ3$&t3HbI3IFDmz(vKB`MA)rQuDB&mf5DQB&1+0rC*&XiSlNL1Y3?Jg%J9I(lyHc)Q + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_protocol Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_protocol, including all inherited members.

+ + + + + + + + + +
http_protocol(const std::locale &locale=std::locale()) (defined in stdex::parser::http_protocol)stdex::parser::http_protocolinline
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_protocol)stdex::parser::http_protocolinlinevirtual
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_protocol)stdex::parser::http_protocolinlinevirtual
type (defined in stdex::parser::http_protocol)stdex::parser::http_protocol
versionstdex::parser::http_protocol
version_maj (defined in stdex::parser::http_protocol)stdex::parser::http_protocol
version_min (defined in stdex::parser::http_protocol)stdex::parser::http_protocol
+ + + + diff --git a/classstdex_1_1parser_1_1http__protocol.html b/classstdex_1_1parser_1_1http__protocol.html new file mode 100644 index 000000000..a50439724 --- /dev/null +++ b/classstdex_1_1parser_1_1http__protocol.html @@ -0,0 +1,242 @@ + + + + + + + +stdex: stdex::parser::http_protocol Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_protocol Class Reference
+
+
+ +

Test for HTTP protocol. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_protocol:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

http_protocol (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + +

+Public Attributes

+stdex::interval< size_t > type
 
+stdex::interval< size_t > version_maj
 
+stdex::interval< size_t > version_min
 
+uint16_t version
 HTTP protocol version: 0x100 = 1.0, 0x101 = 1.1...
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP protocol.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_protocol::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_protocol::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__protocol.png b/classstdex_1_1parser_1_1http__protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..e7ea37c6220a91a27fe471b6504bc73f2ab8c5c9 GIT binary patch literal 771 zcmV+e1N{7nP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0007x zNklyGOn41|Y?w3_#S;*;hA*pO}2Z1-3!71JbOY<~fqzgU)K8A(`3avV({ zl8megM3Rx^fRee8E^IJ9|6yZCb;ud8+S7xS+@+7$kGm!M4FcGj^wH_-(vB*$Tf61z7>{2c=o~4t>YlEtNxTN~2E|hqxP6a4 zUP-hr3VxgT*Xq}@1Rca?iq4vy4~aB z_0G__dAe2Zj8#^aBt_N)lBCFb3Ft7njb8k`;_Axg`?-G(C_SR@f19WMzV^HJ z@6X3&%eU#NO!v=4p69&m)6Ji|+yY8cX$MM@Ov`r%aW&?9l2n>msO;Pa>0czNujfEL zpY_YFURoaQJXJlGx1HJrGX0Wtp;xwC?RwiSU7&NM%&L3B0A0Gy)BM^s7NLNWR9cQ; zi-J2bKATIR{u#Og`k^y)Zk}$HJA;-Il*eq9^Z9L4uBu$AW}m2XlJrFH&bRY!f8(M6 z?H{G`sgk5ynkytpku`xNDY7PzBt_N=lu}9q=^tH)t^#wCxn%$V002ovPDHLkV1j!X BZl(YL literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__quoted__string-members.html b/classstdex_1_1parser_1_1http__quoted__string-members.html new file mode 100644 index 000000000..af10109a6 --- /dev/null +++ b/classstdex_1_1parser_1_1http__quoted__string-members.html @@ -0,0 +1,94 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_quoted_string Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_quoted_string, including all inherited members.

+ + + + + + +
contentstdex::parser::http_quoted_string
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_quoted_string)stdex::parser::http_quoted_stringinlinevirtual
m_chr (defined in stdex::parser::http_quoted_string)stdex::parser::http_quoted_stringprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_quoted_string)stdex::parser::http_quoted_stringinlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__quoted__string.html b/classstdex_1_1parser_1_1http__quoted__string.html new file mode 100644 index 000000000..925844aa1 --- /dev/null +++ b/classstdex_1_1parser_1_1http__quoted__string.html @@ -0,0 +1,234 @@ + + + + + + + +stdex: stdex::parser::http_quoted_string Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_quoted_string Class Reference
+
+
+ +

Test for HTTP quoted string (RFC2616: quoted-string) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_quoted_string:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Public Attributes

+stdex::interval< size_t > content
 String content (without quotes)
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+http_text_char m_chr
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP quoted string (RFC2616: quoted-string)

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_quoted_string::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_quoted_string::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__quoted__string.png b/classstdex_1_1parser_1_1http__quoted__string.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9c7db86326aa5e59a9ee13eab2ec772420a9da GIT binary patch literal 839 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)9wJ}fjM@&nV^o;N*lJQlT^d?fcL!~;5!Rwv8 z=e^+5j#tI4_x1g9i?io&ndEn$XUe>5nZF~|^Uhy8yScvl{{OvfujVa#`D(+S_l*4= zdKDj1dS^>c*rLmcn+Vm)lwzi&fuoNX>9Iy14bt%0Jp=zS^H3G$!%bpIkcG zT{?g3%Fl24CU8Dm+-Bl@Lo06MSNC(rD*kS5?3-wG`kRSw>?1J^DG`6Qg1vo)ah_Mi zS}S}WZ92AhwT_m;_Re%`k>+&&<<=qdJC5-IZL~Ql-dfP~Sn9?XyS>heXA7#5_FR*- z;`85pO7@~x@5$tSucjQ?lezlT)JxBrcAKtQ6;l|TTk+Z2WzzCrKVG{`y1({5Lsb60 z-Jex{_J7%bPjS+lI8azzV^KOe?<-3bFpxYLJ}6f)9Pp6heeqGEC&Ofc`uPZ#!;ELO z*cocGnHU|;&vIb6uvtxj;maCM76x0QgvzG`c`0*xPC9mxWzv#)rj05q)8{h0ohyG> z%szkTC%3{=AM0Me+RvflxqMaQCGB6|Ht)JI?=RQhUEd~tEuHYqP5aChEKv!dx6T-ZHrY-ZvC_6dD5{Y|4ClO(y7yQTnwKXu6%RB@-LUhu@m!p zIxQzZy}Ey<-1+Qwy@sZ>#rL=DvM4G$R~0qO;kd`l)arLkxpq#gZocJRa4e`bTlV|9 zO+QN7SM{!A`o|hD$?J4+O(2K4+PZ_90l)b|&A)!)yK1d+6cz9|v9jG-G{{ z;oefO)u(o9ES<4+Rg8jt-ZyD?ze(##zQ4X=b7#_*iFL9Wzcr@rQuR#Vv~7~e*R;S1 zOSDV3IGeteRq%WjChRe(>KZ6ezOr~}E^Yk6-k`Sn=KRfF6~H9V;OXk;vd$@?2>^o= Bjcxz{ literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__request-members.html b/classstdex_1_1parser_1_1http__request-members.html new file mode 100644 index 000000000..5fe787838 --- /dev/null +++ b/classstdex_1_1parser_1_1http__request-members.html @@ -0,0 +1,96 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_request Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_request, including all inherited members.

+ + + + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_request)stdex::parser::http_requestinlinevirtual
m_line_break (defined in stdex::parser::http_request)stdex::parser::http_requestprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_request)stdex::parser::http_requestinlinevirtual
protocol (defined in stdex::parser::http_request)stdex::parser::http_request
url (defined in stdex::parser::http_request)stdex::parser::http_request
verb (defined in stdex::parser::http_request)stdex::parser::http_request
+ + + + diff --git a/classstdex_1_1parser_1_1http__request.html b/classstdex_1_1parser_1_1http__request.html new file mode 100644 index 000000000..572a1cade --- /dev/null +++ b/classstdex_1_1parser_1_1http__request.html @@ -0,0 +1,239 @@ + + + + + + + +stdex: stdex::parser::http_request Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_request Class Reference
+
+
+ +

Test for HTTP request. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_request:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Public Attributes

+stdex::interval< size_t > verb
 
+http_url url
 
+http_protocol protocol
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + + + +

+Protected Attributes

+http_line_break m_line_break
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP request.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_request::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_request::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__request.png b/classstdex_1_1parser_1_1http__request.png new file mode 100644 index 0000000000000000000000000000000000000000..7f3157c65fda0d2d21b9d942d86ef39b2996bec7 GIT binary patch literal 799 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)PnPp*gBu4%SY=O#bA`^KY#xTDoQDgLkrFq3d?6G~4r2R_SE$-an;EC)Z!|XIN`~ z|8C`^n#pxv`6i}(M}!Cag-trA9he&OFS0ZAEV2#rxu*vDn1|hs~!L9q!L^ zV7LGbJBBZ7I9V8MvzZtj&J!baKz8YrOCC;>mK2&as;o@+Rq%Wj8Qxg7diu-m`LoyA zMSqiSykz|ATYl;GuWLUa|M6|l|203ul#iACPI^+Bx^7KG`ge)cH!r+`qUSTKuG}K4 z>bdUeJ-Pd5j!smW`pjIb;=F_5B9*zXgaW?Io@}D_%x9YW{}eZy{DR5pS_{6*TD~r~ z)%9JFyll-T8<1S z+$x^Be-$REd|kw;;t32O&!F>F3_#C2{9=y(vrZ>5;?g2uQfBaU^>bP0l+XkK{$X + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_space Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_space, including all inherited members.

+ + + + +
intervalstdex::parser::basic_tester< char >
m_line_break (defined in stdex::parser::http_space)stdex::parser::http_spaceprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_space)stdex::parser::http_spaceinlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__space.html b/classstdex_1_1parser_1_1http__space.html new file mode 100644 index 000000000..65688c6a0 --- /dev/null +++ b/classstdex_1_1parser_1_1http__space.html @@ -0,0 +1,200 @@ + + + + + + + +stdex: stdex::parser::http_space Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_space Class Reference
+
+
+ +

Test for HTTP space (RFC2616: LWS) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_space:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Attributes

+http_line_break m_line_break
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+

Test for HTTP space (RFC2616: LWS)

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_space::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__space.png b/classstdex_1_1parser_1_1http__space.png new file mode 100644 index 0000000000000000000000000000000000000000..372678e118e8a24af894a949b060f15a423da84c GIT binary patch literal 780 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)mOOwF$gX3oVDa?fK^Uz^Mo%S1O6pNPD@ouR6JQ|(&%BdNln1hZ5p%JGsj8x z!RH+>KevA8UaPP^o<+%XF+cOtt5$FSZ|nSB{Wk6G{r&yNOBcL-IV+Fv^moAzJsC~b z{#y&pnJ1N=cIec3>)^R0^XFTSbyA;g(-s)6aW=ZR<;_Z)uGs6Vsx~^qIW_F=WmD76>kju8RIFm!{`$q^sV=V< zJ?QU@58Gef>&l#B_VF6u&j&XzpOww>cS&y-ij10<(%oczu#WfDm$<#odcNgVHGA&K zTJigDKQ;HFSMSN>ZLg*rS(CZ`)YMC9O|wmNR>c%v&Z+ob-l3BJ>S?_Cq(58!F=g!j z`Rv@}C$qn-2MQm~W}29i;;S&JXN_nEFpv}&53GN|#GssMvfy;8!J>-|Ve>Y2v@y>L zeOwYt$R~4o??f@Z;x^sDHr=N_zMGzrE?k{p>wk>;K!yMepvm%ah|mA>SBl3=T~Qie*Bd2eD$l1 zd-MXT_3m?(%xjr*x-4p!!*h?Bq2KQ?pK8>KSHJMkebTx0(lnvbziwRZ_<|~&-h?|;#BdRxRq(?luHi3m=ev`T~Ruj21?!xp00i_>zopr E08K%1P5=M^ literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__text__char-members.html b/classstdex_1_1parser_1_1http__text__char-members.html new file mode 100644 index 000000000..09b55749d --- /dev/null +++ b/classstdex_1_1parser_1_1http__text__char-members.html @@ -0,0 +1,92 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_text_char Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_text_char, including all inherited members.

+ + + + +
intervalstdex::parser::basic_tester< char >
m_space (defined in stdex::parser::http_text_char)stdex::parser::http_text_charprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_text_char)stdex::parser::http_text_charinlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__text__char.html b/classstdex_1_1parser_1_1http__text__char.html new file mode 100644 index 000000000..6c463c1d0 --- /dev/null +++ b/classstdex_1_1parser_1_1http__text__char.html @@ -0,0 +1,200 @@ + + + + + + + +stdex: stdex::parser::http_text_char Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_text_char Class Reference
+
+
+ +

Test for HTTP text character (RFC2616: TEXT) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_text_char:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Attributes

+http_space m_space
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+

Test for HTTP text character (RFC2616: TEXT)

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_text_char::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__text__char.png b/classstdex_1_1parser_1_1http__text__char.png new file mode 100644 index 0000000000000000000000000000000000000000..d52a6f782a73ac66ba97556066ece4bcf2c08465 GIT binary patch literal 812 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)=eRjs>eE^=Ay+1d>!sUX>n7vu!ehE6ZPO;T=7spbz4RtXyZAAyE8qT;t-;}w zm*2bcvy3(6giSVw@rAOQv)882d0O%NY16r>+fJWbvP`c)TSLmkzimf-|HSpIS+kvV zCjW>^erMI~H^KW+Xq!^y*OHkF_bE-{5#7|g>!f*Wz`>8QH$Kd>byhqRU^`LY+ByB> zlGt}C*|y8p{akmM>GQJ4>Dg<~PTXC7qjcx9W!@FPWR*^O+x#t6IywJXJjbs2HRaDd zKh6HI-q>Z*;beGV?BKk$Eq68t!w2mO#)g>&vlmRCep2MD+KXlBdajo_qhk3OjvW(X zVNg!yWNH8gALD@&5lsvUDLRe}21e5q7$hXU1sHmIR5=*jFqJ*f)>t}aW`mL^Fz_cW z0qXX=bfQA%MMQm6`RB_!yM+09RbDdv_YSB`zW@K7-S_I#1+(wZ?>}vOFYnllclWz? zy=6G_1cczNw!Rn^2E5{teRm@-AU3g>7(V0qH9|}$VVYc!lQ1URd<3!zG*2~Z2 z-c1$v%{dn;vgP-;*+o*Gr#@_WvSz_z2_eVlUbj=z?UYXZ+9z_wa;i!{yYIn^>c_2~ zt=s&=r%fhaZH51CmCBlbJU^ESbXo6f_ICU!`Kqr*W8!gTe~DWM4fgrSFy literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__token-members.html b/classstdex_1_1parser_1_1http__token-members.html new file mode 100644 index 000000000..078641956 --- /dev/null +++ b/classstdex_1_1parser_1_1http__token-members.html @@ -0,0 +1,91 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_token Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_token, including all inherited members.

+ + + +
intervalstdex::parser::basic_tester< char >
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_token)stdex::parser::http_tokeninlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__token.html b/classstdex_1_1parser_1_1http__token.html new file mode 100644 index 000000000..15a8c2c0a --- /dev/null +++ b/classstdex_1_1parser_1_1http__token.html @@ -0,0 +1,193 @@ + + + + + + + +stdex: stdex::parser::http_token Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_token Class Reference
+
+
+ +

Test for HTTP token (RFC2616: token - tolerates non-ASCII) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_token:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP token (RFC2616: token - tolerates non-ASCII)

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_token::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__token.png b/classstdex_1_1parser_1_1http__token.png new file mode 100644 index 0000000000000000000000000000000000000000..deeadb55c33ef5f97aa3b2b90c863f6f5c30984a GIT binary patch literal 783 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)Q{@ThCdWcRdd zzsGiVhWw9tU)k&aE>f6e@?*n-Em6z==11??fBp8F$JPHU?x^3IxbEe)#Fz3d>WdZ2 zt*;)7<@dOz%k7nt**?W(*0lS4&sSO6C#gvto;9g++0(hF7T+jcyGmU9MDY#RV{>h8 zzudYkEq}6u=*-m8JgZx6>u=nevfA?9{(TFIm#talzH8aBk5LoMHLOFAytS;__b4M) zq-NHSH4%J*ixNnq#Zv#m)dF@6+8mfd!Ip&Mzo?f7SZQosyf6e^!;h z@R^r4)%vDa@5$nAuSAZo$y|SG>ZP<3XC=)-*X3Mh+4Eag>7@6bKcz}1{U6tJ+{)Xx z^RvoNwLdR8CZ<&QII2iW1`Bw)9n;E)oR+G zamwy&Sn31MY4+M0cW-{*-LMC)>9{{#6D_o zniO)&Q+4UCr`r!t%sSVvveHC&Mb-N~7oAd<+kIdE#KrP;Tl-^^Kdx91cSiMP_MVb+|KW|@`$zn08UHo* x9-J_U29NK0Hh8ZwDq_22WQ%mvv4FO#mtQa}59h literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__url-members.html b/classstdex_1_1parser_1_1http__url-members.html new file mode 100644 index 000000000..939199751 --- /dev/null +++ b/classstdex_1_1parser_1_1http__url-members.html @@ -0,0 +1,96 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_url Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_url, including all inherited members.

+ + + + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_url)stdex::parser::http_urlinlinevirtual
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_url)stdex::parser::http_urlinlinevirtual
params (defined in stdex::parser::http_url)stdex::parser::http_url
path (defined in stdex::parser::http_url)stdex::parser::http_url
port (defined in stdex::parser::http_url)stdex::parser::http_url
server (defined in stdex::parser::http_url)stdex::parser::http_url
+ + + + diff --git a/classstdex_1_1parser_1_1http__url.html b/classstdex_1_1parser_1_1http__url.html new file mode 100644 index 000000000..71f172204 --- /dev/null +++ b/classstdex_1_1parser_1_1http__url.html @@ -0,0 +1,238 @@ + + + + + + + +stdex: stdex::parser::http_url Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_url Class Reference
+
+
+ +

Test for HTTP URL. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_url:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + +

+Public Attributes

+http_url_server server
 
+http_url_port port
 
+http_url_path path
 
+std::list< http_url_parameterparams
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP URL.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_url::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_url::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__url.png b/classstdex_1_1parser_1_1http__url.png new file mode 100644 index 0000000000000000000000000000000000000000..5bc507711934758d3b699b6026d30354f7729f6b GIT binary patch literal 754 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)c+D7{&(ijvRBF|+x~Xj^um`Fvs?s!xT?l))H!W5dBcP!HeL#ode*Qgojg(Ga5To_ zlVz_=N$tMJzgO6wc-`!vlKCZV!KSF`fAeSWxW7H`+P}X)cidtBHE-d|X94s38`52b z?^I^>wo6XPiDuPWvWC|0t&Q&% zU9P&>Kd!&JzHal2hBHcWYbWr>*~YF5*ssi{9paH&I!Tu+kNtP~g=ODgNfu@9y8HNX z@3{**E89Zf^(-@8)^~H&;?Bs+fm1JEN^6>3ek0Vf^s?@c57sV|rdR!Z?K0{8wf_va z{PtOXR{81u>$0}Xq=!=-R3sxgT_#Q3%A|XGlaC6+kB&SBgUM;kyY8wf&*IH^IRUts|V%Y)_!OO4iI^OB| zIZtWPS)D1yVuC+s%CTRveKe_L<&5ih>`iT_ZJ+<^o9=a{+})`hC4Dc}Y*Xi%z-@1F zt?sQ=cYuSdOZ3@8Vyxv!f2?<~d`e%T_ndv(ogJsITP&u$sYz{DWGI+ZBxvX + + + + + + +stdex: Member List + + + + + + + + + + +
+
stdex::parser::http_url_parameter Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_url_parameter, including all inherited members.

+ + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_url_parameter)stdex::parser::http_url_parameterinlinevirtual
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_url_parameter)stdex::parser::http_url_parameterinlinevirtual
name (defined in stdex::parser::http_url_parameter)stdex::parser::http_url_parameter
value (defined in stdex::parser::http_url_parameter)stdex::parser::http_url_parameter
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__parameter.html b/classstdex_1_1parser_1_1http__url__parameter.html new file mode 100644 index 000000000..89705a0c9 --- /dev/null +++ b/classstdex_1_1parser_1_1http__url__parameter.html @@ -0,0 +1,232 @@ + + + + + + + +stdex: stdex::parser::http_url_parameter Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_url_parameter Class Reference
+
+
+ +

Test for HTTP URL parameter. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_url_parameter:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + +

+Public Attributes

+stdex::interval< size_t > name
 
+stdex::interval< size_t > value
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP URL parameter.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_url_parameter::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_url_parameter::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__parameter.png b/classstdex_1_1parser_1_1http__url__parameter.png new file mode 100644 index 0000000000000000000000000000000000000000..9f91fec200311f0aca4fcf7e738dd6a6764ad6a5 GIT binary patch literal 817 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)p6CbjuepWbn z-hk`E%{>plugQP%)zwiY^TXk$OYi2M+n@a4=e@R@Z=aXf*;rSdzVMY}#r>HZ45W(0 zSC-19Ic&-e4N%&es@Z9>cHh${v+VK>W#=Y)pLDsLrBb`%{)N?*8=Gv}Wm7J#+}phV z-qj;!(km1V>bkFW4;VwPc&s2{G2~&3|RKyu54ctmnJE+UEWXo~dVz z*A%t-X8XL|9O^E-dEH{ISxWn4F&zUU>(S}k^l zjT>1Q9e`>X1SGu$7+j7Cu`o;|N@%{q(kW?7lR8e=L^Qd$C?#_W33m1@T#&O%H}vry zp0AwepU!y6x>Wu5&vG8C`?m#l|NV2WU-|yIOFQOWca~kwIXB?@>KjM(pI=<^;s;yP zq>gPeN}V&p?r(au?0od34ztYx=XTCLx6k-|zUbBJy+TW>Q*2huIAiiXzW3;-@6PeZ z-YwfHuA+3yEqa}7`I~7A7hGDrIO?>mquI9T7r*X)?Coxv&r!eT@2yg~@2skVg$9Z1 ze%!Nj-lp+|yKXCMj?q7!t1tK3Ig2;_t2y1fI;L~+R1fX`mA>?uLBIQBD`D6an6wsOL6VB%)*boFyt=akR{0M9La)Bpeg literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__url__path-members.html b/classstdex_1_1parser_1_1http__url__path-members.html new file mode 100644 index 000000000..540fe8c0d --- /dev/null +++ b/classstdex_1_1parser_1_1http__url__path-members.html @@ -0,0 +1,93 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_url_path Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_url_path, including all inherited members.

+ + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_url_path)stdex::parser::http_url_pathinlinevirtual
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_url_path)stdex::parser::http_url_pathinlinevirtual
segmentsstdex::parser::http_url_path
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__path.html b/classstdex_1_1parser_1_1http__url__path.html new file mode 100644 index 000000000..10f1edd36 --- /dev/null +++ b/classstdex_1_1parser_1_1http__url__path.html @@ -0,0 +1,230 @@ + + + + + + + +stdex: stdex::parser::http_url_path Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_url_path Class Reference
+
+
+ +

Test for HTTP URL path segment. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_url_path:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Public Attributes

+std::vector< http_url_path_segmentsegments
 Path segments.
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP URL path segment.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_url_path::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_url_path::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__path.png b/classstdex_1_1parser_1_1http__url__path.png new file mode 100644 index 0000000000000000000000000000000000000000..4a0a7618c8b66b4743a2e7f341ec18677b969ddc GIT binary patch literal 795 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB))4%kmrAE35iA|Dm7w%B0zQ&?-a-L|zq~D4s zzhB`B_-tO+mt5v&Ub?&V*1xrVw>R?^zrTO)`~2e$cQ2d7GEe(%`*7k# zRsM-<3X9oPa!)&S>g2k6F3J9xIe(61w{6}6qb-^NS%x@pUsC*4jK2Mc-Md|7vIp~2aLs-%6_ zWUcu8H=mNd>D7BOdEcukot2lvrfM%et6H8N5xP@o*{u)H$~#p2OMkw0nPk7#pJA=} z{kxTu{;2(ZDXVnyooS=TrgUG0NpB*{7oAzet*)XUWBeyzK`&+?aQL?r}Ad zxv-{);lg$`0fsMYI9V8MvzZtj&d+jSxUiWRp$~mQUYRP2o|i0UIZV2;S#5&K*EQ1{ z$|j$Fp?Yrm!gFl%fByAd@TFtZ-{{4;=gr>kt*^dce{D}_zu{dw@tf-%a + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_url_path_segment Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_url_path_segment, including all inherited members.

+ + + +
intervalstdex::parser::basic_tester< char >
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_url_path_segment)stdex::parser::http_url_path_segmentinlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__path__segment.html b/classstdex_1_1parser_1_1http__url__path__segment.html new file mode 100644 index 000000000..ba14b5e14 --- /dev/null +++ b/classstdex_1_1parser_1_1http__url__path__segment.html @@ -0,0 +1,193 @@ + + + + + + + +stdex: stdex::parser::http_url_path_segment Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_url_path_segment Class Reference
+
+
+ +

Test for HTTP URL path segment. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_url_path_segment:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP URL path segment.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_url_path_segment::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__path__segment.png b/classstdex_1_1parser_1_1http__url__path__segment.png new file mode 100644 index 0000000000000000000000000000000000000000..b5b41d7d8cdfd51f80cd267e99093b943067e78d GIT binary patch literal 842 zcmeAS@N?(olHy`uVBq!ia0vp^H-I>RgBeKr$a-f1Dd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5C84jcfA2T!`Z0w~8>666=m0OW&#In(Sb3=B+HJzX3_Dj46+eZB6n0#8eO zXNk%C|3_xGv25_Y_4ef|ZGq5bo(IJ3^v=cS+}?IpBS*z@zL9VBg|(7BD!uzyrj@Oq^1qMa=T6@3+n;~`{Ov`DZtP{{gj##yI7#0k z@s+0U`WjT`@%*!6!Y|@Ov>fw(LU}5Il)F3V^o9ohVEV$`uPI;=bdXdONPCC zyT>(H`1bi!1C4!prS&YfTXu-vj_Hq=fAeZ(T(0-^D-2r_?k#XLa{l`H<>#A?zaBl@ z-akKW|FnZj4KrQ$MjOuG8K^q&-)U$D2?3)AmpNMxf%I zcZw(Lmu*c_v77`Cj!gF3+j3_IFnlom%W$A)mgt-3=|P(!50ZN&BL&bBJKex{$pq9x?CO$cEZhC)W_MGJl-&w`~ z^t?28-IdSHOWn8pDKB~U-0bhYdH2uXo@l?tWZBQ=pg&oU)?~d)a#x?OzFhCm&Ye%T zBzUg6{&J#9@zmv$_q_b9>$z%rBt!ZgzttyS%}sjmc*!JOnLX@#gY+8dNi)CwxV9zY z-HR&m-LIdtKYMJxeS;|P|D6Z+?%bE7zkb_O;|(&J7Bg)a&zS#yB>3a5;kRr_9Xod8 zx@`?J3^h;2=pA`&oYviL9hfLkp73x-iOeC*Pamt)KlHA>vA!$3A!>G(qfzL^=T_&p z>lf^unUQR+c79dT$t&lktnZri#cBWFEq{9N@7@@HtDaw{{z^^H>aS{L*EMDAJwHhm z9ewo2W71XYgh?hnVlz~Fm$0gNDrd5LYcA#d%HGtnaZym>GBseTXYh3Ob6Mw<&;$T# Clap`& literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__url__port-members.html b/classstdex_1_1parser_1_1http__url__port-members.html new file mode 100644 index 000000000..5ed6c04e5 --- /dev/null +++ b/classstdex_1_1parser_1_1http__url__port-members.html @@ -0,0 +1,94 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_url_port Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_url_port, including all inherited members.

+ + + + + + +
http_url_port(const std::locale &locale=std::locale()) (defined in stdex::parser::http_url_port)stdex::parser::http_url_portinline
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_url_port)stdex::parser::http_url_portinlinevirtual
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_url_port)stdex::parser::http_url_portinlinevirtual
value (defined in stdex::parser::http_url_port)stdex::parser::http_url_port
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__port.html b/classstdex_1_1parser_1_1http__url__port.html new file mode 100644 index 000000000..85b5b8810 --- /dev/null +++ b/classstdex_1_1parser_1_1http__url__port.html @@ -0,0 +1,232 @@ + + + + + + + +stdex: stdex::parser::http_url_port Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_url_port Class Reference
+
+
+ +

Test for HTTP URL port. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_url_port:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

http_url_port (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + +

+Public Attributes

+uint16_t value
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP URL port.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_url_port::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_url_port::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__port.png b/classstdex_1_1parser_1_1http__url__port.png new file mode 100644 index 0000000000000000000000000000000000000000..5486bb5c46bb481cfea06afb782ec579b794f6e0 GIT binary patch literal 784 zcmV+r1MmEaP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0007; zNkl6j!~I(&(Fk(rTUdzir}vU%OfR_vhnsA832J zrklg^d;~lrn&8e;ZQRX(WZg1QB1=0^5@}k#JCdu$e2*Du4C|0gG%b57mtxnos%|Wh zk6|a7bnk-{*{Ci}7q*F4Z0(V&W88mzpmU_ms(ZSoCh;1`8x&7f;C3B- zypm{L6#Oyq%j);8v1owICSL8351u_;?ofLoIy;oe(()u*6x<2+Yfz{6?mOhtbf?G1 z>%Bwg;ptYnGg_%JdCXRwl9)B^Rk>2yOmMS?O_eKdnho!Mhe+~LZ-1Rg^1Jm3pzX~! z?>tF#^aBt_N)lBCFb4(PCXo4xq?tE<-sef#8PVG(T3`$a?r;c0=bnJNt=o~4t>Ygw_E_~;;?gX_Kp@5Q9 zT6S%Vf;;Da4K9KFJCwKc`W^bRBiFBTXS7m@@|dknew()`w#sGyZUtIT?^QWTdZ1Sw z{KE%OlAhGZf%cD*_i^_Ahd`2at&adnQXEYnNs6oqBuSCA0;QDFK>7o}^sZg}@SR=& O0000 + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_url_server Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_url_server, including all inherited members.

+ + + +
intervalstdex::parser::basic_tester< char >
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_url_server)stdex::parser::http_url_serverinlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__server.html b/classstdex_1_1parser_1_1http__url__server.html new file mode 100644 index 000000000..6f61d760d --- /dev/null +++ b/classstdex_1_1parser_1_1http__url__server.html @@ -0,0 +1,193 @@ + + + + + + + +stdex: stdex::parser::http_url_server Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_url_server Class Reference
+
+
+ +

Test for HTTP URL server. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_url_server:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP URL server.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_url_server::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__url__server.png b/classstdex_1_1parser_1_1http__url__server.png new file mode 100644 index 0000000000000000000000000000000000000000..491a8314c21308e107944dd32c74c5d558aef3f7 GIT binary patch literal 809 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)*9JV6%Ka>bM1 zFK`9iT=dZLHFxFT1qzc&exx~Oe)ao(e_O%+?TKN(|JB626W+S?3M)9me^heS7_@Zf#|7CMqrJvHu&fK-@$l3)j0+b{l{jzo2H)%yK*G8X5 z*}c`_l_5=c)Z*R-sGOguSH5Ch$1y(DO+9-~n70NT{3v_li=C~r;@JS(iR(+-&OOR3 z+c|mdml-zCcl&vs*}ZL7OlEH1oxO)wot|oNwat9Lvr1)W|9(G}pLc)oI^I56o<2`y zKSzC4yT_(#A4ip&#>*5Yy^&nK02o4z3=H;7(hNN<7g_G+HET-wURaf`<9e8LRxBUG zuVW%C48V|MYM5up%II)@Miaw=bRS2C3qbu0FC>En7{2sqaxhe3DtjQiWXdHEhe=Bc z4Ol&cfEra+rrQXX_|)m_I#Su{H|gF{d7&xq-u%Arw&i~Gt*iU&<)`c3Ka~{oo!>Ps z+~tkNJNCWYQ~oC9c&5d0c?C(fPf^)9@jaiKvAC|M*5TZcg1#?#dNWisA5BycUnuy( zWasr5d&zG9&2g{R1_ia=3Y{d`?|qKz)~cnNFXm{jUh~w}vDabeCug8>Hd$PK`wG|G zet)K-Mrj3KNZ-Z9|31!72L z>K)IYGKY7{|FxczZ06OptGpC?zwS@d`d*c-AFG?b^#}D_+~#$udxo`&Cosq+Edd4@ j(B~1XOQ&3N_`!Z?^4g2?CkwX#6E%aUtDnm{r-UW|=2>>X literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__value-members.html b/classstdex_1_1parser_1_1http__value-members.html new file mode 100644 index 000000000..98dfcdf5d --- /dev/null +++ b/classstdex_1_1parser_1_1http__value-members.html @@ -0,0 +1,94 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_value Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_value, including all inherited members.

+ + + + + + +
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_value)stdex::parser::http_valueinlinevirtual
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_value)stdex::parser::http_valueinlinevirtual
stringstdex::parser::http_value
tokenstdex::parser::http_value
+ + + + diff --git a/classstdex_1_1parser_1_1http__value.html b/classstdex_1_1parser_1_1http__value.html new file mode 100644 index 000000000..cc814b7eb --- /dev/null +++ b/classstdex_1_1parser_1_1http__value.html @@ -0,0 +1,234 @@ + + + + + + + +stdex: stdex::parser::http_value Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_value Class Reference
+
+
+ +

Test for HTTP value (RFC2616: value) + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_value:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Public Attributes

+http_quoted_string string
 Value when matched as quoted string.
 
+http_token token
 Value when matched as token.
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP value (RFC2616: value)

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_value::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_value::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__value.png b/classstdex_1_1parser_1_1http__value.png new file mode 100644 index 0000000000000000000000000000000000000000..9adea93b59294f444d8ca070a563b5f896b711e5 GIT binary patch literal 784 zcmV+r1MmEaP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0007; zNklt99D{Z4>wB+RfU(zaKx>fwre> zx;ZTGN5C_p3GO`A#@!4^)-3}iva|ywk*4LRBe`nK_n3jkunx&Y)3T@XQ|!7{)q@4{ zG3+FhP9E*NwWh|mIY3n~8`Y)h!Zz`WtvzyejO$+?=o~4t>YlEtNxTN~2E|hqxLrpd zuOwO*1%FKZviiMiEE*uQiMMvh2hW~v?ofLoIy;oe(()u*6x<2+Yfz{6?j3Szy3^z1 z_3qGlc)C^Yj8a9Cui-Nl`KBb#LF5T?3cWEW*zJ7M(`c>|XTxwb#vsKQo`ZmQ@xqR{V zk=@4^s+=S}(5rqv6+alz{!#isE^~(@DY7PzBt_N)lBCF5fl^9oApHYg+piPz>e!P2 O0000 + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_weight Member List
+
+
+ +

This is the complete list of members for stdex::parser::http_weight, including all inherited members.

+ + + + + + +
http_weight(const std::locale &locale=std::locale()) (defined in stdex::parser::http_weight)stdex::parser::http_weightinline
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_weight)stdex::parser::http_weightinlinevirtual
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::http_weight)stdex::parser::http_weightinlinevirtual
valuestdex::parser::http_weight
+ + + + diff --git a/classstdex_1_1parser_1_1http__weight.html b/classstdex_1_1parser_1_1http__weight.html new file mode 100644 index 000000000..55eb00cf1 --- /dev/null +++ b/classstdex_1_1parser_1_1http__weight.html @@ -0,0 +1,233 @@ + + + + + + + +stdex: stdex::parser::http_weight Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_weight Class Reference
+
+
+ +

Test for HTTP weight factor. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_weight:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

http_weight (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Public Attributes

+float value
 Calculated value of the weight factor.
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for HTTP weight factor.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_weight::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_weight::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__weight.png b/classstdex_1_1parser_1_1http__weight.png new file mode 100644 index 0000000000000000000000000000000000000000..b3a0517ab0971a88cbe1f528592509826b89b291 GIT binary patch literal 807 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)})UVC&M=?ll>%R zZN4r$w%yXf*FgH}(wB$IKCW78Ta?@L`@X~riItmg&0DzAa}Vn$wyVLyJL28t*Q?zU zW3Bi3v+38~*E&`Tn>+iXMbAsX zz*o`Sq&7jt^;+eEyYF)Uy?X8*e)U1khYJqtS?pP-yu0}M{4?YG+XcY^zpZBXykjQy z#;5j7dbiF-`}nChs_dRsi;NvSSLM2UPRe}x?!=t~aoqe#-O%7{-1~PwUP9KL(n) zwqm>M!M%ocymCx8b=p6_&DQoj|3%zAFXn0Aj;+h48b&|;W0oK6Gd26dZ>{hfDla?F z)wip>To_kc^lgv#CCgTZQ}Rm}@>j>GzGQE`ztC9zvOa@n5Rb2dXV)4|70-!VnU+qu c)cS?}%Zznl1veHQ1}13+Pgg&ebxsLQ0EAb400000 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__weighted__value-members.html b/classstdex_1_1parser_1_1http__weighted__value-members.html new file mode 100644 index 000000000..0680d6a2d --- /dev/null +++ b/classstdex_1_1parser_1_1http__weighted__value-members.html @@ -0,0 +1,95 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::http_weighted_value< T, T_asterisk > Member List
+
+ + + + + diff --git a/classstdex_1_1parser_1_1http__weighted__value.html b/classstdex_1_1parser_1_1http__weighted__value.html new file mode 100644 index 000000000..e8d48b28b --- /dev/null +++ b/classstdex_1_1parser_1_1http__weighted__value.html @@ -0,0 +1,240 @@ + + + + + + + +stdex: stdex::parser::http_weighted_value< T, T_asterisk > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::http_weighted_value< T, T_asterisk > Class Template Reference
+
+
+ +

Test for HTTP weighted value. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::http_weighted_value< T, T_asterisk >:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Public Attributes

+T_asterisk asterisk
 
+T value
 
+http_weight factor
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+ + + + +

+Additional Inherited Members

- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+
template<class T, class T_asterisk = http_asterisk>
+class stdex::parser::http_weighted_value< T, T_asterisk >

Test for HTTP weighted value.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T , class T_asterisk = http_asterisk>
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::http_weighted_value< T, T_asterisk >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< char >.

+ +
+
+ +

◆ match()

+ +
+
+
+template<class T , class T_asterisk = http_asterisk>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::http_weighted_value< T, T_asterisk >::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1http__weighted__value.png b/classstdex_1_1parser_1_1http__weighted__value.png new file mode 100644 index 0000000000000000000000000000000000000000..f0430023e7cac37956ad71c562bfc772afcd1c0c GIT binary patch literal 1120 zcmeAS@N?(olHy`uVBq!ia0y~yVAKP$12~w0>(*4zC4F}d%F zQW>$EE^JL(`TtAd>A+`=D)EC@7>6*9_+yML_Sn%!V9=g-Ca@2{_OkJ8OQc0B6W-Yffl&R(T| zn?Lq$&tI#Ob9ecC&6CZIWy2=bM2b(EsB-=b^Tmlz++XS+C|&>j{d0cLe=|OnOiYQW z7ZCUScYVqZ52H0lTqh-}>P_O&E(D63$85beYt`0k4Ga&2zp^rDGIVGZGCG9B$Dib8 zX!43-5V+bK_KB%shLAYJo&_ze3_zU>9NIu75uMx&hd>I#9x*ilgP);g>JA2lHAkqX zq*iNPkeBDwATJk4afby@Odtq`{>oRz1wRUukBO0EwxVR>$POf zp!~NhBW>RR>1(COpW60J_SrxG<+8~4mmes{bT2*2Z6uv~Rw^dhLUwEXN_*wYx3!f1 zXC{3TIr8S8$))EfZa^7K9!tiHrm!tpLooFx_7r? z&E+w)ssy8i6bKZAG9$)3KmBJ6VAf->D-{aNAmP2ICMhVC!p z- + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_any_cp Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_any_cp, including all inherited members.

+ + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_any_cp)stdex::parser::sgml_any_cpinlinevirtual
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__any__cp.html b/classstdex_1_1parser_1_1sgml__any__cp.html new file mode 100644 index 000000000..d350fc1d9 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__any__cp.html @@ -0,0 +1,198 @@ + + + + + + + +stdex: stdex::parser::sgml_any_cp Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_any_cp Class Reference
+
+
+ +

Test for any SGML code point. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_any_cp:
+
+
+ + +stdex::parser::basic_any_cu< char > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for any SGML code point.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_any_cp::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_any_cu< char >.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__any__cp.png b/classstdex_1_1parser_1_1sgml__any__cp.png new file mode 100644 index 0000000000000000000000000000000000000000..79a94fa5d34b22f19acd09c5e53f437ca3588794 GIT binary patch literal 1193 zcmeAS@N?(olHy`uVBq!ia0vp^w}H5WgBeIhy60&FDd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5C84jcfA2T!`Z0w~8>666=m0OW&#In(Sb3=AwLo-U3d6^w7^zAk#Lz|%54 zRc-P2`bUp{FmXJ&k~w+HqZNm*nQ?UTw|o+}d~UOHf@hHztF-5@;0+U(*hl7g+IoDd z-Xz0QTYLO^p#J*TmvdBBezDxP#mDFN{;S8o-K&cEwf+6yLV1a5pUYPh|K4Mk6Ab-u zE;u`9U4sgH<~EmW+k#btwtm{SezWB3>MI8lZnUK=$~qcc8)AKVRi$O>>%%X9W~HWH z`61;y^?jW+d$ZAY?%eeUmKhgq;w}Hb`DWiltJQA}eMOy5Uy}~;&)WKT+P9BYyB1FS zQh6o6tbS4R(F4o+zP-8g>%q~>FL(A5h8(4Q1!2h|SdGeNC#cu^^&wYOW8^LF*?w3qkyeLr5C z@W#+Ly#4F$mOH;*f3PqMS`nF?(X2ah>)VjdkhOc>zRo%JOU~3l;@VpIyRSB0iZnYq zFSLDi|1{s7(rPPTRQVs5y|(O>`N?IyjP0ir*BpxT@n2rNiMJFH^3wOMcK}=2Z?tjz1t6N3bcxg80ekeco?ZKThv#Z|jdl_|UX~lk7-P^|B-}bE4JGLud zJ?C1j^`_HnCLceQm8q4yD`x*3-bojoH~D#T!;b%Wu+{3c$8Kbj;k;ucK_nib-qq!g@m!^H)t6-d0ax}EoZ z+1iTs+yCe3>YANCfAm+8`TcvhRdxT~{{C+Ve~<0e+Yht;FTb%(a`$ofWF@8kl2+Z$ zD`D3sxnybQTh|zyeKRS(mMUi*>R0e3qqnoe=923+r_1ZZ*>mGh>m=7c`^U38b8~OI zrc%<&BEM}P-_@JlHVjJNYI|$8O5oa)yX`FRow%kN(HrnSpnOqtYgf|quQOL~-=sS6 zmRCfq_paMl^V{R9>)q!kRlkJ>@ujR#o#b79*F;xaWj=f2w`ALU+tMJHC)~BCPj2;W zyLvQZ|53BJnOk4=JTH`~v;KDcW?zh`V5Q3C7n^gGl + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_cp Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_cp, including all inherited members.

+ + + + + + +
intervalstdex::parser::basic_tester< char >
m_chr (defined in stdex::parser::sgml_cp)stdex::parser::sgml_cpprotected
m_invert (defined in stdex::parser::sgml_cp)stdex::parser::sgml_cpprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_cp)stdex::parser::sgml_cpinlinevirtual
sgml_cp(const char *chr, size_t count=(size_t) -1, bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_cp)stdex::parser::sgml_cpinline
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__cp.html b/classstdex_1_1parser_1_1sgml__cp.html new file mode 100644 index 000000000..6fb3cdd31 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__cp.html @@ -0,0 +1,206 @@ + + + + + + + +stdex: stdex::parser::sgml_cp Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_cp Class Reference
+
+
+ +

Test for specific SGML code point. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_cp:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

sgml_cp (const char *chr, size_t count=(size_t) -1, bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Protected Attributes

+std::wstring m_chr
 
+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+

Test for specific SGML code point.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_cp::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__cp.png b/classstdex_1_1parser_1_1sgml__cp.png new file mode 100644 index 0000000000000000000000000000000000000000..c418658290d5e58942caf171c96a3eec0aea31af GIT binary patch literal 780 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)<>qEJ0ncx17^d85 zR*4Tj?Pw~-zOV0B?;brCCC}yN%uBCYy{+HYTD`wybKm>-#~<4T_M7;cw|}c+u~FXj z;9zj(oihz7H;n?6*2-#hmgs)(d(ySj;*pxxVIvjc*wgdgB$oNEUi7#ziD&zw3iv*2gNQWkiZR zGVGjh`Ytv#ka4GP%@$|Fif>;E+FuD@ys^+F>U4KaAcwj|U9-{N`S%u1NVBjtjC;*D zw|#l!({mYN$)Dz|x0*J?JU7%*J6CVV@3zpX#^zVs%>VOGeB%7~$9`eYebMt7ZsqOU z{aNK_|CiO}9V)x8vnZXMXWHnoDSfTO=}kJ!oD6ywc^TX;WjJiVo#3*Vaji|VATPVg zY8i$vYdKjMY_pjd9nQ~kV7LGbM20VGh!NVeXiAWjr^h6dKD7xdU)OM|c-p>ZU66cm zw%rl`yZ?$7Y>`^OwC?qt>u>)W^_SMv+sl3LtU9u1?z%pEzKr<7swqqIUuZ5+iQLRG zDMj}?-=m~;a+=q2D(BBve;+F7F=^kz^hP5mpG)b1WuI4VV9vYK81DW%)}i_t>xIA9 z*{srYLMYu z=B!rvvt(1<^FOuHYu23#br27+^!(+dU-|p>B6Zt3nHBq#qJM6P{dvFP++qz+-&zTe rNp`D1KFVhD3_2gx803|y@R!l9bpvDB>$eAh>6XFM)z4*}Q$iB}4tZjY literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1sgml__cp__set-members.html b/classstdex_1_1parser_1_1sgml__cp__set-members.html new file mode 100644 index 000000000..23c6d7cb7 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__cp__set-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_cp_set Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_cp_set, including all inherited members.

+ + + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
m_set (defined in stdex::parser::sgml_cp_set)stdex::parser::sgml_cp_setprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_cp_set)stdex::parser::sgml_cp_setinlinevirtual
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
sgml_cp_set(const char *set, size_t count=(size_t) -1, bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_cp_set)stdex::parser::sgml_cp_setinline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__cp__set.html b/classstdex_1_1parser_1_1sgml__cp__set.html new file mode 100644 index 000000000..a43b1a3f5 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__cp__set.html @@ -0,0 +1,222 @@ + + + + + + + +stdex: stdex::parser::sgml_cp_set Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_cp_set Class Reference
+
+
+ +

Test for any SGML code point from a given string of SGML code points. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_cp_set:
+
+
+ + +stdex::parser::basic_set< char > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

sgml_cp_set (const char *set, size_t count=(size_t) -1, bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_set< char >
basic_set (bool invert=false, const std::locale &locale=std::locale())
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + +

+Protected Attributes

+std::wstring m_set
 
- Protected Attributes inherited from stdex::parser::basic_set< char >
+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_set< char >
+size_t hit_offset
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+

Test for any SGML code point from a given string of SGML code points.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_cp_set::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__cp__set.png b/classstdex_1_1parser_1_1sgml__cp__set.png new file mode 100644 index 0000000000000000000000000000000000000000..91a52166537e5361ee6b54b14fcbf04b095e614e GIT binary patch literal 1169 zcmeAS@N?(olHy`uVBq!ia0vp^7l62fgBeIJTt4*KU;A5VMyzQC+Y(GlOm_3swFC(teoPYA{oi)GHGIJL)Wee zPpUu3@YHU5Z1sw}vR0r&W$HhP6>F}g{;u}9^RC)F`~SB+@$ZJj#2Uz6U6Of-@8hhs_ljzJexGMwrJNgf|M9F&W$R}2(0z21>*j;@<(EaJ%3C%&wdTB?v821{=D}~WUta$G!ZXw4?7NL0 z_ZWwm_eVd?+7g!BXBb-=m2~UM>Y}w;Wj_N_*1$lD#aC%-L9^q+b}Am-cKnr1eyjd|XO+rT^7V5)KAr#K zy1-qsz>L>(-})HENj+;=lun-TQUEeUGl1z(iSdAY33J0tVCcRzlf0PYpnX2Z%ln^zxnn&PUye- z{9Hh6{`ON>1J?4$Cht16bxO!o=?1;kbL0dB4XZv{t0)z%+HPYr_e=AfeM}}Y6W<=$ zK7Idn)4Q5VMQh)$xez)lK2A|^qJfu!;6z}c0g0$aFU?e?zwAox*LiD{+LVBW2ZN`p KpUXO@geCxUg&PzA literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html b/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html new file mode 100644 index 000000000..43dae3fe8 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html @@ -0,0 +1,100 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_dns_domain_char Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_dns_domain_char, including all inherited members.

+ + + + + + + + + + + + +
allow_on_edgestdex::parser::basic_dns_domain_char< char >
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_dns_domain_char)stdex::parser::sgml_dns_domain_charinlinevirtual
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
sgml_dns_domain_char(bool allow_idn, const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_dns_domain_char)stdex::parser::sgml_dns_domain_charinline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__dns__domain__char.html b/classstdex_1_1parser_1_1sgml__dns__domain__char.html new file mode 100644 index 000000000..e69ad33cf --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__dns__domain__char.html @@ -0,0 +1,214 @@ + + + + + + + +stdex: stdex::parser::sgml_dns_domain_char Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_dns_domain_char Class Reference
+
+
+ +

Test for valid DNS domain SGML character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_dns_domain_char:
+
+
+ + +stdex::parser::basic_dns_domain_char< char > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

sgml_dns_domain_char (bool allow_idn, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_dns_domain_char< char >
basic_dns_domain_char (bool allow_idn, const std::locale &locale=std::locale())
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_dns_domain_char< char >
+bool allow_on_edge
 Is character allowed at the beginning or an end of a DNS domain?
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_dns_domain_char< char >
+bool m_allow_idn
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for valid DNS domain SGML character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_dns_domain_char::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__dns__domain__char.png b/classstdex_1_1parser_1_1sgml__dns__domain__char.png new file mode 100644 index 0000000000000000000000000000000000000000..87568d821fad8aaa8076809c266bd78ec0e17bcd GIT binary patch literal 1519 zcmb`HYgE#A7{~u=&ShSrVqTikK@1JGm90!&%>?zY9=wJIB3ij3k6B(yF||BpXf}dE za^A8i(<0L(PNwOcVcrcB3q#Ee@&aB^$WR&E+N+(j7dv}i{GQM6dER}$&-3I2V!e$G zEe!zxFa~|l!2qBG)iU*KJ?*>FNL$pVje-857>!1w#g9`9$+YHjm+$OPn6o-RHZ?VA z>miK3yV~CBq+o0ap#A?DyL1a*0f0UQM0+2b5?zS-dy5m~_%vV|hEN`x%~526@jY$%u@$VKcXV;Ds&&b4>mjG;sQP4k^F zcliQM@i`TTAdfUg-Hxbp;AIXB#Sf%Av7|h;O#0|xMvYO!&ew9D$@C8<#RR|fneBQY z<+9oR4He8TZ+dnODb8kUVyP`~o4%4*dDJe=Pgefi@mAd$kn$oH=l-%<8ttDZ8$E7f zB~qGh)1R8g4@?>j&CE?0POM*EA`qSo)bc(fJ9?w%8=$5~9gW}5)7~vNjD6sWg-04P zqe?L$Er(;SW4#lfyA2aui%^QUOAnp|vvJCjR=#`xqG;_V%?W`=!ST z`~)m|qE?$KE*xw;R|^NRcsc^f@nKxWA=;jV|0O5%EUek!N8Nc_4qy(0Rp>_{v|whh zg-slwlf525asU^yeiMiSuy~yl0>iUcaX?Y6?g$(DA6ru7fq!xG+eg9KFpxsquh-!f zKyiKGTAAu3L*87$pcp%5^PwPq))?1rTlaQ_NUA5Qx*|%3<-F3K+{L!-^P;Gy@x(~= z$1HxOW5$|Exr(KnaXen!?HAO*gmY_bgV<$LVFW(0c(28lJ59n5Yu&2mKZ{&Y2=Qku3SO15R>DZ<*}m7MhiH827ARqrqy*ib0ShCc-0qb7^KQO7)8p zr#Wm3yTs*4@n1 ztgRAXI{ppG@-%^PB_x-qTQ!ARLvAe`EMq<&aa2q-KD@+35<<0tR2mV!^CG6R~@1wx1wm zEP{@ZLQ#x)&89D&|GhL$xMQ5}E4ZihM=s9jTmjOx-tt?$kLj5I0T^E`_@Dsi@m2q$ z>0hR35ybi0+uGlrzpxHMN25_>TX-{wf-ibdYzger3ULI7WQvn4R! z6ShZ2XA)qv`<(@7v_onF&&t(mPY=Z|1wKIgjx4}7w@Tv=6iDZiNs+KZN)hUsTrbTBhP1 literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html new file mode 100644 index 000000000..881f1102f --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html @@ -0,0 +1,92 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_ipv6_scope_id_char Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_ipv6_scope_id_char, including all inherited members.

+ + + + +
intervalstdex::parser::basic_tester< char >
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_ipv6_scope_id_char)stdex::parser::sgml_ipv6_scope_id_charinlinevirtual
sgml_ipv6_scope_id_char(const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_ipv6_scope_id_char)stdex::parser::sgml_ipv6_scope_id_charinline
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html new file mode 100644 index 000000000..2cd160c55 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html @@ -0,0 +1,196 @@ + + + + + + + +stdex: stdex::parser::sgml_ipv6_scope_id_char Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_ipv6_scope_id_char Class Reference
+
+
+ +

Test for valid IPv6 address scope ID SGML character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_ipv6_scope_id_char:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

sgml_ipv6_scope_id_char (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for valid IPv6 address scope ID SGML character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_ipv6_scope_id_char::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.png b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.png new file mode 100644 index 0000000000000000000000000000000000000000..aa31f67b369fa244d604efbee1d31b2c9798e59c GIT binary patch literal 892 zcmV-?1B3jDP)vTJr#LVva2S`&=)l0h|Ns9}lGCUF000SeQchC<|NsC0|NsC0Hv*f~0009A zNkltk$5(%_S9)2b@n|2D1n_u9rffB(*p+d`aa zif#(acQ&|NG{&8#TDa)}N%qlUo5(UU&qSJWyk*a;H9un(f?#cuiDn#{%A?3NrK%T_ zH0ZPS4p@!G*JHKu6-AA1f51WD*y~KUJ$Sow-;!h(Z{NZs`OEk` z+pQJ#laD0-8fI)sa!gFNBsnG~Tap|TE8AsRma6~&K7cO(xC}1E_Ur3PbT7qrC3_*d z*J3++G60N<$rb>{#AFKqV`8!efH5)I0>GG=4{OT^+7fBI>e*W5PS9ps6_xO1 zv?<99<7MO$w%h1;*v5v?a5ZMKF`siHvfWq8u6o95Q<53c%Um~|?U8M^^*y%EvARoz z{Bb4aqaGxD!+V{rb0PZmJ+@x+le)EC$`yk@pjc0_ltbNCe-F<6blpB-yXR!HC+~(z zqdV4Y>nk=)Pj1IHJDLB@efxe-J~G)PpS^D-sf(BH!|tZD+FrknTlcLbJ;rH!p&0Ky zrX+$SGpc1tGO$(c1t0DFCAKa-B~{~JkF6yA- + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_punct_cp Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_punct_cp, including all inherited members.

+ + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_punct_cp)stdex::parser::sgml_punct_cpinlinevirtual
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__punct__cp.html b/classstdex_1_1parser_1_1sgml__punct__cp.html new file mode 100644 index 000000000..d28d293d5 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__punct__cp.html @@ -0,0 +1,206 @@ + + + + + + + +stdex: stdex::parser::sgml_punct_cp Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_punct_cp Class Reference
+
+
+ +

Test for any SGML punctuation code point. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_punct_cp:
+
+
+ + +stdex::parser::basic_punct_cu< char > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_punct_cu< char >
basic_punct_cu (bool invert=false, const std::locale &locale=std::locale())
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_punct_cu< char >
+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for any SGML punctuation code point.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_punct_cp::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_punct_cu< char >.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__punct__cp.png b/classstdex_1_1parser_1_1sgml__punct__cp.png new file mode 100644 index 0000000000000000000000000000000000000000..2e741b4775a728e27a476b33ce837b8b936eb72b GIT binary patch literal 1219 zcmeAS@N?(olHy`uVBq!ia0vp^Pl33DgBeKb*WOtGq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB) z>X|&>>yIAanyRdFXIJLsJ?xh+Ufb5v;4c3}KWnY&o&Zmy9g`-hBx`7T8nyXpc2`b# zQv6BAr#AWc^}zkpuSaWmUV0%rCABbcTm9#AnpL)EYtQbD8;|q&wAFfu%_^(7)P8Gc*j;YVT)U?dH>!** zf#oTbIT4UOkl6G`n?f)|y>2``A3C=KhPD^kik-A8oHm z^((#yty4W_pQ7?J`_x{QlM-HDlX?~|0WzXAve%mKVtCO1m7(FoF4m`y3)#;^2k1>O zKd^^A^;!f&$D$=H4M61#9SccdRJ3A*KHI4zIhCJtY}oG?{o;Mhy{z8DbJFy$TBkNe zOn-ads<8U~U7f$T%d2a6&e*Pd`6^(4Z{Xyamu~02-^~**ZRvSvq0W+R$HF}>_idk6 zXm0jxM&rp1(cz|2%S)nDm&tKI@O#sC)!jeyj_+ijzOvHiTemGcw%s->_`u6^J%ax3 z&v@-~-gcUL-#&ME&M&(~n}5k&FS)f)UGq1y{bzp9jBmAHKlb^|zqRA^y-|IK~UzI%>4#kAA2J<4*oE1jIL z^&OThLFqGN;hL@2UNAM-Ut?xC^jd66|8ZG^e8-&*_ZU9QO^HlqROp%{#E_(+$*9mq z0^@|6*YUQapu&b7Pf?Ay%;CkOS4&3@{hUi;JF{=MHDy#If@ zD<{uf++TG&c58j@zq6r}3-8pJ>d$t)uB!CtHCL+O#buGAg1N_|qucUw-o1RbCi7kP zGVfK6Z>Hb8swXQr(Z6J3P&3cW+YA1_Hq5@Y+U|6nY0kgPhd&za5ECpc{dr{8*WBZ& z%kH?Bgxycx>nV8op0A~heeZ(u+#63%9&-8U|97@#cgHs6O>6BA>&l29duD#`>E!Cn z>;tQziT(MKr5}KaJ#4e7>9w1u4>~x{vi@}2G|c4*x9!s-^S|hZi}&7lwTxe})o<%z zC8bB%+ke#u%!;oNy!eg({nCyT_G=KK(7I_#(4yD&?2Fz^w>ef&2P|$FJYD@<);T3K F0RUOtQ5OIJ literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1sgml__space__cp-members.html b/classstdex_1_1parser_1_1sgml__space__cp-members.html new file mode 100644 index 000000000..dfad2a733 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__space__cp-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_space_cp Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_space_cp, including all inherited members.

+ + + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_space_cp)stdex::parser::sgml_space_cpinlinevirtual
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
sgml_space_cp(bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_space_cp)stdex::parser::sgml_space_cpinline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__space__cp.html b/classstdex_1_1parser_1_1sgml__space__cp.html new file mode 100644 index 000000000..e7cd25c39 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__space__cp.html @@ -0,0 +1,209 @@ + + + + + + + +stdex: stdex::parser::sgml_space_cp Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_space_cp Class Reference
+
+
+ +

Test for any SGML space code point. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_space_cp:
+
+
+ + +stdex::parser::basic_space_cu< char > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

sgml_space_cp (bool invert=false, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_space_cu< char >
basic_space_cu (bool invert=false, const std::locale &locale=std::locale())
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_space_cu< char >
+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for any SGML space code point.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_space_cp::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_space_cu< char >.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__space__cp.png b/classstdex_1_1parser_1_1sgml__space__cp.png new file mode 100644 index 0000000000000000000000000000000000000000..1bf6e65577d503d03e467bd419622fe4d542157f GIT binary patch literal 1213 zcmeAS@N?(olHy`uVBq!ia0vp^FMzm%gBeKPY7Q3wQqloFA+G=b{|Cvv`C8h4Xt{-f zW`V@?GcOJtH~!=C$S;@y$Oi*+rrB2*7+5?!T^vIy7~jr)y=k=qPpf$M zOuu{oJNvhCaUPNTzVz+98GNg?j!fWp`qLeiy|*dA(`cX26cuGnM^B?k^BTm86;HlD zS#0pNSN8w>uib^U98*+!?O3A3^q+p*ZdG$9`@8r5$CbP9us@T#UQ&8v{&vpql4qYZ ztLMIPbC|?lR8SP^aqEZul@gX!EcXx@9#U7v3WH2vE7}_SsQb|&`$pA z3W?sAW_gEqT%UZDCClt@hWqi8vzH&1oooDp+dAsRy;;W5J#E59>w5WqFHbMws6Vl- zaNqhl7i~H3uG;N>F*{CrbLa;49N)dGZhNntd1uYrkkZ|=H61-Jy*gPwMTP(Cosl;hI{Lz8Dbp68Ta1RbE*=((E3?w$#llE ztGF39PFcVp;K|9wFp(6-`k=L2;~ZD0NXBz|O#h49eLPF+e(|fU%eHsky0RaC_N6d|d6k}9Fdy&5 z-fG)O8*elIFAC|)7gvme>^0t{zA(D< zdqh=kcJj7crApaVn_j(Zy}y1}bxPdTx9|2InYn+lO67{{H8S_Voczo3A}Z78+r%Zx z*&dVbhriSCbPH;ll%k>vWL#p3%3dojz_2IQoMA`PI;N`Ku`OS;7H~f|_0VUY6)Mh< zr0K}0FiA*+L5UPb+|nSgolOBQE|0VwU0r}$fy7Ij7ir%Yl~(>NQeR;hl`~EMVpXwu z{hil8ru{qqxoju@8QZ(J-(~$aUhw+IiwiNc7H$&}tXyQgz;(%Xxd_3Rz>wEoc6XNS#2&wz5ft&_A`%wE|@<_8@y$&c}^d6032T~N?}d2o31 zy?VPBc9-s7vb{E2#PF>2eVKPYvo}v~H2faD=vKsUhw&3 zl(z5fIqH0CAI7uGZVGTY@?!nF6&)w;hc$I|xCDU+U|4%;ieIqz`2K$9hO^=mfCUYM Mr>mdKI;Vst06<7DaR2}S literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html b/classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html new file mode 100644 index 000000000..ef79fa106 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html @@ -0,0 +1,98 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_space_or_punct_cp Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_space_or_punct_cp, including all inherited members.

+ + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_space_or_punct_cp)stdex::parser::sgml_space_or_punct_cpinlinevirtual
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__space__or__punct__cp.html b/classstdex_1_1parser_1_1sgml__space__or__punct__cp.html new file mode 100644 index 000000000..04bfbfede --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__space__or__punct__cp.html @@ -0,0 +1,206 @@ + + + + + + + +stdex: stdex::parser::sgml_space_or_punct_cp Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_space_or_punct_cp Class Reference
+
+
+ +

Test for any SGML space or punctuation code point. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_space_or_punct_cp:
+
+
+ + +stdex::parser::basic_space_or_punct_cu< char > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_space_or_punct_cu< char >
basic_space_or_punct_cu (bool invert=false, const std::locale &locale=std::locale())
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_space_or_punct_cu< char >
+bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for any SGML space or punctuation code point.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_space_or_punct_cp::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__space__or__punct__cp.png b/classstdex_1_1parser_1_1sgml__space__or__punct__cp.png new file mode 100644 index 0000000000000000000000000000000000000000..c31ad3f989df0a1de05824488e465c2c922f2a2f GIT binary patch literal 1533 zcmb`HX;4#F6vrRIQe}vWiXslA;OhtsiW(GC!0jcPfJ6l(0}`UL1O#Li6d|~bk8L3G z2up}aQ=%*}WC|0c1{7;47J_I9_WNIQQIp?uRqy|NGzU zW7NY~Q!7&d0I(D?(FXvGY|%VxxiK0mszg$B+jQ)RAIV@apy{}J_B{K?sy*8s;w(#K z7N%0rdQ7xng(<0Qe${LOkGi!AMg+kuYJu+JwihRWuvcibK4v z8o5l^$LH(R0!4unY!n!@DQCm;llPrm3Tmv_O7^X@T~nvS1c>rR=fd42`b{3Dv)SH;Jb*FcY7ETE98bmtfI z`SLa~LGjvVU&p#Qg>_l5?qz*tl<=;0W=u8sELeVaHny1mlo%Uf7QuZ{+P(_knDXd( zQF&_6#?ee1vv1vwjR`&K=#_bSI4*VUnL9HhWTiz7{jl>Q)kBS`RIr*=%1k(Z)%2xk zEp3jU-s03<-=f!mgpS1l`JuNEjTzw98Z`Q@@(44)3-3*#EMRE3t+%bzIs2=3X?^K0Q1P@U)f=eh-fj(W!ZlyPO{*$qFptT-nG>T zhb%{2K#F-J+VAI1EzK-a3I$Pj*QB}CfF6%GSf$#{Y`{|F;`ffw>-BUS!#fLHcY4`B zRHYXtMr62QG8Zq2uqBn^g$u*+=Zf>3IoAIoZ<2RDzq567hQZ_HJm>L==z)B*&K!Dt z=kra0bKh%=7%*MhlQPBMrrXm-<1^tj zn{;|#=!W|#DZ=?ec=5gmPX4l5RYUWY;ClB+?_@=!ip@OmPZ(TCXmW?(CrGv~LdA9( zJbqRs=~F{2KI#aOF&RaVd8z1qu&0k9;C?vcqz@D7pBCtTAj%yz`oc1#Ob#x=U#I z`biEyA=iPOp@VI@(;M#T*s38-!zorzy{4uyqt2k4+QFAvU-5n0GG+ZI3AtS|%&i@M zvcX>up#k-|skHusH*IXVOPQi76TXX83i^F@74_GT5`x-B@jPz%w16LWSYP)cte>^O z*v7L+?5k~#y1y?f`} zUP;KP{WLRRLgdy-rE!m1-U?IpXZ|LVvLM4qgG{DoG;zS%BoU2KI~)4GVy8;a0Ys~v_+0YG;krV%IS9w6qbvik X_i{7|#?kcXM-5O&RASx1Q&;~0O8D8r literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1sgml__string-members.html b/classstdex_1_1parser_1_1sgml__string-members.html new file mode 100644 index 000000000..b6669e36d --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__string-members.html @@ -0,0 +1,93 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_string Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_string, including all inherited members.

+ + + + + +
intervalstdex::parser::basic_tester< char >
m_str (defined in stdex::parser::sgml_string)stdex::parser::sgml_stringprotected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_string)stdex::parser::sgml_stringinlinevirtual
sgml_string(const char *str, size_t count=(size_t) -1, const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_string)stdex::parser::sgml_stringinline
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__string.html b/classstdex_1_1parser_1_1sgml__string.html new file mode 100644 index 000000000..532e74b48 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__string.html @@ -0,0 +1,203 @@ + + + + + + + +stdex: stdex::parser::sgml_string Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_string Class Reference
+
+
+ +

Test for SGML given string. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_string:
+
+
+ + +stdex::parser::basic_tester< char > + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

sgml_string (const char *str, size_t count=(size_t) -1, const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+bool match (const std::basic_string< char, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + +

+Protected Attributes

+std::wstring m_str
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+

Test for SGML given string.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_string::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__string.png b/classstdex_1_1parser_1_1sgml__string.png new file mode 100644 index 0000000000000000000000000000000000000000..27e2abd7671f5a30e0da1f3b069216ebca5db731 GIT binary patch literal 810 zcmeAS@N?(olHy`uVBq!ia0vp^7l1f`gBeK1pW>beq@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)lFzsbG9N_u-~j3Op^- z-}Y>N|NqGLYugkVt5>_9Kl|m;hFeY^KNODapRp`+*Cd09PfAT1Jd8H833#T3F=)MO zSGga2-tn@y^*_0N|`xl+Q z>296BcID@{LMynQEpAI~+u&=n`KxC5@g4QQ9By}8j_022fM&Z&TIT(=Ux6%(#~^W3M=!qZnBp#Oe(xrUB$ihs}b z-OkaUN><+yJDYXJ?%C=--7~Ylt(r5{O#IH<#NelAe2X94{jWHwW|jPZ>xoacf7Nf8 zHv9cM8_znA|6e&Lrd07NOggiM(Ph$1Q)b`GCb1q2AGCKd9++BUy5RQPB$sgJS(WQt zODq=zK4nnY&L+T+a*cth;f$06!-Pm?4hExa21bW8UIm5|YZzG=W|}rIC;&qjP0_tT z&80D(8k0(7c@;cQtzlI0oLMTDvGuo5eaY^<`(^a3C#dXQ66}z=ZKn30PX*@nHotrK zl&@7j{W^Ktd&B(MtG}LRjM$R9W1ga?yA^YYO7^w}rO4a!!yaX=dAstN&g#3{j=SG} zzC&_S$&$$q)eCl;+UuYWI@bCu0jzx#ME%>f{yY=nZevsk2v*Se$^>$WY*sc6A>gzYX4fSSEe}(3C=bPrr ze-1r&w{&&U`Ji>xsrJ*0fEI3_v&T-;FrZp_+NZ(^A@g;)fMVumzt6NzNO^mwho8|i lh!5^(Q|75br&_ + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_url_password_char Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_url_password_char, including all inherited members.

+ + + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_url_password_char)stdex::parser::sgml_url_password_charinlinevirtual
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
sgml_url_password_char(const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_url_password_char)stdex::parser::sgml_url_password_charinline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__url__password__char.html b/classstdex_1_1parser_1_1sgml__url__password__char.html new file mode 100644 index 000000000..b4b31c9b8 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__url__password__char.html @@ -0,0 +1,205 @@ + + + + + + + +stdex: stdex::parser::sgml_url_password_char Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_url_password_char Class Reference
+
+
+ +

Test for valid URL password SGML character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_url_password_char:
+
+
+ + +stdex::parser::basic_url_password_char< char > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

sgml_url_password_char (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_url_password_char< char >
basic_url_password_char (const std::locale &locale=std::locale())
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for valid URL password SGML character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_url_password_char::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__url__password__char.png b/classstdex_1_1parser_1_1sgml__url__password__char.png new file mode 100644 index 0000000000000000000000000000000000000000..815169a07b7870b3ddbfd547a3f674981ddc08cc GIT binary patch literal 1545 zcmcJPZB&wH7{?#x(k#t7Su0;ijWjZ?hD&EYQfa}XX@;$isI;_Da%szV)aX>pG829D z$c%|IX=Dy9jT0)Fy{Qe9M30#?3b5z~OxcgTW}@k7<(WPdHxN(P!2%MDLrM zn~nFOaQAIv&pe3`910lEe=g5Ym=XY3QUv+$Ih=+VFCD3U>uq5=P*%11p<(qg2h?j+ z@Q|qFxFRROWZKDfd=ssbCuK{C;BB}FFAh)@u=6DwA;(G_yq7>neJ9{>EU>T|NjiV) z8}~V?BtfZpOhr+KYQ&+{(Twp?R*Ux0K^3t{hCLU*ChqEh8hKZSHGPG%Gc9w{T$fp( zMv_TAq3jg!nKgxFImfFrB7`n@TtY}*g}=2%G+v9x1@ zRtk{SgQ2*DQi!BcWvw2wTHc6#CsAj+9tPj7tXQQ0{>Fd7KJyg&!fd+P!;G z^g~#{x6*9L9Bt-+(g2s($n*IUla(+P*h{e5jaMO-LLlH+`Cppvy44b593hU2JPZY( zD4R5R0{&xXoxziH1?<_WPkb!rxvLl*%A2LJ8e8M5w$@SfOX!E!+Gp;tIGLoQf!C4?YB01To&2429nanq z{^io_kYAS3^UWP9G@&ssSl%_(QM#+SuZ~mN7t^>FTHVnnKlme@nR?dMR9c3 zh*`6X2Jmql{$E0{n61nkEJ6SjfPQ{4id_7C373t;)a6T}$!lS%NMs!FlCZXPke-4) z(QUQBeO%m;;2#K*$&MU#Q5>^2OV-+}pWR3jK3Hh&}^0wGe9d&`eMp*o%C=jK?7Y8SD- zC3F^iwenFoAWL#j_49Du86i|n2ZWnOljPoKv(>N%CZlEK;~?aA{oH$|RE)8Z4Qp~( zUu?o)7=^eQ!TszoJC?LmiT;dsk=2E97e>=8alJ>WQYr>hHrvUXj!kj-wf*^*HDpjX zKd&0w;i`E11Bk8o+j}QEQ0y-NSCbQ>0)XD+}XC^OuV0H;NgoE3D(xuiI+0qLB1sAW{ lfmvR!LfLFItM`6=;SVW7`8)ss literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1sgml__url__path__char-members.html b/classstdex_1_1parser_1_1sgml__url__path__char-members.html new file mode 100644 index 000000000..8ed4181e2 --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__url__path__char-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_url_path_char Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_url_path_char, including all inherited members.

+ + + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_url_path_char)stdex::parser::sgml_url_path_charinlinevirtual
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
sgml_url_path_char(const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_url_path_char)stdex::parser::sgml_url_path_charinline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__url__path__char.html b/classstdex_1_1parser_1_1sgml__url__path__char.html new file mode 100644 index 000000000..05c5f562f --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__url__path__char.html @@ -0,0 +1,205 @@ + + + + + + + +stdex: stdex::parser::sgml_url_path_char Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_url_path_char Class Reference
+
+
+ +

Test for valid URL path SGML character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_url_path_char:
+
+
+ + +stdex::parser::basic_url_path_char< char > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

sgml_url_path_char (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_url_path_char< char >
basic_url_path_char (const std::locale &locale=std::locale())
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for valid URL path SGML character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_url_path_char::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_url_path_char< char >.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__url__path__char.png b/classstdex_1_1parser_1_1sgml__url__path__char.png new file mode 100644 index 0000000000000000000000000000000000000000..f63e31d5e9320aa3fa3244efe71bf1adbcba9c14 GIT binary patch literal 1292 zcma)+doY_>7{<>RLByqvcBn9`&BnH@8l^7VRvR`fHpNCzLaUun6_>VgSM_Okw`o<| zgksRjFeIT%TqZ%wM)gWtERk*FHg=Z~!M0LF)qc~R*_oaFXU`w+dEaxMzn8#^@mRi2LIZ-xYz4Ff%lm2TbE3|4p+s}uc|FmS`;7(mt#P0 zLg&5Q{Ax{m>Oo24qC!1BC~5oJ{IVv8)s{_rRZx>AvV{Chl)GTB5hgurmn`*AV*VLz zLjIgmPwWsbXy~DK%FZnart^q71wgd#%x=36)$&Z$6+1<7rrTsGGjbhwov=fJN~Ek* zZi!wLw!AS*7evGvN=*dC!(97x)#AQO975dC$VJz3%Q3bI?9Xj66202;E#G3`^r)p1 z@0R93g_01L#)}zonBluf?fV#f&B_hDXm?9Cc79NXzpy-87inH~C5unmyV2WzYWxmL zMkxs*W;Ss4lDJ{oZd(esQsxF7vl}CgaDP`6SuE)R;#$8QM1;{K?l~77#4W5nSQR9J zt>J^vXi~QUS>Lhoh-=;wXvTa2qXFRD24H8iDFEb96o8-k14L;60O3mrkQg=y;(PxQ z1;&@v+BQ3K7?CzG`WEnYYA}MUl89?%hjdDO`VY*cNtpHz^S;Z)z{Eg}F6bSTYbBJ( zO1d*^UE4KQtn4sLSDq4e$(KT9S7YZkl9S!1MyFTrR^nx-J&aCqjX5>y>5#azwqGo` zk;H>|hgnBL(v#JlGg;Y=b(sSo{z+ybZB_G|CV3+$M$rfN33DXY`NkSXkta_=GMxPQ z4x0B!4OL8;BqrQM9pfKH1$n4)&VSbAIbh~lp8dY%^{CQk`D#2>WdPz=Do{Z~fzG`2 zDF$hmDwXn!_rScs;Zc3Td}B@M(>`I?h2f_nmq|1nrt_YW7MSP3jR?MZI4XuYkR`~* zTHSqtRR~{h4W6j?TohPY#)yI6@!8p)JH*P7iHx;9a7}C-Esh@eV71Wq?de{l3>5JD zxL5>CNvNIA+sYuy(0*MraDnEA_^bp;l1X%xPO03woRk5=(c4J>m&m`cNq2|%+j4#& z5KRBh2#(W+*B2G6+Z^wD?R=VbU!n0jYY>elwI7V!G_zK*ROgaTOh^=_r{vV1)V1QD zU6(i1<1(@9^g?cS&&iZ>))bBWNQQw4)JFVSoKXH}D=uEEEslL<+N|Zp`m7rlF_XF5 zeq=wptp^RazEitdH(l)hcr?6_FgNEUWhU}deL5Y<{O~AxR;}>x7 zxRA}R?4$nxZwm={O0sesw-Vr(x~G z6SF0RMn%L$gvKpq+}w60unKsArR%@k%EDUFCzl1=Iq&hKC;}lY>-jV1!g13YHe1FA z%N89)eG8Ls=z&(Ng=DgirpYM7X+F6h;5fO#pOy+@SQ%7A^^e}ruey(Mp6JL(MD`Z& M^9~?4ctv0O3sad%;{X5v literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1sgml__url__username__char-members.html b/classstdex_1_1parser_1_1sgml__url__username__char-members.html new file mode 100644 index 000000000..e9f50e97f --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__url__username__char-members.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::sgml_url_username_char Member List
+
+
+ +

This is the complete list of members for stdex::parser::sgml_url_username_char, including all inherited members.

+ + + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::sgml_url_username_char)stdex::parser::sgml_url_username_charinlinevirtual
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
sgml_url_username_char(const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_url_username_char)stdex::parser::sgml_url_username_charinline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__url__username__char.html b/classstdex_1_1parser_1_1sgml__url__username__char.html new file mode 100644 index 000000000..97141fa4d --- /dev/null +++ b/classstdex_1_1parser_1_1sgml__url__username__char.html @@ -0,0 +1,205 @@ + + + + + + + +stdex: stdex::parser::sgml_url_username_char Class Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::sgml_url_username_char Class Reference
+
+
+ +

Test for valid URL username SGML character. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::sgml_url_username_char:
+
+
+ + +stdex::parser::basic_url_username_char< char > +stdex::parser::basic_tester< T > + +
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

sgml_url_username_char (const std::locale &locale=std::locale())
 
virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_url_username_char< char >
basic_url_username_char (const std::locale &locale=std::locale())
 
+virtual bool match (_In_reads_or_z_(end) const char *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+

Detailed Description

+

Test for valid URL username SGML character.

+

Member Function Documentation

+ +

◆ match()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual bool stdex::parser::sgml_url_username_char::match (_In_reads_or_z_(end) const char * text,
size_t start = 0,
size_t end = (size_t)-1,
int flags = match_default 
)
+
+inlinevirtual
+
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1sgml__url__username__char.png b/classstdex_1_1parser_1_1sgml__url__username__char.png new file mode 100644 index 0000000000000000000000000000000000000000..a41fa73ec9695dce099a3aeb2f4ad6fff46f41bc GIT binary patch literal 1530 zcmb`HYfzI%6ox-!yde?CQlxb>C{&u_fDjc(!LJBT5^k{pxdbr+nhL2v2oMoSXcg)W z0tv++4Y3kR!3MM#f`Y**$fX7Xfq)={$}J!wU;-gG>8I1qIMe=X_s7|@dv@mRywAIP z`Dh>-X7;fe001y7#s?1oCU7Xfw80dLGhFySXxe_%KlsS%>ME2@zg$XT{#N0(50Pkn zT{8XX(IaR-h}HWuRNI)04-5jJ^}FG^rlb!5)@EaUyn@e}%yFM3jeBffR|3C{KeuZC zW=F(UTo$^3eVJy3NZI?P<%WYeQ6GVfCkq^dvA%X4yNnpTzpjAKQQKmjXV9$ZYAvFf zX&2eN=}uwiT1NcRWTRq`X$LbTXc3~;C*z}@%(hIPTwqviG-imy{D!MES#xRR#01Kj zj4OSismOf(rVKf*U`SYukR|S*MGzZk)Q*Md%BQZCx1OVR3wa?@fqVobb9Y=R4%$hz zK2K{*DebTFewl_TGHVkB_0rdc!XgR8%-?woG0zyFuX3W?-n{cXNX@p2onG|VOHC)b zCPy(!2UJ{P#tNss5r96P1Zi-wbc2*fC|Ga7F#{>HhnRg`7h5Mc)7xGod!-y>PwNP0BUo@6$ z9Cm%a$?q^rocjaFvQ(MU?PhrY&@7%FCpb_k46(?fjhWh*Bw|5e7aWe*V6)o@TpU*O zZL+e|rVH2ZnQmdzfoPe<7ydevOVA?IZ zuDrzwteR6=2p^R6NDDano_y?f-BPRo)v`RroJZp+D`iwre&60p(9vBl&RHCsy6LKD zJ3lCX0XfOL0;dg!nl)4oIo(M!xkL z<`_4CAd5MsF`x*9)-Ly^9C>%SC6|~vvUD63N+v+;&F9mxy6ajPsM(QXt*#GdbuA1H zuqN0l=y{08(5yG37|09k_eCz@5y$~?0=elQ+!X)=9ETXUx1r6}T*5$BaP@?&U}FS4 zZ0G(5*8gsyMlKKUi}gi3&WnH)L`g#ijpJ%+__8 + + + + + + +stdex: Member List + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+
stdex::parser::tester_collection< T > Member List
+
+
+ +

This is the complete list of members for stdex::parser::tester_collection< T >, including all inherited members.

+ + + + + + + + + + + + + +
basic_tester(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
intervalstdex::parser::basic_tester< T >
invalidate() (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inlinevirtual
m_collection (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >protected
m_locale (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >protected
match(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0 (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >pure virtual
match(const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
search(_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default) (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inline
tester_collection(const std::locale &locale) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inlineprotected
tester_collection(const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
tester_collection(std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::tester_collection< T >)stdex::parser::tester_collection< T >inline
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
+ + + + diff --git a/classstdex_1_1parser_1_1tester__collection.html b/classstdex_1_1parser_1_1tester__collection.html new file mode 100644 index 000000000..223b7df2d --- /dev/null +++ b/classstdex_1_1parser_1_1tester__collection.html @@ -0,0 +1,198 @@ + + + + + + + +stdex: stdex::parser::tester_collection< T > Class Template Reference + + + + + + + + + +
+
+ + + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+
+ + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ +
stdex::parser::tester_collection< T > Class Template Reference
+
+
+ +

Base template for collection-holding testers. + More...

+ +

#include <stdex/parser.hpp>

+
+Inheritance diagram for stdex::parser::tester_collection< T >:
+
+
+ + +stdex::parser::basic_tester< T > +stdex::parser::basic_branch< T > +stdex::parser::basic_permutation< T > +stdex::parser::basic_sequence< T > +stdex::parser::basic_string_branch< T, T_tester > + +
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

tester_collection (const std::shared_ptr< basic_tester< T > > *el, size_t count, const std::locale &locale=std::locale())
 
tester_collection (std::vector< std::shared_ptr< basic_tester< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+bool search (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual bool match (_In_reads_or_z_(end) const T *text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)=0
 
+template<class _Traits , class _Ax >
bool match (const std::basic_string< T, _Traits, _Ax > &text, size_t start=0, size_t end=(size_t) -1, int flags=match_default)
 
+virtual void invalidate ()
 
+ + + +

+Protected Member Functions

tester_collection (const std::locale &locale)
 
+ + + + + + +

+Protected Attributes

+std::vector< std::shared_ptr< basic_tester< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
+const std::locale & m_locale
 
+ + + + + +

+Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+interval< size_t > interval
 Test for interval.
 
+

Detailed Description

+
template<class T>
+class stdex::parser::tester_collection< T >

Base template for collection-holding testers.

+

Member Function Documentation

+ +

◆ invalidate()

+ +
+
+
+template<class T >
+ + + + + +
+ + + + + + + +
virtual void stdex::parser::tester_collection< T >::invalidate ()
+
+inlinevirtual
+
+ +

Reimplemented from stdex::parser::basic_tester< T >.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + + diff --git a/classstdex_1_1parser_1_1tester__collection.png b/classstdex_1_1parser_1_1tester__collection.png new file mode 100644 index 0000000000000000000000000000000000000000..52a8b2f5dc1686b9ae207e63df56c6a63b107929 GIT binary patch literal 3335 zcmd5>4C5Oc6)08)AINo@qvqkYCNL;AU{J}dj?=(%Nc9a#5f_tX8K6$!UusVLpv+ zq_8vma?FA82{vfxv(O~$k z42$aUWIH;luQ=+iPL&P$mxJ)fm6_{S>i(9$Q z==WUAly2RqwWKNhoKwTKxUG2988LVHTY7XQ3$aHS+=>Fr4y0f}l*4IaACkpAP4wXR z75^9#xFO2`s z6>H9l(}1!<3|>&*K^MG#7Z8U$VWS4UvcKakyjo$B_zaj?YuCtS*PA6}Zp5xQ^KuQ! zmmT`eSaBia&h#J%{b{v3$8NGxb#ar?lgo-n%~%nSWr3B}k8nfs;RSSp=s-cD6l*~) z>1M7panV%wJYh6A(0r=W4^`H+V87e=sxZ=t+UAya<5o*K?%~sY5qG&6Kl+HMgt$7E zWb|`ztWr%aQN*yERU`jOcN(SATDnvmn=(-6<{#^{!iI5M1c8$js482JeJ4$Hj{clh z&Jv@$M~;0RPJQ9+aAWJ*0cOIWNDSeaAW7Vyqc_`SlG=V``1sEHhzsQJTB!7qwlgjR#&)%H`P0<^#&&X~(D9R;+n4?F_om(#pm(Js*P(p2LWyaT zCYAmMW&Vl=%68<1(%|PmrzCONvYe2HCN}f4PNozubj-u9#}SFj6FTl5N^Judrz)La!h&LP%;4YCmk&<47Y08D;|Z74188WGrK9p3+n zi2pslo#$mTnI8sRFF4?e`Qjok;!3C)cXQOerc0=spALE?=nO|tLklb4f6^QB)c)qK zZz^_NiryReFn3DtSmYl+H62UMJYkx?8EOM<*;8jsGf$Xt`L_BU_WB4v(!}R|@kgMB zA4w&hGDE=;$0GMzvF&eCEQdTmCqV@v5%sxKI}uNgf`(sMFQx8+PEUqPKXFc*|k9 zl_0QSmyuXfFpsUqkkSf^0ku3U7*Io;F_$Jf$g5FoSG6qA80a;1D&Aq8D-?l}(U%=P zijA?XoZE{Yq8roAoTGpu{w7bib*1w~uJEU1)v_{SIF!e5r3n_cwB#%|&ZEDjexxcI zD1g|caV5hCG;boog*!14AC~lH_c>Wxar#(oi<(whu@_rziJi)hce0|#Mc~6IV`syg z_Ee2@32>=FO#gT@-P2K95>V1O9NI)0fZaZt@tho^+m+KL9}JHaJ{v z>CRgO5G$`s#;1EWuOX=h_-7gZN)4YV)QG20HY7fjROE!#|{CCjJk)0 zBc3cM`n^cROKr!I2pPOL1RxsHGOqyCK_vo218$@|x&@%iMF9(dxSg;nfcS($%i;TA z`y-qk2vEJi48u3eJYfS$r`&c&6_7}K^gHH1STCQ~$qU*#fH*H{xUZArH42gCU5G3_ z7tUayQ6AK*v~~R!{tu}0KY0B0SQt9dTqGgybb)}h^_NgJ=XoI3=EJ8Y8w-|p!r$q*_6pzQ(l{hFg>#0?c*O) z2Up&ebuw8!INN;YZbzalt!WY2HwyPe#GE`#%gZl*rJpyg7@Z>rK953?roTDQ}oJfGNPP;R58W&IhWGdwc$0$7IbHdhM zd66OW{j&oZ+Qe)_je_K;M$T;SZ1k0;PaS=G-sQnB&J~r+rEx2Zo6T=~h`!S6-YoUh z_F$k6AHvB%PDV)+)9vTZS1&hQlnO(x#fDQwRJ#wii0;t4_a?l?vkz}jpIiO%`tX#6 zikn=ba`BhcT@ht5Mpu7!L>Ox%k_o7mQqROzLMGJ8ld5C&2^wK{8S%0vz literal 0 HcmV?d00001 diff --git a/classstdex_1_1progress-members.html b/classstdex_1_1progress-members.html index f6adfe5b1..0c18df956 100644 --- a/classstdex_1_1progress-members.html +++ b/classstdex_1_1progress-members.html @@ -88,7 +88,7 @@ $(function() { diff --git a/classstdex_1_1progress.html b/classstdex_1_1progress.html index 79e2776c4..9c7b52394 100644 --- a/classstdex_1_1progress.html +++ b/classstdex_1_1progress.html @@ -84,7 +84,7 @@ $(function() {

Progress indicator base class. More...

-

#include <stdex/progress.h>

+

#include <stdex/progress.hpp>

Inheritance diagram for stdex::progress< T >:
@@ -313,12 +313,12 @@ template<class T >

The documentation for this class was generated from the following file: diff --git a/classstdex_1_1user__cancelled-members.html b/classstdex_1_1user__cancelled-members.html index 1b37d19b6..dc2e2953c 100644 --- a/classstdex_1_1user__cancelled-members.html +++ b/classstdex_1_1user__cancelled-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/classstdex_1_1user__cancelled.html b/classstdex_1_1user__cancelled.html index e3bbce508..7a92f53fa 100644 --- a/classstdex_1_1user__cancelled.html +++ b/classstdex_1_1user__cancelled.html @@ -84,7 +84,7 @@ $(function() {

User cancelled exception. More...

-

#include <stdex/exception.h>

+

#include <stdex/exception.hpp>

Inheritance diagram for stdex::user_cancelled:
@@ -136,12 +136,12 @@ Public Member Functions

The documentation for this class was generated from the following file: diff --git a/classstdex_1_1vector__queue-members.html b/classstdex_1_1vector__queue-members.html index ae5dced85..f8c93fe23 100644 --- a/classstdex_1_1vector__queue-members.html +++ b/classstdex_1_1vector__queue-members.html @@ -122,7 +122,7 @@ $(function() { diff --git a/classstdex_1_1vector__queue.html b/classstdex_1_1vector__queue.html index fa5d9ea84..0a8ac1ed8 100644 --- a/classstdex_1_1vector__queue.html +++ b/classstdex_1_1vector__queue.html @@ -86,7 +86,7 @@ $(function() {

Helper class to allow limited size FIFO queues implemented as vector of elements. More...

-

#include <stdex/vector_queue.h>

+

#include <stdex/vector_queue.hpp>

@@ -790,12 +790,12 @@ template<class T >
The documentation for this class was generated from the following file: diff --git a/dir_4be4f7b278e009bf0f1906cf31fb73bd.html b/dir_4be4f7b278e009bf0f1906cf31fb73bd.html new file mode 100644 index 000000000..bfec7ec54 --- /dev/null +++ b/dir_4be4f7b278e009bf0f1906cf31fb73bd.html @@ -0,0 +1,92 @@ + + + + + + + +stdex: UnitTests Directory Reference + + + + + + + + + +
+
+

Public Types

+ + + + + +
+
stdex +
+
Additional custom or not Standard C++ covered algorithms
+
+ + + + + + + + + +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + + +
+
UnitTests Directory Reference
+
+
+ + + + +

+Files

file  pch.h [code]
 
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html index 8bbc41996..534c9ea39 100644 --- a/dir_d44c64559bbebec7f509842c48db8b23.html +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -86,7 +86,7 @@ Directories diff --git a/dir_fca3c47b2ea228727bd6729832f89576.html b/dir_fca3c47b2ea228727bd6729832f89576.html index 6d5a8d485..6b28f4867 100644 --- a/dir_fca3c47b2ea228727bd6729832f89576.html +++ b/dir_fca3c47b2ea228727bd6729832f89576.html @@ -80,31 +80,41 @@ $(function() { - + - + - + - + - + - + - + - + - + - + + + + + + + + + + +

Files

file  base64.h [code]
file  base64.hpp [code]
 
file  errno.h [code]
file  errno.hpp [code]
 
file  exception.h [code]
file  exception.hpp [code]
 
file  hex.h [code]
file  hex.hpp [code]
 
file  idrec.h [code]
file  idrec.hpp [code]
 
file  interval.h [code]
file  interval.hpp [code]
 
file  progress.h [code]
file  mapping.hpp [code]
 
file  sal.h [code]
file  memory.hpp [code]
 
file  string.h [code]
file  parser.hpp [code]
 
file  vector_queue.h [code]
file  progress.hpp [code]
 
file  sal.hpp [code]
 
file  sgml.hpp [code]
 
file  sgml_unicode.hpp [code]
 
file  string.hpp [code]
 
file  vector_queue.hpp [code]
 
diff --git a/errno_8h_source.html b/errno_8hpp_source.html similarity index 95% rename from errno_8h_source.html rename to errno_8hpp_source.html index 1f8b21443..16dee4cac 100644 --- a/errno_8h_source.html +++ b/errno_8hpp_source.html @@ -5,7 +5,7 @@ -stdex: include/stdex/errno.h Source File +stdex: include/stdex/errno.hpp Source File @@ -74,7 +74,7 @@ $(function() {
-
errno.h
+
errno.hpp
1/*
@@ -84,7 +84,7 @@ $(function() {
5
6#pragma once
7
-
8#include "sal.h"
+
8#include "sal.hpp"
9#include <stdexcept>
10#include <cstring>
11
@@ -126,17 +126,17 @@ $(function() {
75 errno_t m_num;
76 };
77}
-
Standard C runtime library error.
Definition: errno.h:18
-
errno_t m_num
Numeric error code.
Definition: errno.h:75
-
errno_error(errno_t num, const std::string &msg)
Constructs an exception.
Definition: errno.h:26
-
errno_t number() const
Returns the error number.
Definition: errno.h:69
-
errno_error(const std::string &msg)
Constructs an exception using GetLastError()
Definition: errno.h:49
-
errno_error(const char *msg=nullptr)
Constructs an exception using GetLastError()
Definition: errno.h:60
-
errno_error(errno_t num, const char *msg=nullptr)
Constructs an exception.
Definition: errno.h:38
+
Standard C runtime library error.
Definition: errno.hpp:18
+
errno_t m_num
Numeric error code.
Definition: errno.hpp:75
+
errno_error(errno_t num, const std::string &msg)
Constructs an exception.
Definition: errno.hpp:26
+
errno_t number() const
Returns the error number.
Definition: errno.hpp:69
+
errno_error(const std::string &msg)
Constructs an exception using GetLastError()
Definition: errno.hpp:49
+
errno_error(const char *msg=nullptr)
Constructs an exception using GetLastError()
Definition: errno.hpp:60
+
errno_error(errno_t num, const char *msg=nullptr)
Constructs an exception.
Definition: errno.hpp:38
diff --git a/exception_8h_source.html b/exception_8hpp_source.html similarity index 93% rename from exception_8h_source.html rename to exception_8hpp_source.html index a1f66201c..7f4b59dba 100644 --- a/exception_8h_source.html +++ b/exception_8hpp_source.html @@ -5,7 +5,7 @@ -stdex: include/stdex/exception.h Source File +stdex: include/stdex/exception.hpp Source File @@ -74,7 +74,7 @@ $(function() {
-
exception.h
+
exception.hpp
1/*
@@ -84,7 +84,7 @@ $(function() {
5
6#pragma once
7
-
8#include "sal.h"
+
8#include "sal.hpp"
9#include <exception>
10
11namespace stdex
@@ -97,12 +97,12 @@ $(function() {
26 }
27 };
28}
-
User cancelled exception.
Definition: exception.h:17
-
user_cancelled(const char *msg=nullptr)
Constructs an exception.
Definition: exception.h:24
+
User cancelled exception.
Definition: exception.hpp:17
+
user_cancelled(const char *msg=nullptr)
Constructs an exception.
Definition: exception.hpp:24
diff --git a/files.html b/files.html index 1d2e45b06..04cc6bc80 100644 --- a/files.html +++ b/files.html @@ -77,22 +77,29 @@ $(function() {
[detail level 123]
- - - - - - - - - - + + + + + + + + + + + + + + + + +
  include
  stdex
 base64.h
 errno.h
 exception.h
 hex.h
 idrec.h
 interval.h
 progress.h
 sal.h
 string.h
 vector_queue.h
 base64.hpp
 errno.hpp
 exception.hpp
 hex.hpp
 idrec.hpp
 interval.hpp
 mapping.hpp
 memory.hpp
 parser.hpp
 progress.hpp
 sal.hpp
 sgml.hpp
 sgml_unicode.hpp
 string.hpp
 vector_queue.hpp
  UnitTests
 pch.h
diff --git a/functions.html b/functions.html index 153d97674..500214923 100644 --- a/functions.html +++ b/functions.html @@ -74,6 +74,8 @@ $(function() {

- a -

- d -

- e -

- f -

@@ -128,6 +141,7 @@ $(function() {

- h -

    +
  • has_separators : stdex::parser::basic_integer10ts< T >
  • head() : stdex::vector_queue< T >
  • hex_dec() : stdex::hex_dec
  • hex_enc() : stdex::hex_enc
  • @@ -136,7 +150,8 @@ $(function() {

    - i -

    @@ -146,17 +161,27 @@ $(function() {

    - m -

    - n -

    @@ -169,9 +194,12 @@ $(function() {

    - p -

    @@ -184,6 +212,8 @@ $(function() {

    - s -

    - t -

    @@ -207,8 +240,10 @@ $(function() {

    - v -

    @@ -218,7 +253,7 @@ $(function() { diff --git a/functions_func.html b/functions_func.html index 3fc1a98d6..ec5b415ae 100644 --- a/functions_func.html +++ b/functions_func.html @@ -104,7 +104,7 @@ $(function() {

    - e -

      -
    • empty() : stdex::vector_queue< T >
    • +
    • empty() : stdex::interval< T >, stdex::vector_queue< T >
    • enc_size() : stdex::base64_enc, stdex::hex_enc
    • encode() : stdex::base64_enc, stdex::hex_enc
    • errno_error() : stdex::errno_error
    • @@ -198,7 +198,7 @@ $(function() { diff --git a/functions_type.html b/functions_type.html index e1b556f9b..60565b89d 100644 --- a/functions_type.html +++ b/functions_type.html @@ -81,7 +81,7 @@ $(function() { diff --git a/functions_vars.html b/functions_vars.html index 5afa604fd..f0f621a9f 100644 --- a/functions_vars.html +++ b/functions_vars.html @@ -70,22 +70,113 @@ $(function() {
      diff --git a/hex_8h_source.html b/hex_8hpp_source.html similarity index 76% rename from hex_8h_source.html rename to hex_8hpp_source.html index 4fb260926..8db9e893d 100644 --- a/hex_8h_source.html +++ b/hex_8hpp_source.html @@ -5,7 +5,7 @@ -stdex: include/stdex/hex.h Source File +stdex: include/stdex/hex.hpp Source File @@ -74,7 +74,7 @@ $(function() {
      -
      hex.h
      +
      hex.hpp
      1/*
      @@ -84,131 +84,132 @@ $(function() {
      5
      6#pragma once
      7
      -
      8#include "sal.h"
      -
      9#include <cstdint>
      -
      10#include <string>
      -
      11#include <vector>
      -
      12
      +
      8#include "sal.hpp"
      +
      9#include <assert.h>
      +
      10#include <cstdint>
      +
      11#include <string>
      +
      12#include <vector>
      13
      -
      14namespace stdex
      -
      15{
      -
      19 class hex_enc
      -
      20 {
      -
      21 public:
      -
      25 hex_enc() noexcept
      -
      26 {
      -
      27 }
      -
      28
      +
      14
      +
      15namespace stdex
      +
      16{
      +
      20 class hex_enc
      +
      21 {
      +
      22 public:
      +
      26 hex_enc() noexcept
      +
      27 {
      +
      28 }
      29
      -
      37 template<class _Elem, class _Traits, class _Ax>
      -
      38 void encode(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &out, _In_bytecount_(size) const void *data, _In_ size_t size)
      -
      39 {
      -
      40 assert(data || !size);
      -
      41
      -
      42 // Preallocate output
      -
      43 out.reserve(out.size() + enc_size(size));
      -
      44
      -
      45 // Convert data character by character.
      -
      46 for (size_t i = 0; i < size; i++) {
      -
      47 uint8_t
      -
      48 x = reinterpret_cast<const uint8_t*>(data)[i],
      -
      49 x_h = ((x & 0xf0) >> 4),
      -
      50 x_l = ((x & 0x0f) );
      -
      51
      -
      52 out += x_h < 10 ? '0' + x_h : 'A' - 10 + x_h;
      -
      53 out += x_l < 10 ? '0' + x_l : 'A' - 10 + x_l;
      -
      54 }
      -
      55 }
      -
      56
      +
      30
      +
      38 template<class _Elem, class _Traits, class _Ax>
      +
      39 void encode(_Inout_ std::basic_string<_Elem, _Traits, _Ax> &out, _In_bytecount_(size) const void *data, _In_ size_t size)
      +
      40 {
      +
      41 assert(data || !size);
      +
      42
      +
      43 // Preallocate output
      +
      44 out.reserve(out.size() + enc_size(size));
      +
      45
      +
      46 // Convert data character by character.
      +
      47 for (size_t i = 0; i < size; i++) {
      +
      48 uint8_t
      +
      49 x = reinterpret_cast<const uint8_t*>(data)[i],
      +
      50 x_h = ((x & 0xf0) >> 4),
      +
      51 x_l = ((x & 0x0f) );
      +
      52
      +
      53 out += x_h < 10 ? '0' + x_h : 'A' - 10 + x_h;
      +
      54 out += x_l < 10 ? '0' + x_l : 'A' - 10 + x_l;
      +
      55 }
      +
      56 }
      57
      -
      65 size_t enc_size(_In_ size_t size) const noexcept
      -
      66 {
      -
      67 return size*2;
      -
      68 }
      -
      69 };
      -
      70
      +
      58
      +
      66 size_t enc_size(_In_ size_t size) const noexcept
      +
      67 {
      +
      68 return size*2;
      +
      69 }
      +
      70 };
      71
      -
      75 class hex_dec
      -
      76 {
      -
      77 public:
      -
      81 hex_dec() noexcept :
      -
      82 buf(0),
      -
      83 num(0)
      -
      84 {
      -
      85 }
      -
      86
      +
      72
      +
      76 class hex_dec
      +
      77 {
      +
      78 public:
      +
      82 hex_dec() noexcept :
      +
      83 buf(0),
      +
      84 num(0)
      +
      85 {
      +
      86 }
      87
      -
      96 template<class _Ty, class _Ax, class _Tchr>
      -
      97 void decode(_Inout_ std::vector<_Ty, _Ax> &out, _Out_ bool &is_last, _In_z_count_(size) const _Tchr *data, _In_ size_t size)
      -
      98 {
      -
      99 is_last = false;
      -
      100
      -
      101 // Trim data size to first terminator.
      -
      102 for (size_t k = 0; k < size; k++)
      -
      103 if (!data[k]) { size = k; break; }
      -
      104
      -
      105 // Preallocate output
      -
      106 out.reserve(out.size() + dec_size(size));
      -
      107
      -
      108 for (size_t i = 0;; i++) {
      -
      109 if (num >= 2) {
      -
      110 // Buffer full.
      -
      111 out.push_back(buf);
      -
      112 num = 0;
      -
      113 is_last = true;
      -
      114 } else
      -
      115 is_last = false;
      -
      116
      -
      117 if (i >= size)
      -
      118 break;
      -
      119
      -
      120 int x = data[i];
      -
      121 if ('0' <= x && x <= '9') {
      -
      122 buf = ((buf & 0xf) << 4) | (uint8_t)(x - '0');
      -
      123 num++;
      -
      124 } else if ('A' <= x && x <= 'F') {
      -
      125 buf = ((buf & 0xf) << 4) | (uint8_t)(x - ('A' - 10));
      -
      126 num++;
      -
      127 } else if ('a' <= x && x <= 'f') {
      -
      128 buf = ((buf & 0xf) << 4) | (uint8_t)(x - ('a' - 10));
      -
      129 num++;
      -
      130 }
      -
      131 }
      -
      132 }
      -
      133
      +
      88
      +
      97 template<class _Ty, class _Ax, class _Tchr>
      +
      98 void decode(_Inout_ std::vector<_Ty, _Ax> &out, _Out_ bool &is_last, _In_z_count_(size) const _Tchr *data, _In_ size_t size)
      +
      99 {
      +
      100 is_last = false;
      +
      101
      +
      102 // Trim data size to first terminator.
      +
      103 for (size_t k = 0; k < size; k++)
      +
      104 if (!data[k]) { size = k; break; }
      +
      105
      +
      106 // Preallocate output
      +
      107 out.reserve(out.size() + dec_size(size));
      +
      108
      +
      109 for (size_t i = 0;; i++) {
      +
      110 if (num >= 2) {
      +
      111 // Buffer full.
      +
      112 out.push_back(buf);
      +
      113 num = 0;
      +
      114 is_last = true;
      +
      115 } else
      +
      116 is_last = false;
      +
      117
      +
      118 if (i >= size)
      +
      119 break;
      +
      120
      +
      121 int x = data[i];
      +
      122 if ('0' <= x && x <= '9') {
      +
      123 buf = ((buf & 0xf) << 4) | (uint8_t)(x - '0');
      +
      124 num++;
      +
      125 } else if ('A' <= x && x <= 'F') {
      +
      126 buf = ((buf & 0xf) << 4) | (uint8_t)(x - ('A' - 10));
      +
      127 num++;
      +
      128 } else if ('a' <= x && x <= 'f') {
      +
      129 buf = ((buf & 0xf) << 4) | (uint8_t)(x - ('a' - 10));
      +
      130 num++;
      +
      131 }
      +
      132 }
      +
      133 }
      134
      -
      138 void clear() noexcept
      -
      139 {
      -
      140 num = 0;
      -
      141 }
      -
      142
      +
      135
      +
      139 void clear() noexcept
      +
      140 {
      +
      141 num = 0;
      +
      142 }
      143
      -
      151 size_t dec_size(_In_ size_t size) const noexcept
      -
      152 {
      -
      153 return (size + 1)/2;
      -
      154 }
      -
      155
      +
      144
      +
      152 size_t dec_size(_In_ size_t size) const noexcept
      +
      153 {
      +
      154 return (size + 1)/2;
      +
      155 }
      156
      -
      157 protected:
      -
      158 uint8_t buf;
      -
      159 size_t num;
      -
      160 };
      -
      161}
      -
      Hexadecimal decoding session.
      Definition: hex.h:76
      -
      void clear() noexcept
      Resets decoding session.
      Definition: hex.h:138
      -
      uint8_t buf
      Internal buffer.
      Definition: hex.h:158
      -
      hex_dec() noexcept
      Constructs blank decoding session.
      Definition: hex.h:81
      -
      size_t num
      Number of nibbles used in buf
      Definition: hex.h:159
      -
      void decode(std::vector< _Ty, _Ax > &out, bool &is_last, const _Tchr *data, size_t size)
      Decodes one block of information, and appends it to the output.
      Definition: hex.h:97
      -
      size_t dec_size(size_t size) const noexcept
      Returns maximum decoded size.
      Definition: hex.h:151
      -
      Hexadecimal encoding session.
      Definition: hex.h:20
      -
      size_t enc_size(size_t size) const noexcept
      Returns maximum encoded size.
      Definition: hex.h:65
      -
      void encode(std::basic_string< _Elem, _Traits, _Ax > &out, const void *data, size_t size)
      Encodes one block of information, and appends it to the output.
      Definition: hex.h:38
      -
      hex_enc() noexcept
      Constructs blank encoding session.
      Definition: hex.h:25
      +
      157
      +
      158 protected:
      +
      159 uint8_t buf;
      +
      160 size_t num;
      +
      161 };
      +
      162}
      +
      Hexadecimal decoding session.
      Definition: hex.hpp:77
      +
      void clear() noexcept
      Resets decoding session.
      Definition: hex.hpp:139
      +
      uint8_t buf
      Internal buffer.
      Definition: hex.hpp:159
      +
      hex_dec() noexcept
      Constructs blank decoding session.
      Definition: hex.hpp:82
      +
      size_t num
      Number of nibbles used in buf
      Definition: hex.hpp:160
      +
      void decode(std::vector< _Ty, _Ax > &out, bool &is_last, const _Tchr *data, size_t size)
      Decodes one block of information, and appends it to the output.
      Definition: hex.hpp:98
      +
      size_t dec_size(size_t size) const noexcept
      Returns maximum decoded size.
      Definition: hex.hpp:152
      +
      Hexadecimal encoding session.
      Definition: hex.hpp:21
      +
      size_t enc_size(size_t size) const noexcept
      Returns maximum encoded size.
      Definition: hex.hpp:66
      +
      void encode(std::basic_string< _Elem, _Traits, _Ax > &out, const void *data, size_t size)
      Encodes one block of information, and appends it to the output.
      Definition: hex.hpp:39
      +
      hex_enc() noexcept
      Constructs blank encoding session.
      Definition: hex.hpp:26
      diff --git a/hierarchy.html b/hierarchy.html index d072232be..59e948ae4 100644 --- a/hierarchy.html +++ b/hierarchy.html @@ -74,27 +74,129 @@ $(function() {
      This inheritance list is sorted roughly, but not completely, alphabetically:
      -
      [detail level 12]
      +
      [detail level 1234]
      - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
       Cstdex::base64_decBase64 decoding session
       Cstdex::base64_encBase64 encoding session
       Cstd::exception
       Cstdex::user_cancelledUser cancelled exception
       Cstdex::hex_decHexadecimal decoding session
       Cstdex::hex_encHexadecimal encoding session
       Cstdex::interval< T >Numerical interval
       Cstdex::progress< T >Progress indicator base class
       Cstdex::global_progress< T >Global progress indicator base class
       Cstdex::lazy_progress< T >Lazy progress indicator base class
       Cstdex::idrec::record< T, T_ID, ID, T_SIZE, ALIGN >Helper class for read/write of records to/from memory
       Cstd::runtime_error
       Cstdex::errno_errorStandard C runtime library error
       Cstdex::vector_queue< T >Helper class to allow limited size FIFO queues implemented as vector of elements
       Cstdex::parser::basic_tester< T >Base template for all testers
       Cstdex::parser::basic_any_cu< char >
       Cstdex::parser::basic_dns_domain_char< char >
       Cstdex::parser::basic_punct_cu< char >
       Cstdex::parser::basic_set< char >
       Cstdex::parser::basic_space_cu< char >
       Cstdex::parser::basic_space_or_punct_cu< char >
       Cstdex::parser::basic_url_password_char< char >
       Cstdex::parser::basic_url_path_char< char >
       Cstdex::parser::basic_url_username_char< char >
       Cstdex::parser::basic_angle< T >Test for angle in d°mm'ss.dddd form
       Cstdex::parser::basic_any_cu< T >Test for any code unit
       Cstdex::parser::basic_bol< T >Test for beginning of line
       Cstdex::parser::basic_chemical_formula< T >Test for chemical formula
       Cstdex::parser::basic_cu< T >Test for specific code unit
       Cstdex::parser::basic_date< T >Test for date
       Cstdex::parser::basic_dns_domain_char< T >Test for valid DNS domain character
       Cstdex::parser::basic_dns_name< T >Test for DNS domain/hostname
       Cstdex::parser::basic_email_address< T >Test for e-mail address
       Cstdex::parser::basic_emoticon< T >Test for emoticon
       Cstdex::parser::basic_eol< T >Test for end of line
       Cstdex::parser::basic_fraction< T >Test for fraction
       Cstdex::parser::basic_integer< T >Base class for integer testing
       Cstdex::parser::basic_ipv4_address< T >Test for IPv4 address
       Cstdex::parser::basic_ipv6_address< T >Test for IPv6 address
       Cstdex::parser::basic_ipv6_scope_id_char< T >Test for valid IPv6 address scope ID character
       Cstdex::parser::basic_iterations< T >Test for repeating
       Cstdex::parser::basic_json_string< T >Test for JSON string
       Cstdex::parser::basic_mixed_numeral< T >Test for mixed numeral
       Cstdex::parser::basic_monetary_numeral< T >Test for monetary numeral
       Cstdex::parser::basic_noop< T >"No-op" match
       Cstdex::parser::basic_phone_number< T >Test for phone number
       Cstdex::parser::basic_punct_cu< T >Test for any punctuation code unit
       Cstdex::parser::basic_scientific_numeral< T >Test for scientific numeral
       Cstdex::parser::basic_score< T >Test for match score
       Cstdex::parser::basic_set< T >
       Cstdex::parser::basic_signed_numeral< T >Test for signed numeral
       Cstdex::parser::basic_space_cu< T >Test for any space code unit
       Cstdex::parser::basic_space_or_punct_cu< T >Test for any space or punctuation code unit
       Cstdex::parser::basic_string< T >Test for given string
       Cstdex::parser::basic_time< T >Test for time
       Cstdex::parser::basic_url< T >Test for URL
       Cstdex::parser::basic_url_password_char< T >Test for valid URL password character
       Cstdex::parser::basic_url_path< T >Test for URL path
       Cstdex::parser::basic_url_path_char< T >Test for valid URL path character
       Cstdex::parser::basic_url_username_char< T >Test for valid URL username character
       Cstdex::parser::tester_collection< T >Base template for collection-holding testers
       Cstdex::parser::basic_tester< char >
       Cstdex::parser::http_agentTest for HTTP agent
       Cstdex::parser::http_any_typeTest for HTTP any type
       Cstdex::parser::http_asteriskTest for HTTP asterisk
       Cstdex::parser::http_cookieTest for HTTP cookie (RFC2109)
       Cstdex::parser::http_cookie_parameterTest for HTTP cookie parameter (RFC2109)
       Cstdex::parser::http_headerTest for HTTP header
       Cstdex::parser::http_languageTest for HTTP language (RFC1766)
       Cstdex::parser::http_line_breakTest for HTTP line break (RFC2616: CRLF | LF)
       Cstdex::parser::http_media_rangeTest for HTTP media range (RFC2616: media-range)
       Cstdex::parser::http_parameterTest for HTTP parameter (RFC2616: parameter)
       Cstdex::parser::http_protocolTest for HTTP protocol
       Cstdex::parser::http_quoted_stringTest for HTTP quoted string (RFC2616: quoted-string)
       Cstdex::parser::http_requestTest for HTTP request
       Cstdex::parser::http_spaceTest for HTTP space (RFC2616: LWS)
       Cstdex::parser::http_text_charTest for HTTP text character (RFC2616: TEXT)
       Cstdex::parser::http_tokenTest for HTTP token (RFC2616: token - tolerates non-ASCII)
       Cstdex::parser::http_urlTest for HTTP URL
       Cstdex::parser::http_url_parameterTest for HTTP URL parameter
       Cstdex::parser::http_url_pathTest for HTTP URL path segment
       Cstdex::parser::http_url_path_segmentTest for HTTP URL path segment
       Cstdex::parser::http_url_portTest for HTTP URL port
       Cstdex::parser::http_url_serverTest for HTTP URL server
       Cstdex::parser::http_valueTest for HTTP value (RFC2616: value)
       Cstdex::parser::http_weightTest for HTTP weight factor
       Cstdex::parser::http_weighted_value< T, T_asterisk >Test for HTTP weighted value
       Cstdex::parser::sgml_cpTest for specific SGML code point
       Cstdex::parser::sgml_ipv6_scope_id_charTest for valid IPv6 address scope ID SGML character
       Cstdex::parser::sgml_stringTest for SGML given string
       Cstd::exception
       Cstdex::user_cancelledUser cancelled exception
       Cstdex::hex_decHexadecimal decoding session
       Cstdex::hex_encHexadecimal encoding session
       Cstdex::parser::http_factor_more< T >
       Cstdex::interval< T >Numerical interval
       Cstdex::interval< size_t >
       Cstdex::mapping< T >Maps index in source string to index in destination string
       Cstdex::no_delete< T >Noop deleter
       Cstdex::no_delete< T[]>Noop array deleter
       Cstdex::progress< T >Progress indicator base class
       Cstdex::global_progress< T >Global progress indicator base class
       Cstdex::lazy_progress< T >Lazy progress indicator base class
       Cstdex::idrec::record< T, T_ID, ID, T_SIZE, ALIGN >Helper class for read/write of records to/from memory
       Cstd::runtime_error
       Cstdex::errno_errorStandard C runtime library error
       CT
       Cstdex::parser::http_header_collection< T >Collection of HTTP headers
       Cstdex::vector_queue< T >Helper class to allow limited size FIFO queues implemented as vector of elements
      diff --git a/idrec_8h_source.html b/idrec_8hpp_source.html similarity index 97% rename from idrec_8h_source.html rename to idrec_8hpp_source.html index e2d066ba8..5a0029f89 100644 --- a/idrec_8h_source.html +++ b/idrec_8hpp_source.html @@ -5,7 +5,7 @@ -stdex: include/stdex/idrec.h Source File +stdex: include/stdex/idrec.hpp Source File @@ -74,7 +74,7 @@ $(function() {
      -
      idrec.h
      +
      idrec.hpp
      1/*
      @@ -84,7 +84,7 @@ $(function() {
      5
      6#pragma once
      7
      -
      8#include "sal.h"
      +
      8#include "sal.hpp"
      9#include <ios>
      10#include <istream>
      11#include <ostream>
      @@ -263,19 +263,19 @@ $(function() {
      295
      296 return stream;
      297}
      -
      Helper class for read/write of records to/from memory.
      Definition: idrec.h:159
      -
      static bool find(std::istream &stream, std::streamoff end=(std::streamoff) -1)
      Finds record data.
      Definition: idrec.h:237
      -
      T & data
      Record data reference.
      Definition: idrec.h:243
      -
      static const T_ID id()
      Returns record id.
      Definition: idrec.h:180
      -
      static std::streamoff open(std::ostream &stream)
      Writes record header.
      Definition: idrec.h:207
      -
      const record< T, T_ID, ID, T_SIZE, ALIGN > & operator=(const record< T, T_ID, ID, T_SIZE, ALIGN > &r)
      Assignment operator.
      Definition: idrec.h:193
      -
      record(T &d)
      Constructs the class.
      Definition: idrec.h:166
      -
      record(const T &d)
      Constructs the class.
      Definition: idrec.h:174
      -
      static std::streamoff close(std::ostream &stream, std::streamoff start)
      Updates record header.
      Definition: idrec.h:221
      +
      Helper class for read/write of records to/from memory.
      Definition: idrec.hpp:159
      +
      static bool find(std::istream &stream, std::streamoff end=(std::streamoff) -1)
      Finds record data.
      Definition: idrec.hpp:237
      +
      T & data
      Record data reference.
      Definition: idrec.hpp:243
      +
      static const T_ID id()
      Returns record id.
      Definition: idrec.hpp:180
      +
      static std::streamoff open(std::ostream &stream)
      Writes record header.
      Definition: idrec.hpp:207
      +
      const record< T, T_ID, ID, T_SIZE, ALIGN > & operator=(const record< T, T_ID, ID, T_SIZE, ALIGN > &r)
      Assignment operator.
      Definition: idrec.hpp:193
      +
      record(T &d)
      Constructs the class.
      Definition: idrec.hpp:166
      +
      record(const T &d)
      Constructs the class.
      Definition: idrec.hpp:174
      +
      static std::streamoff close(std::ostream &stream, std::streamoff start)
      Updates record header.
      Definition: idrec.hpp:221
      diff --git a/index.html b/index.html index c133c8cf0..6aed580c3 100644 --- a/index.html +++ b/index.html @@ -76,7 +76,7 @@ $(function() { diff --git a/interval_8h_source.html b/interval_8hpp_source.html similarity index 84% rename from interval_8h_source.html rename to interval_8hpp_source.html index 46eb9303f..dfeaf78ff 100644 --- a/interval_8h_source.html +++ b/interval_8hpp_source.html @@ -5,7 +5,7 @@ -stdex: include/stdex/interval.h Source File +stdex: include/stdex/interval.hpp Source File @@ -74,7 +74,7 @@ $(function() {
      -
      interval.h
      +
      interval.hpp
      1/*
      @@ -84,7 +84,7 @@ $(function() {
      5
      6#pragma once
      7
      -
      8#include "sal.h"
      +
      8#include "sal.hpp"
      9
      10namespace stdex
      11{
      @@ -102,20 +102,23 @@ $(function() {
      40
      46 inline T size() const { return start <= end ? end - start : 0; }
      47
      -
      53 inline operator bool() const { return start <= end; }
      -
      54 };
      -
      55}
      -
      Numerical interval.
      Definition: interval.h:17
      -
      interval(T x) noexcept
      Constructs a zero-size interval.
      Definition: interval.h:31
      -
      interval(T _start, T _end) noexcept
      Constructs an interval.
      Definition: interval.h:39
      -
      T size() const
      Returns interval size.
      Definition: interval.h:46
      -
      T end
      interval end
      Definition: interval.h:19
      -
      interval() noexcept
      Constructs an invalid interval.
      Definition: interval.h:24
      -
      T start
      interval start
      Definition: interval.h:18
      +
      53 inline bool empty() const { return start >= end; }
      +
      54
      +
      60 inline operator bool() const { return start <= end; }
      +
      61 };
      +
      62}
      +
      Numerical interval.
      Definition: interval.hpp:17
      +
      interval(T x) noexcept
      Constructs a zero-size interval.
      Definition: interval.hpp:31
      +
      bool empty() const
      Is interval empty?
      Definition: interval.hpp:53
      +
      interval(T _start, T _end) noexcept
      Constructs an interval.
      Definition: interval.hpp:39
      +
      T size() const
      Returns interval size.
      Definition: interval.hpp:46
      +
      T end
      interval end
      Definition: interval.hpp:19
      +
      interval() noexcept
      Constructs an invalid interval.
      Definition: interval.hpp:24
      +
      T start
      interval start
      Definition: interval.hpp:18
      diff --git a/mapping_8hpp_source.html b/mapping_8hpp_source.html new file mode 100644 index 000000000..d68e24d68 --- /dev/null +++ b/mapping_8hpp_source.html @@ -0,0 +1,115 @@ + + + + + + + +stdex: include/stdex/mapping.hpp Source File + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      mapping.hpp
      +
      +
      +
      1/*
      +
      2 SPDX-License-Identifier: MIT
      +
      3 Copyright © 2023 Amebis
      +
      4*/
      +
      5
      +
      6#pragma once
      +
      7
      +
      8#include "sal.hpp"
      +
      9#include <vector>
      +
      10
      +
      11namespace stdex
      +
      12{
      +
      16 template <class T>
      +
      17 struct mapping {
      +
      18 T from; // index in source string
      +
      19 T to; // index in destination string
      +
      20
      +
      21 inline mapping() : from(0), to(0) {}
      +
      22 inline mapping(_In_ T x) : from(x), to(x) {}
      +
      23 inline mapping(_In_ T _from, _In_ T _to) : from(_from), to(_to) {}
      +
      24
      +
      25 friend bool operator ==(_In_ stdex::mapping<T> const& a, _In_ stdex::mapping<T> const& b) noexcept { return a.from == b.from && a.to == b.to; }
      +
      26 friend bool operator !=(_In_ stdex::mapping<T> const& a, _In_ stdex::mapping<T> const& b) noexcept { return !(a == b); }
      +
      27 };
      +
      28
      +
      29 template <class T, class _Alloc = std::allocator<mapping<T>>>
      +
      30 using mapping_vector = std::vector<mapping<T>, _Alloc>;
      +
      31}
      +
      Maps index in source string to index in destination string.
      Definition: mapping.hpp:17
      +
      + + + + diff --git a/memory_8hpp_source.html b/memory_8hpp_source.html new file mode 100644 index 000000000..10575e5dd --- /dev/null +++ b/memory_8hpp_source.html @@ -0,0 +1,125 @@ + + + + + + + +stdex: include/stdex/memory.hpp Source File + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      memory.hpp
      +
      +
      +
      1/*
      +
      2 SPDX-License-Identifier: MIT
      +
      3 Copyright © 2023 Amebis
      +
      4*/
      +
      5
      +
      6#pragma once
      +
      7
      +
      8#include <memory>
      +
      9
      +
      10namespace stdex
      +
      11{
      +
      15 template <class T>
      +
      16 struct no_delete {
      +
      17 constexpr no_delete() noexcept = default;
      +
      18
      +
      19 template <class T2, std::enable_if_t<std::is_convertible_v<T2*, T*>, int> = 0>
      +
      20 inline no_delete(const no_delete<T2>&) noexcept {}
      +
      21
      +
      22 inline void operator()(T* p) const noexcept { p; }
      +
      23 };
      +
      24
      +
      28 template <class T>
      +
      29 struct no_delete<T[]> {
      +
      30 constexpr no_delete() noexcept = default;
      +
      31
      +
      32 template <class _Uty, std::enable_if_t<std::is_convertible_v<_Uty(*)[], T(*)[]>, int> = 0>
      +
      33 inline no_delete(const no_delete<_Uty[]>&) noexcept {}
      +
      34
      +
      35 template <class _Uty, std::enable_if_t<std::is_convertible_v<_Uty(*)[], T(*)[]>, int> = 0>
      +
      36 inline void operator()(_Uty* p) const noexcept { p; }
      +
      37 };
      +
      38
      +
      47 template <class T>
      +
      48 inline std::shared_ptr<T> make_shared_no_delete(_In_ T* p)
      +
      49 {
      +
      50 return std::shared_ptr<T>(p, no_delete<T>{});
      +
      51 }
      +
      52}
      +
      Noop deleter.
      Definition: memory.hpp:16
      +
      + + + + diff --git a/menudata.js b/menudata.js index 1330c9f03..b50d932f6 100644 --- a/menudata.js +++ b/menudata.js @@ -70,7 +70,21 @@ var menudata={children:[ {text:"u",url:"functions_func.html#index_u"}, {text:"v",url:"functions_func.html#index_v"}, {text:"~",url:"functions_func.html#index__7E"}]}, -{text:"Variables",url:"functions_vars.html"}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars.html#index_b"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"e",url:"functions_vars.html#index_e"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"h",url:"functions_vars.html#index_h"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"n",url:"functions_vars.html#index_n"}, +{text:"p",url:"functions_vars.html#index_p"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}, +{text:"v",url:"functions_vars.html#index_v"}]}, {text:"Typedefs",url:"functions_type.html"}]}]}, {text:"Files",url:"files.html",children:[ {text:"File List",url:"files.html"}]}]} diff --git a/parser_8hpp_source.html b/parser_8hpp_source.html new file mode 100644 index 000000000..5128b56e7 --- /dev/null +++ b/parser_8hpp_source.html @@ -0,0 +1,6500 @@ + + + + + + + +stdex: include/stdex/parser.hpp Source File + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      parser.hpp
      +
      +
      +
      1/*
      +
      2 SPDX-License-Identifier: MIT
      +
      3 Copyright © 2023 Amebis
      +
      4*/
      +
      5
      +
      6#pragma once
      +
      7
      +
      8#include "interval.hpp"
      +
      9#include "memory.hpp"
      +
      10#include "sal.hpp"
      +
      11#include "sgml.hpp"
      +
      12#include "string.hpp"
      +
      13#include <assert.h>
      +
      14#include <stdarg.h>
      +
      15#include <stdint.h>
      +
      16#include <limits>
      +
      17#include <list>
      +
      18#include <memory>
      +
      19#include <set>
      +
      20#include <string>
      +
      21#ifdef _WIN32
      +
      22#include <winsock2.h>
      +
      23#else
      +
      24#include <inaddr.h>
      +
      25#include <in6addr.h>
      +
      26#endif
      +
      27
      +
      28#ifdef _MSC_VER
      +
      29#pragma warning(push)
      +
      30#pragma warning(disable: 4100)
      +
      31#endif
      +
      32
      +
      33namespace stdex
      +
      34{
      +
      35 namespace parser
      +
      36 {
      +
      40 constexpr int match_default = 0;
      +
      41 constexpr int match_case_insensitive = 0x1;
      +
      42 constexpr int match_multiline = 0x2;
      +
      43
      +
      47 template <class T>
      + +
      49 {
      +
      50 public:
      +
      51 basic_tester(_In_ const std::locale& locale = std::locale()) : m_locale(locale) {}
      +
      52 virtual ~basic_tester() {}
      +
      53
      +
      54 bool search(
      +
      55 _In_reads_or_z_(end) const T* text,
      +
      56 _In_ size_t start = 0,
      +
      57 _In_ size_t end = (size_t)-1,
      +
      58 _In_ int flags = match_default)
      +
      59 {
      +
      60 for (size_t i = start; i < end && text[i]; i++)
      +
      61 if (match(text, i, end, flags))
      +
      62 return true;
      +
      63 return false;
      +
      64 }
      +
      65
      +
      66 virtual bool match(
      +
      67 _In_reads_or_z_(end) const T* text,
      +
      68 _In_ size_t start = 0,
      +
      69 _In_ size_t end = (size_t)-1,
      +
      70 _In_ int flags = match_default) = 0;
      +
      71
      +
      72 template<class _Traits, class _Ax>
      +
      73 inline bool match(
      +
      74 const std::basic_string<T, _Traits, _Ax>& text,
      +
      75 _In_ size_t start = 0,
      +
      76 _In_ size_t end = (size_t)-1,
      +
      77 _In_ int flags = match_default)
      +
      78 {
      +
      79 return match(text.c_str(), start, std::min<size_t>(end, text.size()), flags);
      +
      80 }
      +
      81
      +
      82 virtual void invalidate()
      +
      83 {
      +
      84 interval.start = 1;
      +
      85 interval.end = 0;
      +
      86 }
      +
      87
      +
      88 protected:
      +
      90 const wchar_t* next_sgml_cp(_In_ const char* text, _In_ size_t start, _In_ size_t end, _Out_ size_t& chr_end, _Out_ wchar_t(&buf)[3])
      +
      91 {
      +
      92 if (text[start] == '&') {
      +
      93 // Potential entity start
      +
      94 const auto& ctype = std::use_facet<std::ctype<T>>(m_locale);
      +
      95 for (chr_end = start + 1;; chr_end++) {
      +
      96 if (chr_end >= end || text[chr_end] == 0) {
      +
      97 // Unterminated entity
      +
      98 break;
      +
      99 }
      +
      100 if (text[chr_end] == ';') {
      +
      101 // Entity end
      +
      102 size_t n = chr_end - start - 1;
      +
      103 if (n >= 2 && text[start + 1] == '#') {
      +
      104 // Numerical entity
      +
      105 char32_t unicode;
      +
      106 if (text[start + 2] == 'x' || text[start + 2] == 'X')
      +
      107 unicode = strtou32(text + start + 3, n - 2, nullptr, 16);
      +
      108 else
      +
      109 unicode = strtou32(text + start + 2, n - 1, nullptr, 10);
      +
      110#ifdef _WIN32
      +
      111 if (unicode < 0x10000) {
      +
      112 buf[0] = (wchar_t)unicode;
      +
      113 buf[1] = 0;
      +
      114 }
      +
      115 else {
      +
      116 ucs4_to_surrogate_pair(buf, unicode);
      +
      117 buf[2] = 0;
      +
      118 }
      +
      119#else
      +
      120 buf[0] = (wchar_t)unicode;
      +
      121 buf[1] = 0;
      +
      122#endif
      +
      123 chr_end++;
      +
      124 return buf;
      +
      125 }
      +
      126 const wchar_t* entity_w = sgml2uni(text + start + 1, n);
      +
      127 if (entity_w) {
      +
      128 chr_end++;
      +
      129 return entity_w;
      +
      130 }
      +
      131 // Unknown entity.
      +
      132 break;
      +
      133 }
      +
      134 else if (text[chr_end] == '&' || ctype.is(ctype.space, text[chr_end])) {
      +
      135 // This char cannot possibly be a part of entity.
      +
      136 break;
      +
      137 }
      +
      138 }
      +
      139 }
      +
      140 buf[0] = text[start];
      +
      141 buf[1] = 0;
      +
      142 chr_end = start + 1;
      +
      143 return buf;
      +
      144 }
      +
      146
      +
      147 public:
      + +
      149
      +
      150 protected:
      +
      151 const std::locale& m_locale;
      +
      152 };
      +
      153
      + + +
      156#ifdef _UNICODE
      +
      157 using ttester = wtester;
      +
      158#else
      +
      159 using ttester = tester;
      +
      160#endif
      + +
      162
      +
      166 template <class T>
      +
      167 class basic_noop : public basic_tester<T>
      +
      168 {
      +
      169 public:
      +
      170 virtual bool match(
      +
      171 _In_reads_or_z_(end) const T* text,
      +
      172 _In_ size_t start = 0,
      +
      173 _In_ size_t end = (size_t)-1,
      +
      174 _In_ int flags = match_default)
      +
      175 {
      +
      176 assert(text || start >= end);
      +
      177 if (start < end && text[start]) {
      +
      178 interval.start = interval.end = start;
      +
      179 return true;
      +
      180 }
      +
      181 interval.start = (interval.end = start) + 1;
      +
      182 return false;
      +
      183 }
      +
      184 };
      +
      185
      +
      186 using noop = basic_noop<char>;
      + +
      188#ifdef _UNICODE
      +
      189 using tnoop = wnoop;
      +
      190#else
      +
      191 using tnoop = noop;
      +
      192#endif
      + +
      194
      +
      198 template <class T>
      +
      199 class basic_any_cu : public basic_tester<T>
      +
      200 {
      +
      201 public:
      +
      202 virtual bool match(
      +
      203 _In_reads_or_z_(end) const T* text,
      +
      204 _In_ size_t start = 0,
      +
      205 _In_ size_t end = (size_t)-1,
      +
      206 _In_ int flags = match_default)
      +
      207 {
      +
      208 assert(text || start >= end);
      +
      209 if (start < end && text[start]) {
      +
      210 interval.end = (interval.start = start) + 1;
      +
      211 return true;
      +
      212 }
      +
      213 interval.start = (interval.end = start) + 1;
      +
      214 return false;
      +
      215 }
      +
      216 };
      +
      217
      + + +
      220#ifdef _UNICODE
      +
      221 using tany_cu = wany_cu;
      +
      222#else
      +
      223 using tany_cu = any_cu;
      +
      224#endif
      +
      225
      +
      229 class sgml_any_cp : public basic_any_cu<char>
      +
      230 {
      +
      231 public:
      +
      232 virtual bool match(
      +
      233 _In_reads_or_z_(end) const char* text,
      +
      234 _In_ size_t start = 0,
      +
      235 _In_ size_t end = (size_t)-1,
      +
      236 _In_ int flags = match_default)
      +
      237 {
      +
      238 assert(text || start >= end);
      +
      239 if (start < end && text[start]) {
      +
      240 if (text[start] == '&') {
      +
      241 // SGML entity
      +
      242 const auto& ctype = std::use_facet<std::ctype<char>>(m_locale);
      +
      243 for (interval.end = start + 1; interval.end < end && text[interval.end]; interval.end++)
      +
      244 if (text[interval.end] == ';') {
      +
      245 interval.end++;
      +
      246 interval.start = start;
      +
      247 return true;
      +
      248 }
      +
      249 else if (text[interval.end] == '&' || ctype.is(ctype.space, text[interval.end]))
      +
      250 break;
      +
      251 // Unterminated entity
      +
      252 }
      +
      253 interval.end = (interval.start = start) + 1;
      +
      254 return true;
      +
      255 }
      +
      256 interval.start = (interval.end = start) + 1;
      +
      257 return false;
      +
      258 }
      +
      259 };
      +
      260
      +
      264 template <class T>
      +
      265 class basic_cu : public basic_tester<T>
      +
      266 {
      +
      267 public:
      +
      268 basic_cu(T chr, bool invert = false, _In_ const std::locale& locale = std::locale()) :
      +
      269 basic_tester<T>(locale),
      +
      270 m_chr(chr),
      +
      271 m_invert(invert)
      +
      272 {}
      +
      273
      +
      274 virtual bool match(
      +
      275 _In_reads_or_z_(end) const T* text,
      +
      276 _In_ size_t start = 0,
      +
      277 _In_ size_t end = (size_t)-1,
      +
      278 _In_ int flags = match_default)
      +
      279 {
      +
      280 assert(text || start >= end);
      +
      281 if (start < end && text[start]) {
      +
      282 bool r;
      +
      283 if (flags & match_case_insensitive) {
      +
      284 const auto& ctype = std::use_facet<std::ctype<T>>(m_locale);
      +
      285 r = ctype.tolower(text[start]) == ctype.tolower(m_chr);
      +
      286 }
      +
      287 else
      +
      288 r = text[start] == m_chr;
      +
      289 if (r && !m_invert || !r && m_invert) {
      +
      290 interval.end = (interval.start = start) + 1;
      +
      291 return true;
      +
      292 }
      +
      293 }
      +
      294 interval.start = (interval.end = start) + 1;
      +
      295 return false;
      +
      296 }
      +
      297
      +
      298 protected:
      +
      299 T m_chr;
      +
      300 bool m_invert;
      +
      301 };
      +
      302
      +
      303 using cu = basic_cu<char>;
      +
      304 using wcu = basic_cu<wchar_t>;
      +
      305#ifdef _UNICODE
      +
      306 using tcu = wcu;
      +
      307#else
      +
      308 using tcu = cu;
      +
      309#endif
      +
      310
      +
      314 class sgml_cp : public sgml_tester
      +
      315 {
      +
      316 public:
      +
      317 sgml_cp(const char* chr, size_t count = (size_t)-1, bool invert = false, _In_ const std::locale& locale = std::locale()) :
      +
      318 sgml_tester(locale),
      +
      319 m_invert(invert)
      +
      320 {
      +
      321 assert(chr || !count);
      +
      322 wchar_t buf[3];
      +
      323 size_t chr_end;
      +
      324 m_chr.assign(count ? next_sgml_cp(chr, 0, count, chr_end, buf) : L"");
      +
      325 }
      +
      326
      +
      327 virtual bool match(
      +
      328 _In_reads_or_z_(end) const char* text,
      +
      329 _In_ size_t start = 0,
      +
      330 _In_ size_t end = (size_t)-1,
      +
      331 _In_ int flags = match_default)
      +
      332 {
      +
      333 assert(text || start >= end);
      +
      334 if (start < end && text[start]) {
      +
      335 wchar_t buf[3];
      +
      336 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      337 bool r = ((flags & match_case_insensitive) ?
      +
      338 stdex::strnicmp(chr, (size_t)-1, m_chr.c_str(), m_chr.size(), m_locale) :
      +
      339 stdex::strncmp(chr, (size_t)-1, m_chr.c_str(), m_chr.size())) == 0;
      +
      340 if (r && !m_invert || !r && m_invert) {
      +
      341 interval.start = start;
      +
      342 return true;
      +
      343 }
      +
      344 }
      +
      345 interval.start = (interval.end = start) + 1;
      +
      346 return false;
      +
      347 }
      +
      348
      +
      349 protected:
      +
      350 std::wstring m_chr;
      +
      351 bool m_invert;
      +
      352 };
      +
      353
      +
      357 template <class T>
      +
      358 class basic_space_cu : public basic_tester<T>
      +
      359 {
      +
      360 public:
      +
      361 basic_space_cu(bool invert = false, _In_ const std::locale& locale = std::locale()) :
      +
      362 basic_tester<T>(locale),
      +
      363 m_invert(invert)
      +
      364 {}
      +
      365
      +
      366 virtual bool match(
      +
      367 _In_reads_or_z_(end) const T* text,
      +
      368 _In_ size_t start = 0,
      +
      369 _In_ size_t end = (size_t)-1,
      +
      370 _In_ int flags = match_default)
      +
      371 {
      +
      372 assert(text || start >= end);
      +
      373 if (start < end && text[start]) {
      +
      374 bool r =
      +
      375 ((flags & match_multiline) || !islbreak(text[start])) &&
      +
      376 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::space, text[start]);
      +
      377 if (r && !m_invert || !r && m_invert) {
      +
      378 interval.end = (interval.start = start) + 1;
      +
      379 return true;
      +
      380 }
      +
      381 }
      +
      382 interval.start = (interval.end = start) + 1;
      +
      383 return false;
      +
      384 }
      +
      385
      +
      386 protected:
      +
      387 bool m_invert;
      +
      388 };
      +
      389
      + + +
      392#ifdef _UNICODE
      +
      393 using tspace_cu = wspace_cu;
      +
      394#else
      +
      395 using tspace_cu = space_cu;
      +
      396#endif
      +
      397
      +
      401 class sgml_space_cp : public basic_space_cu<char>
      +
      402 {
      +
      403 public:
      +
      404 sgml_space_cp(_In_ bool invert = false, _In_ const std::locale& locale = std::locale()) :
      +
      405 basic_space_cu<char>(invert, locale)
      +
      406 {}
      +
      407
      +
      408 virtual bool match(
      +
      409 _In_reads_or_z_(end) const char* text,
      +
      410 _In_ size_t start = 0,
      +
      411 _In_ size_t end = (size_t)-1,
      +
      412 _In_ int flags = match_default)
      +
      413 {
      +
      414 assert(text || start >= end);
      +
      415 if (start < end && text[start]) {
      +
      416 wchar_t buf[3];
      +
      417 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      418 const wchar_t* chr_end = chr + stdex::strlen(chr);
      +
      419 bool r =
      +
      420 ((flags & match_multiline) || !islbreak(chr, (size_t)-1)) &&
      +
      421 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::space, chr, chr_end) == chr_end;
      +
      422 if (r && !m_invert || !r && m_invert) {
      +
      423 interval.start = start;
      +
      424 return true;
      +
      425 }
      +
      426 }
      +
      427
      +
      428 interval.start = (interval.end = start) + 1;
      +
      429 return false;
      +
      430 }
      +
      431 };
      +
      432
      +
      436 template <class T>
      +
      437 class basic_punct_cu : public basic_tester<T>
      +
      438 {
      +
      439 public:
      +
      440 basic_punct_cu(bool invert = false, _In_ const std::locale& locale = std::locale()) :
      +
      441 basic_tester<T>(locale),
      +
      442 m_invert(invert)
      +
      443 {}
      +
      444
      +
      445 virtual bool match(
      +
      446 _In_reads_or_z_(end) const T* text,
      +
      447 _In_ size_t start = 0,
      +
      448 _In_ size_t end = (size_t)-1,
      +
      449 _In_ int flags = match_default)
      +
      450 {
      +
      451 assert(text || start >= end);
      +
      452 if (start < end && text[start]) {
      +
      453 bool r = std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::punct, text[start]);
      +
      454 if (r && !m_invert || !r && m_invert) {
      +
      455 interval.end = (interval.start = start) + 1;
      +
      456 return true;
      +
      457 }
      +
      458 }
      +
      459 interval.start = (interval.end = start) + 1;
      +
      460 return false;
      +
      461 }
      +
      462
      +
      463 protected:
      +
      464 bool m_invert;
      +
      465 };
      +
      466
      + + +
      469#ifdef _UNICODE
      +
      470 using tpunct_cu = wpunct_cu;
      +
      471#else
      +
      472 using tpunct_cu = punct_cu;
      +
      473#endif
      +
      474
      +
      478 class sgml_punct_cp : public basic_punct_cu<char>
      +
      479 {
      +
      480 public:
      +
      481 virtual bool match(
      +
      482 _In_reads_or_z_(end) const char* text,
      +
      483 _In_ size_t start = 0,
      +
      484 _In_ size_t end = (size_t)-1,
      +
      485 _In_ int flags = match_default)
      +
      486 {
      +
      487 assert(text || start >= end);
      +
      488 if (start < end && text[start]) {
      +
      489 wchar_t buf[3];
      +
      490 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      491 const wchar_t* chr_end = chr + stdex::strlen(chr);
      +
      492 bool r = std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::punct, chr, chr_end) == chr_end;
      +
      493 if (r && !m_invert || !r && m_invert) {
      +
      494 interval.start = start;
      +
      495 return true;
      +
      496 }
      +
      497 }
      +
      498 interval.start = (interval.end = start) + 1;
      +
      499 return false;
      +
      500 }
      +
      501 };
      +
      502
      +
      506 template <class T>
      + +
      508 {
      +
      509 public:
      +
      510 basic_space_or_punct_cu(bool invert = false, _In_ const std::locale& locale = std::locale()) :
      +
      511 basic_tester<T>(locale),
      +
      512 m_invert(invert)
      +
      513 {}
      +
      514
      +
      515 virtual bool match(
      +
      516 _In_reads_or_z_(end) const T* text,
      +
      517 _In_ size_t start = 0,
      +
      518 _In_ size_t end = (size_t)-1,
      +
      519 _In_ int flags = match_default)
      +
      520 {
      +
      521 assert(text || start >= end);
      +
      522 if (start < end && text[start]) {
      +
      523 bool r =
      +
      524 ((flags & match_multiline) || !islbreak(text[start])) &&
      +
      525 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::space | std::ctype_base::punct, text[start]);
      +
      526 if (r && !m_invert || !r && m_invert) {
      +
      527 interval.end = (interval.start = start) + 1;
      +
      528 return true;
      +
      529 }
      +
      530 }
      +
      531 interval.start = (interval.end = start) + 1;
      +
      532 return false;
      +
      533 }
      +
      534
      +
      535 protected:
      +
      536 bool m_invert;
      +
      537 };
      +
      538
      + + +
      541#ifdef _UNICODE
      + +
      543#else
      + +
      545#endif
      +
      546
      + +
      551 {
      +
      552 public:
      +
      553 virtual bool match(
      +
      554 _In_reads_or_z_(end) const char* text,
      +
      555 _In_ size_t start = 0,
      +
      556 _In_ size_t end = (size_t)-1,
      +
      557 _In_ int flags = match_default)
      +
      558 {
      +
      559 assert(text || start >= end);
      +
      560 if (start < end && text[start]) {
      +
      561 wchar_t buf[3];
      +
      562 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      563 const wchar_t* chr_end = chr + stdex::strlen(chr);
      +
      564 bool r =
      +
      565 ((flags & match_multiline) || !islbreak(chr, (size_t)-1)) &&
      +
      566 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::space | std::ctype_base::punct, chr, chr_end) == chr_end;
      +
      567 if (r && !m_invert || !r && m_invert) {
      +
      568 interval.start = start;
      +
      569 return true;
      +
      570 }
      +
      571 }
      +
      572 interval.start = (interval.end = start) + 1;
      +
      573 return false;
      +
      574 }
      +
      575 };
      +
      576
      +
      580 template <class T>
      +
      581 class basic_bol : public basic_tester<T>
      +
      582 {
      +
      583 public:
      +
      584 basic_bol(bool invert = false) : m_invert(invert) {}
      +
      585
      +
      586 virtual bool match(
      +
      587 _In_reads_or_z_(end) const T* text,
      +
      588 _In_ size_t start = 0,
      +
      589 _In_ size_t end = (size_t)-1,
      +
      590 _In_ int flags = match_default)
      +
      591 {
      +
      592 assert(text || start >= end);
      +
      593 bool r = start == 0 || start <= end && islbreak(text[start - 1]);
      +
      594 if (r && !m_invert || !r && m_invert) {
      +
      595 interval.end = interval.start = start;
      +
      596 return true;
      +
      597 }
      +
      598 interval.start = (interval.end = start) + 1;
      +
      599 return false;
      +
      600 }
      +
      601
      +
      602 protected:
      +
      603 bool m_invert;
      +
      604 };
      +
      605
      +
      606 using bol = basic_bol<char>;
      +
      607 using wbol = basic_bol<wchar_t>;
      +
      608#ifdef _UNICODE
      +
      609 using tbol = wbol;
      +
      610#else
      +
      611 using tbol = bol;
      +
      612#endif
      + +
      614
      +
      618 template <class T>
      +
      619 class basic_eol : public basic_tester<T>
      +
      620 {
      +
      621 public:
      +
      622 basic_eol(bool invert = false) : m_invert(invert) {}
      +
      623
      +
      624 virtual bool match(
      +
      625 _In_reads_or_z_(end) const T* text,
      +
      626 _In_ size_t start = 0,
      +
      627 _In_ size_t end = (size_t)-1,
      +
      628 _In_ int flags = match_default)
      +
      629 {
      +
      630 assert(text || start >= end);
      +
      631 bool r = islbreak(text[start]);
      +
      632 if (r && !m_invert || !r && m_invert) {
      +
      633 interval.end = interval.start = start;
      +
      634 return true;
      +
      635 }
      +
      636 interval.start = (interval.end = start) + 1;
      +
      637 return false;
      +
      638 }
      +
      639
      +
      640 protected:
      +
      641 bool m_invert;
      +
      642 };
      +
      643
      +
      644 using eol = basic_eol<char>;
      +
      645 using weol = basic_eol<wchar_t>;
      +
      646#ifdef _UNICODE
      +
      647 using teol = weol;
      +
      648#else
      +
      649 using teol = eol;
      +
      650#endif
      + +
      652
      +
      653 template <class T>
      +
      654 class basic_set : public basic_tester<T>
      +
      655 {
      +
      656 public:
      +
      657 basic_set(bool invert = false, _In_ const std::locale& locale = std::locale()) :
      +
      658 basic_tester<T>(locale),
      +
      659 hit_offset((size_t)-1),
      +
      660 m_invert(invert)
      +
      661 {}
      +
      662
      +
      663 virtual bool match(
      +
      664 _In_reads_or_z_(end) const T* text,
      +
      665 _In_ size_t start = 0,
      +
      666 _In_ size_t end = (size_t)-1,
      +
      667 _In_ int flags = match_default) = 0;
      +
      668
      +
      669 virtual void invalidate()
      +
      670 {
      +
      671 hit_offset = (size_t)-1;
      + +
      673 }
      +
      674
      +
      675 public:
      +
      676 size_t hit_offset;
      +
      677
      +
      678 protected:
      +
      679 bool m_invert;
      +
      680 };
      +
      681
      +
      685 template <class T>
      +
      686 class basic_cu_set : public basic_set<T>
      +
      687 {
      +
      688 public:
      + +
      690 _In_reads_or_z_(count) const T* set,
      +
      691 _In_ size_t count = (size_t)-1,
      +
      692 _In_ bool invert = false,
      +
      693 _In_ const std::locale& locale = std::locale()) :
      +
      694 basic_set<T>(invert, locale)
      +
      695 {
      +
      696 if (set)
      +
      697 m_set.assign(set, set + stdex::strnlen(set, count));
      +
      698 }
      +
      699
      +
      700 virtual bool match(
      +
      701 _In_reads_or_z_(end) const T* text,
      +
      702 _In_ size_t start = 0,
      +
      703 _In_ size_t end = (size_t)-1,
      +
      704 _In_ int flags = match_default)
      +
      705 {
      +
      706 assert(text || start >= end);
      +
      707 if (start < end && text[start]) {
      +
      708 const T* set = m_set.c_str();
      +
      709 const T* r = (flags & match_case_insensitive) ?
      +
      710 stdex::strnichr(set, text[start], m_set.size(), m_locale) :
      +
      711 stdex::strnchr(set, text[start], m_set.size());
      +
      712 if (r && !m_invert || !r && m_invert) {
      +
      713 hit_offset = r ? r - set : (size_t)-1;
      +
      714 interval.end = (interval.start = start) + 1;
      +
      715 return true;
      +
      716 }
      +
      717 }
      +
      718 hit_offset = (size_t)-1;
      +
      719 interval.start = (interval.end = start) + 1;
      +
      720 return false;
      +
      721 }
      +
      722
      +
      723 protected:
      +
      724 std::basic_string<T> m_set;
      +
      725 };
      +
      726
      + + +
      729#ifdef _UNICODE
      +
      730 using tcu_set = wcu_set;
      +
      731#else
      +
      732 using tcu_set = cu_set;
      +
      733#endif
      +
      734
      +
      738 class sgml_cp_set : public basic_set<char>
      +
      739 {
      +
      740 public:
      +
      741 sgml_cp_set(const char* set, size_t count = (size_t)-1, bool invert = false, _In_ const std::locale& locale = std::locale()) :
      +
      742 basic_set<char>(invert, locale)
      +
      743 {
      +
      744 if (set)
      +
      745 m_set = sgml2str(set, count);
      +
      746 }
      +
      747
      +
      748 virtual bool match(
      +
      749 _In_reads_or_z_(end) const char* text,
      +
      750 _In_ size_t start = 0,
      +
      751 _In_ size_t end = (size_t)-1,
      +
      752 _In_ int flags = match_default)
      +
      753 {
      +
      754 assert(text || start >= end);
      +
      755 if (start < end && text[start]) {
      +
      756 wchar_t buf[3];
      +
      757 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      758 const wchar_t* set = m_set.c_str();
      +
      759 const wchar_t* r = (flags & match_case_insensitive) ?
      +
      760 stdex::strnistr(set, chr, m_set.size(), m_locale) :
      +
      761 stdex::strnstr(set, chr, m_set.size());
      +
      762 if (r && !m_invert || !r && m_invert) {
      +
      763 hit_offset = r ? r - set : (size_t)-1;
      +
      764 interval.start = start;
      +
      765 return true;
      +
      766 }
      +
      767 }
      +
      768 hit_offset = (size_t)-1;
      +
      769 interval.start = (interval.end = start) + 1;
      +
      770 return false;
      +
      771 }
      +
      772
      +
      773 protected:
      +
      774 std::wstring m_set;
      +
      775 };
      +
      776
      +
      780 template <class T>
      +
      781 class basic_string : public basic_tester<T>
      +
      782 {
      +
      783 public:
      + +
      785 _In_reads_or_z_(count) const T* str,
      +
      786 _In_ size_t count = (size_t)-1,
      +
      787 _In_ const std::locale& locale = std::locale()) :
      +
      788 basic_tester<T>(locale),
      +
      789 m_str(str, str + stdex::strnlen(str, count))
      +
      790 {}
      +
      791
      +
      792 virtual bool match(
      +
      793 _In_reads_or_z_(end) const T* text,
      +
      794 _In_ size_t start = 0,
      +
      795 _In_ size_t end = (size_t)-1,
      +
      796 _In_ int flags = match_default)
      +
      797 {
      +
      798 assert(text || start >= end);
      +
      799 size_t
      +
      800 m = m_str.size(),
      +
      801 n = std::min<size_t>(end - start, m);
      +
      802 bool r = ((flags & match_case_insensitive) ?
      +
      803 stdex::strnicmp(text + start, n, m_str.c_str(), m, m_locale) :
      +
      804 stdex::strncmp(text + start, n, m_str.c_str(), m)) == 0;
      +
      805 if (r) {
      +
      806 interval.end = (interval.start = start) + n;
      +
      807 return true;
      +
      808 }
      +
      809 interval.start = (interval.end = start) + 1;
      +
      810 return false;
      +
      811 }
      +
      812
      +
      813 protected:
      +
      814 std::basic_string<T> m_str;
      +
      815 };
      +
      816
      + + +
      819#ifdef _UNICODE
      +
      820 using tstring = wstring;
      +
      821#else
      +
      822 using tstring = string;
      +
      823#endif
      +
      824
      + +
      829 {
      +
      830 public:
      +
      831 sgml_string(const char* str, size_t count = (size_t)-1, _In_ const std::locale& locale = std::locale()) :
      +
      832 sgml_tester(locale),
      +
      833 m_str(sgml2str(str, count))
      +
      834 {}
      +
      835
      +
      836 virtual bool match(
      +
      837 _In_reads_or_z_(end) const char* text,
      +
      838 _In_ size_t start = 0,
      +
      839 _In_ size_t end = (size_t)-1,
      +
      840 _In_ int flags = match_default)
      +
      841 {
      +
      842 assert(text || start >= end);
      +
      843 const wchar_t* str = m_str.c_str();
      +
      844 const bool case_insensitive = flags & match_case_insensitive ? true : false;
      +
      845 const auto& ctype = std::use_facet<std::ctype<wchar_t>>(m_locale);
      +
      846 for (interval.end = start;;) {
      +
      847 if (!*str) {
      +
      848 interval.start = start;
      +
      849 return true;
      +
      850 }
      +
      851 if (interval.end >= end || !text[interval.end]) {
      +
      852 interval.start = (interval.end = start) + 1;
      +
      853 return false;
      +
      854 }
      +
      855 wchar_t buf[3];
      +
      856 const wchar_t* chr = next_sgml_cp(text, interval.end, end, interval.end, buf);
      +
      857 for (; *chr; ++str, ++chr) {
      +
      858 if (!*str ||
      +
      859 (case_insensitive ? ctype.tolower(*str) != ctype.tolower(*chr) : *str != *chr))
      +
      860 {
      +
      861 interval.start = (interval.end = start) + 1;
      +
      862 return false;
      +
      863 }
      +
      864 }
      +
      865 }
      +
      866 }
      +
      867
      +
      868 protected:
      +
      869 std::wstring m_str;
      +
      870 };
      +
      871
      +
      875 template <class T>
      + +
      877 {
      +
      878 public:
      +
      879 basic_iterations(const std::shared_ptr<basic_tester<T>>& el, size_t min_iterations = 0, size_t max_iterations = (size_t)-1, bool greedy = true) :
      +
      880 m_el(el),
      +
      881 m_min_iterations(min_iterations),
      +
      882 m_max_iterations(max_iterations),
      +
      883 m_greedy(greedy)
      +
      884 {}
      +
      885
      +
      886 virtual bool match(
      +
      887 _In_reads_or_z_(end) const T* text,
      +
      888 _In_ size_t start = 0,
      +
      889 _In_ size_t end = (size_t)-1,
      +
      890 _In_ int flags = match_default)
      +
      891 {
      +
      892 assert(text || start >= end);
      +
      893 interval.start = interval.end = start;
      +
      894 for (size_t i = 0; ; i++) {
      +
      895 if (!m_greedy && i >= m_min_iterations || i >= m_max_iterations)
      +
      896 return true;
      +
      897 if (!m_el->match(text, interval.end, end, flags)) {
      +
      898 if (i >= m_min_iterations)
      +
      899 return true;
      +
      900 break;
      +
      901 }
      +
      902 if (m_el->interval.end == interval.end) {
      +
      903 // Element did match, but the matching interval was empty. Quit instead of spinning.
      +
      904 return true;
      +
      905 }
      +
      906 interval.end = m_el->interval.end;
      +
      907 }
      +
      908 interval.start = (interval.end = start) + 1;
      +
      909 return false;
      +
      910 }
      +
      911
      +
      912 protected:
      +
      913 std::shared_ptr<basic_tester<T>> m_el;
      + + +
      916 bool m_greedy;
      +
      917 };
      +
      918
      + + +
      921#ifdef _UNICODE
      +
      922 using titerations = witerations;
      +
      923#else
      +
      924 using titerations = iterations;
      +
      925#endif
      + +
      927
      +
      931 template <class T>
      + +
      933 {
      +
      934 protected:
      +
      935 tester_collection(_In_ const std::locale& locale) : basic_tester<T>(locale) {}
      +
      936
      +
      937 public:
      + +
      939 _In_count_(count) const std::shared_ptr<basic_tester<T>>* el,
      +
      940 _In_ size_t count,
      +
      941 _In_ const std::locale& locale = std::locale()) :
      +
      942 basic_tester<T>(locale)
      +
      943 {
      +
      944 assert(el || !count);
      +
      945 m_collection.reserve(count);
      +
      946 for (size_t i = 0; i < count; i++)
      +
      947 m_collection.push_back(el[i]);
      +
      948 }
      +
      949
      + +
      951 _Inout_ std::vector<std::shared_ptr<basic_tester<T>>>&& collection,
      +
      952 _In_ const std::locale& locale = std::locale()) :
      +
      953 basic_tester<T>(locale),
      +
      954 m_collection(std::move(collection))
      +
      955 {}
      +
      956
      +
      957 virtual void invalidate()
      +
      958 {
      +
      959 for (auto i = m_collection.begin(); i != m_collection.end(); ++i)
      +
      960 (*i)->invalidate();
      + +
      962 }
      +
      963
      +
      964 protected:
      +
      965 std::vector<std::shared_ptr<basic_tester<T>>> m_collection;
      +
      966 };
      +
      967
      +
      971 template <class T>
      + +
      973 {
      +
      974 public:
      + +
      976 _In_count_(count) const std::shared_ptr<basic_tester<T>>* el = nullptr,
      +
      977 _In_ size_t count = 0,
      +
      978 _In_ const std::locale& locale = std::locale()) :
      +
      979 tester_collection<T>(el, count, locale)
      +
      980 {}
      +
      981
      + +
      983 _Inout_ std::vector<std::shared_ptr<basic_tester<T>>>&& collection,
      +
      984 _In_ const std::locale& locale = std::locale()) :
      +
      985 tester_collection<T>(std::move(collection), locale)
      +
      986 {}
      +
      987
      +
      988 virtual bool match(
      +
      989 _In_reads_or_z_(end) const T* text,
      +
      990 _In_ size_t start = 0,
      +
      991 _In_ size_t end = (size_t)-1,
      +
      992 _In_ int flags = match_default)
      +
      993 {
      +
      994 assert(text || start >= end);
      +
      995 interval.end = start;
      +
      996 for (auto i = m_collection.begin(); i != m_collection.end(); ++i) {
      +
      997 if (!(*i)->match(text, interval.end, end, flags)) {
      +
      998 for (++i; i != m_collection.end(); ++i)
      +
      999 (*i)->invalidate();
      +
      1000 interval.start = (interval.end = start) + 1;
      +
      1001 return false;
      +
      1002 }
      +
      1003 interval.end = (*i)->interval.end;
      +
      1004 }
      +
      1005 interval.start = start;
      +
      1006 return true;
      +
      1007 }
      +
      1008 };
      +
      1009
      + + +
      1012#ifdef _UNICODE
      +
      1013 using tsequence = wsequence;
      +
      1014#else
      +
      1015 using tsequence = sequence;
      +
      1016#endif
      + +
      1018
      +
      1022 template <class T>
      + +
      1024 {
      +
      1025 protected:
      +
      1026 basic_branch(_In_ const std::locale& locale) :
      +
      1027 tester_collection<T>(locale),
      +
      1028 hit_offset((size_t)-1)
      +
      1029 {}
      +
      1030
      +
      1031 public:
      + +
      1033 _In_count_(count) const std::shared_ptr<basic_tester<T>>* el = nullptr,
      +
      1034 _In_ size_t count = 0,
      +
      1035 _In_ const std::locale& locale = std::locale()) :
      +
      1036 tester_collection<T>(el, count, locale),
      +
      1037 hit_offset((size_t)-1)
      +
      1038 {}
      +
      1039
      + +
      1041 _Inout_ std::vector<std::shared_ptr<basic_tester<T>>>&& collection,
      +
      1042 _In_ const std::locale& locale = std::locale()) :
      +
      1043 tester_collection<T>(std::move(collection), locale),
      +
      1044 hit_offset((size_t)-1)
      +
      1045 {}
      +
      1046
      +
      1047 virtual bool match(
      +
      1048 _In_reads_or_z_(end) const T* text,
      +
      1049 _In_ size_t start = 0,
      +
      1050 _In_ size_t end = (size_t)-1,
      +
      1051 _In_ int flags = match_default)
      +
      1052 {
      +
      1053 assert(text || start >= end);
      +
      1054 hit_offset = 0;
      +
      1055 for (auto i = m_collection.begin(); i != m_collection.end(); ++i, ++hit_offset) {
      +
      1056 if ((*i)->match(text, start, end, flags)) {
      +
      1057 interval = (*i)->interval;
      +
      1058 for (++i; i != m_collection.end(); ++i)
      +
      1059 (*i)->invalidate();
      +
      1060 return true;
      +
      1061 }
      +
      1062 }
      +
      1063 hit_offset = (size_t)-1;
      +
      1064 interval.start = (interval.end = start) + 1;
      +
      1065 return false;
      +
      1066 }
      +
      1067
      +
      1068 virtual void invalidate()
      +
      1069 {
      +
      1070 hit_offset = (size_t)-1;
      + +
      1072 }
      +
      1073
      +
      1074 public:
      +
      1075 size_t hit_offset;
      +
      1076 };
      +
      1077
      +
      1078 using branch = basic_branch<char>;
      + +
      1080#ifdef _UNICODE
      +
      1081 using tbranch = wbranch;
      +
      1082#else
      +
      1083 using tbranch = branch;
      +
      1084#endif
      + +
      1086
      +
      1090 template <class T, class T_tester = basic_string<T>>
      + +
      1092 {
      +
      1093 public:
      +
      1094 inline basic_string_branch(
      +
      1095 _In_reads_(count) const T* str_z = nullptr,
      +
      1096 _In_ size_t count = 0,
      +
      1097 _In_ const std::locale& locale = std::locale()) :
      +
      1098 basic_branch<T>(locale)
      +
      1099 {
      +
      1100 build(str_z, count);
      +
      1101 }
      +
      1102
      +
      1103 inline basic_string_branch(_In_z_ const T* str, ...) :
      +
      1104 basic_branch<T>(std::locale())
      +
      1105 {
      +
      1106 va_list params;
      +
      1107 va_start(params, str);
      +
      1108 build(str, params);
      +
      1109 va_end(params);
      +
      1110 }
      +
      1111
      +
      1112 inline basic_string_branch(_In_ const std::locale& locale, _In_z_ const T* str, ...) :
      +
      1113 basic_branch<T>(locale)
      +
      1114 {
      +
      1115 va_list params;
      +
      1116 va_start(params, str);
      +
      1117 build(str, params);
      +
      1118 va_end(params);
      +
      1119 }
      +
      1120
      +
      1121 protected:
      +
      1122 void build(_In_reads_(count) const T* str_z, _In_ size_t count)
      +
      1123 {
      +
      1124 assert(str_z || !count);
      +
      1125 if (count) {
      +
      1126 size_t offset, n;
      +
      1127 for (
      +
      1128 offset = n = 0;
      +
      1129 offset < count && str_z[offset];
      +
      1130 offset += stdex::strnlen(str_z + offset, count - offset) + 1, ++n);
      +
      1131 m_collection.reserve(n);
      +
      1132 for (
      +
      1133 offset = 0;
      +
      1134 offset < count && str_z[offset];
      +
      1135 offset += stdex::strnlen(str_z + offset, count - offset) + 1)
      +
      1136 m_collection.push_back(std::move(std::make_shared<T_tester>(str_z + offset, count - offset, m_locale)));
      +
      1137 }
      +
      1138 }
      +
      1139
      +
      1140 void build(_In_z_ const T* str, _In_ va_list params)
      +
      1141 {
      +
      1142 const T* p;
      +
      1143 for (
      +
      1144 m_collection.push_back(std::move(std::make_shared<T_tester>(str, (size_t)-1, m_locale)));
      +
      1145 (p = va_arg(params, const T*)) != nullptr;
      +
      1146 m_collection.push_back(std::move(std::make_shared<T_tester>(p, (size_t)-1, m_locale))));
      +
      1147 }
      +
      1148 };
      +
      1149
      + + +
      1152#ifdef _UNICODE
      + +
      1154#else
      + +
      1156#endif
      + +
      1158
      +
      1162 template <class T>
      + +
      1164 {
      +
      1165 public:
      + +
      1167 _In_count_(count) const std::shared_ptr<basic_tester<T>>* el = nullptr,
      +
      1168 _In_ size_t count = 0,
      +
      1169 _In_ const std::locale& locale = std::locale()) :
      +
      1170 tester_collection<T>(el, count, locale)
      +
      1171 {}
      +
      1172
      + +
      1174 _Inout_ std::vector<std::shared_ptr<basic_tester<T>>>&& collection,
      +
      1175 _In_ const std::locale& locale = std::locale()) :
      +
      1176 tester_collection<T>(std::move(collection), locale)
      +
      1177 {}
      +
      1178
      +
      1179 virtual bool match(
      +
      1180 _In_reads_or_z_(end) const T* text,
      +
      1181 _In_ size_t start = 0,
      +
      1182 _In_ size_t end = (size_t)-1,
      +
      1183 _In_ int flags = match_default)
      +
      1184 {
      +
      1185 assert(text || start >= end);
      +
      1186 for (auto i = m_collection.begin(); i != m_collection.end(); ++i)
      +
      1187 (*i)->invalidate();
      +
      1188 if (match_recursively(text, start, end, flags)) {
      +
      1189 interval.start = start;
      +
      1190 return true;
      +
      1191 }
      +
      1192 interval.start = (interval.end = start) + 1;
      +
      1193 return false;
      +
      1194 }
      +
      1195
      +
      1196 protected:
      +
      1197 bool match_recursively(
      +
      1198 _In_reads_or_z_(end) const T* text,
      +
      1199 _In_ size_t start = 0,
      +
      1200 _In_ size_t end = (size_t)-1,
      +
      1201 _In_ int flags = match_default)
      +
      1202 {
      +
      1203 bool all_matched = true;
      +
      1204 for (auto i = m_collection.begin(); i != m_collection.cend(); ++i) {
      +
      1205 if (!(*i)->interval) {
      +
      1206 // Element was not matched in permutatuion yet.
      +
      1207 all_matched = false;
      +
      1208 if ((*i)->match(text, start, end, flags)) {
      +
      1209 // Element matched for the first time.
      +
      1210 if (match_recursively(text, (*i)->interval.end, end, flags)) {
      +
      1211 // Rest of the elements matched too.
      +
      1212 return true;
      +
      1213 }
      +
      1214 (*i)->invalidate();
      +
      1215 }
      +
      1216 }
      +
      1217 }
      +
      1218 if (all_matched) {
      +
      1219 interval.end = start;
      +
      1220 return true;
      +
      1221 }
      +
      1222 return false;
      +
      1223 }
      +
      1224 };
      +
      1225
      + + +
      1228#ifdef _UNICODE
      +
      1229 using tpermutation = wpermutation;
      +
      1230#else
      +
      1231 using tpermutation = permutation;
      +
      1232#endif
      + +
      1234
      +
      1238 template <class T>
      +
      1239 class basic_integer : public basic_tester<T>
      +
      1240 {
      +
      1241 public:
      +
      1242 basic_integer(_In_ const std::locale& locale = std::locale()) :
      +
      1243 basic_tester<T>(locale),
      +
      1244 value(0)
      +
      1245 {}
      +
      1246
      +
      1247 virtual void invalidate()
      +
      1248 {
      +
      1249 value = 0;
      + +
      1251 }
      +
      1252
      +
      1253 public:
      +
      1254 size_t value;
      +
      1255 };
      +
      1256
      +
      1260 template <class T>
      + +
      1262 {
      +
      1263 public:
      + +
      1265 _In_ const std::shared_ptr<basic_tester<T>>& digit_0,
      +
      1266 _In_ const std::shared_ptr<basic_tester<T>>& digit_1,
      +
      1267 _In_ const std::shared_ptr<basic_tester<T>>& digit_2,
      +
      1268 _In_ const std::shared_ptr<basic_tester<T>>& digit_3,
      +
      1269 _In_ const std::shared_ptr<basic_tester<T>>& digit_4,
      +
      1270 _In_ const std::shared_ptr<basic_tester<T>>& digit_5,
      +
      1271 _In_ const std::shared_ptr<basic_tester<T>>& digit_6,
      +
      1272 _In_ const std::shared_ptr<basic_tester<T>>& digit_7,
      +
      1273 _In_ const std::shared_ptr<basic_tester<T>>& digit_8,
      +
      1274 _In_ const std::shared_ptr<basic_tester<T>>& digit_9,
      +
      1275 _In_ const std::locale& locale = std::locale()) :
      +
      1276 basic_integer<T>(locale),
      +
      1277 m_digit_0(digit_0),
      +
      1278 m_digit_1(digit_1),
      +
      1279 m_digit_2(digit_2),
      +
      1280 m_digit_3(digit_3),
      +
      1281 m_digit_4(digit_4),
      +
      1282 m_digit_5(digit_5),
      +
      1283 m_digit_6(digit_6),
      +
      1284 m_digit_7(digit_7),
      +
      1285 m_digit_8(digit_8),
      +
      1286 m_digit_9(digit_9)
      +
      1287 {}
      +
      1288
      +
      1289 virtual bool match(
      +
      1290 _In_reads_or_z_(end) const T* text,
      +
      1291 _In_ size_t start = 0,
      +
      1292 _In_ size_t end = (size_t)-1,
      +
      1293 _In_ int flags = match_default)
      +
      1294 {
      +
      1295 assert(text || start >= end);
      +
      1296 for (interval.end = start, value = 0; interval.end < end && text[interval.end];) {
      +
      1297 size_t dig;
      +
      1298 if (m_digit_0->match(text, interval.end, end, flags)) { dig = 0; interval.end = m_digit_0->interval.end; }
      +
      1299 else if (m_digit_1->match(text, interval.end, end, flags)) { dig = 1; interval.end = m_digit_1->interval.end; }
      +
      1300 else if (m_digit_2->match(text, interval.end, end, flags)) { dig = 2; interval.end = m_digit_2->interval.end; }
      +
      1301 else if (m_digit_3->match(text, interval.end, end, flags)) { dig = 3; interval.end = m_digit_3->interval.end; }
      +
      1302 else if (m_digit_4->match(text, interval.end, end, flags)) { dig = 4; interval.end = m_digit_4->interval.end; }
      +
      1303 else if (m_digit_5->match(text, interval.end, end, flags)) { dig = 5; interval.end = m_digit_5->interval.end; }
      +
      1304 else if (m_digit_6->match(text, interval.end, end, flags)) { dig = 6; interval.end = m_digit_6->interval.end; }
      +
      1305 else if (m_digit_7->match(text, interval.end, end, flags)) { dig = 7; interval.end = m_digit_7->interval.end; }
      +
      1306 else if (m_digit_8->match(text, interval.end, end, flags)) { dig = 8; interval.end = m_digit_8->interval.end; }
      +
      1307 else if (m_digit_9->match(text, interval.end, end, flags)) { dig = 9; interval.end = m_digit_9->interval.end; }
      +
      1308 else break;
      +
      1309 value = value * 10 + dig;
      +
      1310 }
      +
      1311 if (start < interval.end) {
      +
      1312 interval.start = start;
      +
      1313 return true;
      +
      1314 }
      +
      1315 interval.start = (interval.end = start) + 1;
      +
      1316 return false;
      +
      1317 }
      +
      1318
      +
      1319 protected:
      +
      1320 std::shared_ptr<basic_tester<T>>
      +
      1321 m_digit_0,
      +
      1322 m_digit_1,
      +
      1323 m_digit_2,
      +
      1324 m_digit_3,
      +
      1325 m_digit_4,
      +
      1326 m_digit_5,
      +
      1327 m_digit_6,
      +
      1328 m_digit_7,
      +
      1329 m_digit_8,
      +
      1330 m_digit_9;
      +
      1331 };
      +
      1332
      + + +
      1335#ifdef _UNICODE
      +
      1336 using tinteger10 = winteger10;
      +
      1337#else
      +
      1338 using tinteger10 = integer10;
      +
      1339#endif
      + +
      1341
      +
      1345 template <class T>
      + +
      1347 {
      +
      1348 public:
      + +
      1350 _In_ const std::shared_ptr<basic_integer10<T>>& digits,
      +
      1351 _In_ const std::shared_ptr<basic_set<T>>& separator,
      +
      1352 _In_ const std::locale& locale = std::locale()) :
      +
      1353 basic_integer<T>(locale),
      +
      1354 digit_count(0),
      +
      1355 has_separators(false),
      +
      1356 m_digits(digits),
      +
      1357 m_separator(separator)
      +
      1358 {}
      +
      1359
      +
      1360 virtual bool match(
      +
      1361 _In_reads_or_z_(end) const T* text,
      +
      1362 _In_ size_t start = 0,
      +
      1363 _In_ size_t end = (size_t)-1,
      +
      1364 _In_ int flags = match_default)
      +
      1365 {
      +
      1366 assert(text || start >= end);
      +
      1367 if (m_digits->match(text, start, end, flags)) {
      +
      1368 // Leading part match.
      +
      1369 value = m_digits->value;
      +
      1370 digit_count = m_digits->interval.size();
      +
      1371 has_separators = false;
      +
      1372 interval.start = start;
      +
      1373 interval.end = m_digits->interval.end;
      +
      1374 if (m_digits->interval.size() <= 3) {
      +
      1375 // Maybe separated with thousand separators?
      +
      1376 size_t hit_offset = (size_t)-1;
      +
      1377 while (m_separator->match(text, interval.end, end, flags) &&
      +
      1378 (hit_offset == (size_t)-1 || hit_offset == m_separator->hit_offset) && // All separators must be the same, no mixing.
      +
      1379 m_digits->match(text, m_separator->interval.end, end, flags) &&
      +
      1380 m_digits->interval.size() == 3)
      +
      1381 {
      +
      1382 // Thousand separator and three-digit integer followed.
      +
      1383 value = value * 1000 + m_digits->value;
      +
      1384 digit_count += 3;
      +
      1385 has_separators = true;
      +
      1386 interval.end = m_digits->interval.end;
      +
      1387 hit_offset = m_separator->hit_offset;
      +
      1388 }
      +
      1389 }
      +
      1390
      +
      1391 return true;
      +
      1392 }
      +
      1393 value = 0;
      +
      1394 interval.start = (interval.end = start) + 1;
      +
      1395 return false;
      +
      1396 }
      +
      1397
      +
      1398 virtual void invalidate()
      +
      1399 {
      +
      1400 digit_count = 0;
      +
      1401 has_separators = false;
      + +
      1403 }
      +
      1404
      +
      1405 public:
      + + +
      1408
      +
      1409 protected:
      +
      1410 std::shared_ptr<basic_integer10<T>> m_digits;
      +
      1411 std::shared_ptr<basic_set<T>> m_separator;
      +
      1412 };
      +
      1413
      + + +
      1416#ifdef _UNICODE
      +
      1417 using tinteger10ts = winteger10ts;
      +
      1418#else
      +
      1419 using tinteger10ts = integer10ts;
      +
      1420#endif
      + +
      1422
      +
      1426 template <class T>
      + +
      1428 {
      +
      1429 public:
      + +
      1431 _In_ const std::shared_ptr<basic_tester<T>>& digit_0,
      +
      1432 _In_ const std::shared_ptr<basic_tester<T>>& digit_1,
      +
      1433 _In_ const std::shared_ptr<basic_tester<T>>& digit_2,
      +
      1434 _In_ const std::shared_ptr<basic_tester<T>>& digit_3,
      +
      1435 _In_ const std::shared_ptr<basic_tester<T>>& digit_4,
      +
      1436 _In_ const std::shared_ptr<basic_tester<T>>& digit_5,
      +
      1437 _In_ const std::shared_ptr<basic_tester<T>>& digit_6,
      +
      1438 _In_ const std::shared_ptr<basic_tester<T>>& digit_7,
      +
      1439 _In_ const std::shared_ptr<basic_tester<T>>& digit_8,
      +
      1440 _In_ const std::shared_ptr<basic_tester<T>>& digit_9,
      +
      1441 _In_ const std::shared_ptr<basic_tester<T>>& digit_10,
      +
      1442 _In_ const std::shared_ptr<basic_tester<T>>& digit_11,
      +
      1443 _In_ const std::shared_ptr<basic_tester<T>>& digit_12,
      +
      1444 _In_ const std::shared_ptr<basic_tester<T>>& digit_13,
      +
      1445 _In_ const std::shared_ptr<basic_tester<T>>& digit_14,
      +
      1446 _In_ const std::shared_ptr<basic_tester<T>>& digit_15,
      +
      1447 _In_ const std::locale& locale = std::locale()) :
      +
      1448 basic_integer<T>(locale),
      +
      1449 m_digit_0(digit_0),
      +
      1450 m_digit_1(digit_1),
      +
      1451 m_digit_2(digit_2),
      +
      1452 m_digit_3(digit_3),
      +
      1453 m_digit_4(digit_4),
      +
      1454 m_digit_5(digit_5),
      +
      1455 m_digit_6(digit_6),
      +
      1456 m_digit_7(digit_7),
      +
      1457 m_digit_8(digit_8),
      +
      1458 m_digit_9(digit_9),
      +
      1459 m_digit_10(digit_10),
      +
      1460 m_digit_11(digit_11),
      +
      1461 m_digit_12(digit_12),
      +
      1462 m_digit_13(digit_13),
      +
      1463 m_digit_14(digit_14),
      +
      1464 m_digit_15(digit_15)
      +
      1465 {}
      +
      1466
      +
      1467 virtual bool match(
      +
      1468 _In_reads_or_z_(end) const T* text,
      +
      1469 _In_ size_t start = 0,
      +
      1470 _In_ size_t end = (size_t)-1,
      +
      1471 _In_ int flags = match_default)
      +
      1472 {
      +
      1473 assert(text || start >= end);
      +
      1474 for (interval.end = start, value = 0; interval.end < end && text[interval.end];) {
      +
      1475 size_t dig;
      +
      1476 if (m_digit_0->match(text, interval.end, end, flags)) { dig = 0; interval.end = m_digit_0->interval.end; }
      +
      1477 else if (m_digit_1->match(text, interval.end, end, flags)) { dig = 1; interval.end = m_digit_1->interval.end; }
      +
      1478 else if (m_digit_2->match(text, interval.end, end, flags)) { dig = 2; interval.end = m_digit_2->interval.end; }
      +
      1479 else if (m_digit_3->match(text, interval.end, end, flags)) { dig = 3; interval.end = m_digit_3->interval.end; }
      +
      1480 else if (m_digit_4->match(text, interval.end, end, flags)) { dig = 4; interval.end = m_digit_4->interval.end; }
      +
      1481 else if (m_digit_5->match(text, interval.end, end, flags)) { dig = 5; interval.end = m_digit_5->interval.end; }
      +
      1482 else if (m_digit_6->match(text, interval.end, end, flags)) { dig = 6; interval.end = m_digit_6->interval.end; }
      +
      1483 else if (m_digit_7->match(text, interval.end, end, flags)) { dig = 7; interval.end = m_digit_7->interval.end; }
      +
      1484 else if (m_digit_8->match(text, interval.end, end, flags)) { dig = 8; interval.end = m_digit_8->interval.end; }
      +
      1485 else if (m_digit_9->match(text, interval.end, end, flags)) { dig = 9; interval.end = m_digit_9->interval.end; }
      +
      1486 else if (m_digit_10->match(text, interval.end, end, flags)) { dig = 10; interval.end = m_digit_10->interval.end; }
      +
      1487 else if (m_digit_11->match(text, interval.end, end, flags)) { dig = 11; interval.end = m_digit_11->interval.end; }
      +
      1488 else if (m_digit_12->match(text, interval.end, end, flags)) { dig = 12; interval.end = m_digit_12->interval.end; }
      +
      1489 else if (m_digit_13->match(text, interval.end, end, flags)) { dig = 13; interval.end = m_digit_13->interval.end; }
      +
      1490 else if (m_digit_14->match(text, interval.end, end, flags)) { dig = 14; interval.end = m_digit_14->interval.end; }
      +
      1491 else if (m_digit_15->match(text, interval.end, end, flags)) { dig = 15; interval.end = m_digit_15->interval.end; }
      +
      1492 else break;
      +
      1493 value = value * 16 + dig;
      +
      1494 }
      +
      1495 if (start < interval.end) {
      +
      1496 interval.start = start;
      +
      1497 return true;
      +
      1498 }
      +
      1499 interval.start = (interval.end = start) + 1;
      +
      1500 return false;
      +
      1501 }
      +
      1502
      +
      1503 protected:
      +
      1504 std::shared_ptr<basic_tester<T>>
      +
      1505 m_digit_0,
      +
      1506 m_digit_1,
      +
      1507 m_digit_2,
      +
      1508 m_digit_3,
      +
      1509 m_digit_4,
      +
      1510 m_digit_5,
      +
      1511 m_digit_6,
      +
      1512 m_digit_7,
      +
      1513 m_digit_8,
      +
      1514 m_digit_9,
      +
      1515 m_digit_10,
      +
      1516 m_digit_11,
      +
      1517 m_digit_12,
      +
      1518 m_digit_13,
      +
      1519 m_digit_14,
      +
      1520 m_digit_15;
      +
      1521 };
      +
      1522
      + + +
      1525#ifdef _UNICODE
      +
      1526 using tinteger16 = winteger16;
      +
      1527#else
      +
      1528 using tinteger16 = integer16;
      +
      1529#endif
      + +
      1531
      +
      1535 template <class T>
      + +
      1537 {
      +
      1538 public:
      + +
      1540 _In_ const std::shared_ptr<basic_tester<T>>& digit_1,
      +
      1541 _In_ const std::shared_ptr<basic_tester<T>>& digit_5,
      +
      1542 _In_ const std::shared_ptr<basic_tester<T>>& digit_10,
      +
      1543 _In_ const std::shared_ptr<basic_tester<T>>& digit_50,
      +
      1544 _In_ const std::shared_ptr<basic_tester<T>>& digit_100,
      +
      1545 _In_ const std::shared_ptr<basic_tester<T>>& digit_500,
      +
      1546 _In_ const std::shared_ptr<basic_tester<T>>& digit_1000,
      +
      1547 _In_ const std::shared_ptr<basic_tester<T>>& digit_5000,
      +
      1548 _In_ const std::shared_ptr<basic_tester<T>>& digit_10000,
      +
      1549 _In_ const std::locale& locale = std::locale()) :
      +
      1550 basic_integer<T>(locale),
      +
      1551 m_digit_1(digit_1),
      +
      1552 m_digit_5(digit_5),
      +
      1553 m_digit_10(digit_10),
      +
      1554 m_digit_50(digit_50),
      +
      1555 m_digit_100(digit_100),
      +
      1556 m_digit_500(digit_500),
      +
      1557 m_digit_1000(digit_1000),
      +
      1558 m_digit_5000(digit_5000),
      +
      1559 m_digit_10000(digit_10000)
      +
      1560 {}
      +
      1561
      +
      1562 virtual bool match(
      +
      1563 _In_reads_or_z_(end) const T* text,
      +
      1564 _In_ size_t start = 0,
      +
      1565 _In_ size_t end = (size_t)-1,
      +
      1566 _In_ int flags = match_default)
      +
      1567 {
      +
      1568 assert(text || start >= end);
      +
      1569 size_t
      +
      1570 dig[5] = { (size_t)-1, (size_t)-1, (size_t)-1, (size_t)-1, (size_t)-1 },
      +
      1571 end2;
      +
      1572
      +
      1573 for (interval.end = start, value = 0; interval.end < end && text[interval.end]; dig[3] = dig[2], dig[2] = dig[1], dig[1] = dig[0], interval.end = end2) {
      +
      1574 if (m_digit_1 && m_digit_1->match(text, interval.end, end, flags)) { dig[0] = 1; end2 = m_digit_1->interval.end; }
      +
      1575 else if (m_digit_5 && m_digit_5->match(text, interval.end, end, flags)) { dig[0] = 5; end2 = m_digit_5->interval.end; }
      +
      1576 else if (m_digit_10 && m_digit_10->match(text, interval.end, end, flags)) { dig[0] = 10; end2 = m_digit_10->interval.end; }
      +
      1577 else if (m_digit_50 && m_digit_50->match(text, interval.end, end, flags)) { dig[0] = 50; end2 = m_digit_50->interval.end; }
      +
      1578 else if (m_digit_100 && m_digit_100->match(text, interval.end, end, flags)) { dig[0] = 100; end2 = m_digit_100->interval.end; }
      +
      1579 else if (m_digit_500 && m_digit_500->match(text, interval.end, end, flags)) { dig[0] = 500; end2 = m_digit_500->interval.end; }
      +
      1580 else if (m_digit_1000 && m_digit_1000->match(text, interval.end, end, flags)) { dig[0] = 1000; end2 = m_digit_1000->interval.end; }
      +
      1581 else if (m_digit_5000 && m_digit_5000->match(text, interval.end, end, flags)) { dig[0] = 5000; end2 = m_digit_5000->interval.end; }
      +
      1582 else if (m_digit_10000 && m_digit_10000->match(text, interval.end, end, flags)) { dig[0] = 10000; end2 = m_digit_10000->interval.end; }
      +
      1583 else break;
      +
      1584
      +
      1585 // Store first digit.
      +
      1586 if (dig[4] == (size_t)-1) dig[4] = dig[0];
      +
      1587
      +
      1588 if (dig[3] == dig[2] && dig[2] == dig[1] && dig[1] == dig[0] && dig[0] != dig[4]) {
      +
      1589 // Same digit repeated four times. No-go, unless first digit. E.g. XIIII vs. XIV. MMMMMCD allowed, IIII also...
      +
      1590 break;
      +
      1591 }
      +
      1592 if (dig[0] <= dig[1]) {
      +
      1593 // Digit is less or equal previous one: add.
      +
      1594 value += dig[0];
      +
      1595 }
      +
      1596 else if (
      +
      1597 dig[1] == 1 && (dig[0] == 5 || dig[0] == 10) ||
      +
      1598 dig[1] == 10 && (dig[0] == 50 || dig[0] == 100) ||
      +
      1599 dig[1] == 100 && (dig[0] == 500 || dig[0] == 1000) ||
      +
      1600 dig[1] == 1000 && (dig[0] == 5000 || dig[0] == 10000))
      +
      1601 {
      +
      1602 // Digit is up to two orders bigger than previous one: subtract. But...
      +
      1603 if (dig[2] < dig[0]) {
      +
      1604 // Digit is also bigger than pre-previous one. E.g. VIX (V < X => invalid)
      +
      1605 break;
      +
      1606 }
      +
      1607 value -= dig[1]; // Cancel addition in the previous step.
      +
      1608 dig[0] -= dig[1]; // Combine last two digits.
      +
      1609 dig[1] = dig[2]; // The true previous digit is now pre-previous one. :)
      +
      1610 dig[2] = dig[3]; // The true pre-previous digit is now pre-pre-previous one. :)
      +
      1611 value += dig[0]; // Add combined value.
      +
      1612 }
      +
      1613 else {
      +
      1614 // New digit is too big than the previous one. E.g. VX (V < X => invalid)
      +
      1615 break;
      +
      1616 }
      +
      1617 }
      +
      1618 if (value) {
      +
      1619 interval.start = start;
      +
      1620 return true;
      +
      1621 }
      +
      1622 interval.start = (interval.end = start) + 1;
      +
      1623 return false;
      +
      1624 }
      +
      1625
      +
      1626 protected:
      +
      1627 std::shared_ptr<basic_tester<T>>
      +
      1628 m_digit_1,
      +
      1629 m_digit_5,
      +
      1630 m_digit_10,
      +
      1631 m_digit_50,
      +
      1632 m_digit_100,
      +
      1633 m_digit_500,
      +
      1634 m_digit_1000,
      +
      1635 m_digit_5000,
      +
      1636 m_digit_10000;
      +
      1637 };
      +
      1638
      + + +
      1641#ifdef _UNICODE
      + +
      1643#else
      + +
      1645#endif
      + +
      1647
      +
      1651 template <class T>
      + +
      1653 {
      +
      1654 public:
      + +
      1656 _In_ const std::shared_ptr<basic_tester<T>>& _numerator,
      +
      1657 _In_ const std::shared_ptr<basic_tester<T>>& _fraction_line,
      +
      1658 _In_ const std::shared_ptr<basic_tester<T>>& _denominator,
      +
      1659 _In_ const std::locale& locale = std::locale()) :
      +
      1660 basic_tester<T>(locale),
      +
      1661 numerator(_numerator),
      +
      1662 fraction_line(_fraction_line),
      +
      1663 denominator(_denominator)
      +
      1664 {}
      +
      1665
      +
      1666 virtual bool match(
      +
      1667 _In_reads_or_z_(end) const T* text,
      +
      1668 _In_ size_t start = 0,
      +
      1669 _In_ size_t end = (size_t)-1,
      +
      1670 _In_ int flags = match_default)
      +
      1671 {
      +
      1672 assert(text || start >= end);
      +
      1673 if (numerator->match(text, start, end, flags) &&
      +
      1674 fraction_line->match(text, numerator->interval.end, end, flags) &&
      +
      1675 denominator->match(text, fraction_line->interval.end, end, flags))
      +
      1676 {
      +
      1677 interval.start = start;
      +
      1678 interval.end = denominator->interval.end;
      +
      1679 return true;
      +
      1680 }
      +
      1681 numerator->invalidate();
      +
      1682 fraction_line->invalidate();
      +
      1683 denominator->invalidate();
      +
      1684 interval.start = (interval.end = start) + 1;
      +
      1685 return false;
      +
      1686 }
      +
      1687
      +
      1688 virtual void invalidate()
      +
      1689 {
      +
      1690 numerator->invalidate();
      +
      1691 fraction_line->invalidate();
      +
      1692 denominator->invalidate();
      + +
      1694 }
      +
      1695
      +
      1696 public:
      +
      1697 std::shared_ptr<basic_tester<T>> numerator;
      +
      1698 std::shared_ptr<basic_tester<T>> fraction_line;
      +
      1699 std::shared_ptr<basic_tester<T>> denominator;
      +
      1700 };
      +
      1701
      + + +
      1704#ifdef _UNICODE
      +
      1705 using tfraction = wfraction;
      +
      1706#else
      +
      1707 using tfraction = fraction;
      +
      1708#endif
      + +
      1710
      +
      1714 template <class T>
      +
      1715 class basic_score : public basic_tester<T>
      +
      1716 {
      +
      1717 public:
      + +
      1719 _In_ const std::shared_ptr<basic_tester<T>>& _home,
      +
      1720 _In_ const std::shared_ptr<basic_tester<T>>& _separator,
      +
      1721 _In_ const std::shared_ptr<basic_tester<T>>& _guest,
      +
      1722 _In_ const std::shared_ptr<basic_tester<T>>& space,
      +
      1723 _In_ const std::locale& locale = std::locale()) :
      +
      1724 basic_tester<T>(locale),
      +
      1725 home(_home),
      +
      1726 separator(_separator),
      +
      1727 guest(_guest),
      +
      1728 m_space(space)
      +
      1729 {}
      +
      1730
      +
      1731 virtual bool match(
      +
      1732 _In_reads_or_z_(end) const T* text,
      +
      1733 _In_ size_t start = 0,
      +
      1734 _In_ size_t end = (size_t)-1,
      +
      1735 _In_ int flags = match_default)
      +
      1736 {
      +
      1737 assert(text || start >= end);
      +
      1738 interval.end = start;
      +
      1739
      +
      1740 if (home->match(text, interval.end, end, flags))
      +
      1741 interval.end = home->interval.end;
      +
      1742 else
      +
      1743 goto end;
      +
      1744
      +
      1745 const int space_match_flags = flags & ~match_multiline; // Spaces in score must never be broken in new line.
      +
      1746 for (; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      1747
      +
      1748 if (separator->match(text, interval.end, end, flags))
      +
      1749 interval.end = separator->interval.end;
      +
      1750 else
      +
      1751 goto end;
      +
      1752
      +
      1753 for (; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      1754
      +
      1755 if (guest->match(text, interval.end, end, flags))
      +
      1756 interval.end = guest->interval.end;
      +
      1757 else
      +
      1758 goto end;
      +
      1759
      +
      1760 interval.start = start;
      +
      1761 return true;
      +
      1762
      +
      1763 end:
      +
      1764 home->invalidate();
      +
      1765 separator->invalidate();
      +
      1766 guest->invalidate();
      +
      1767 interval.start = (interval.end = start) + 1;
      +
      1768 return false;
      +
      1769 }
      +
      1770
      +
      1771 virtual void invalidate()
      +
      1772 {
      +
      1773 home->invalidate();
      +
      1774 separator->invalidate();
      +
      1775 guest->invalidate();
      + +
      1777 }
      +
      1778
      +
      1779 public:
      +
      1780 std::shared_ptr<basic_tester<T>> home;
      +
      1781 std::shared_ptr<basic_tester<T>> separator;
      +
      1782 std::shared_ptr<basic_tester<T>> guest;
      +
      1783
      +
      1784 protected:
      +
      1785 std::shared_ptr<basic_tester<T>> m_space;
      +
      1786 };
      +
      1787
      +
      1788 using score = basic_score<char>;
      + +
      1790#ifdef _UNICODE
      +
      1791 using tscore = wscore;
      +
      1792#else
      +
      1793 using tscore = score;
      +
      1794#endif
      + +
      1796
      +
      1800 template <class T>
      + +
      1802 {
      +
      1803 public:
      + +
      1805 _In_ const std::shared_ptr<basic_tester<T>>& _positive_sign,
      +
      1806 _In_ const std::shared_ptr<basic_tester<T>>& _negative_sign,
      +
      1807 _In_ const std::shared_ptr<basic_tester<T>>& _special_sign,
      +
      1808 _In_ const std::shared_ptr<basic_tester<T>>& _number,
      +
      1809 _In_ const std::locale& locale = std::locale()) :
      +
      1810 basic_tester<T>(locale),
      +
      1811 positive_sign(_positive_sign),
      +
      1812 negative_sign(_negative_sign),
      +
      1813 special_sign(_special_sign),
      +
      1814 number(_number)
      +
      1815 {}
      +
      1816
      +
      1817 virtual bool match(
      +
      1818 _In_reads_or_z_(end) const T* text,
      +
      1819 _In_ size_t start = 0,
      +
      1820 _In_ size_t end = (size_t)-1,
      +
      1821 _In_ int flags = match_default)
      +
      1822 {
      +
      1823 assert(text || start >= end);
      +
      1824 interval.end = start;
      +
      1825 if (positive_sign && positive_sign->match(text, interval.end, end, flags)) {
      +
      1826 interval.end = positive_sign->interval.end;
      +
      1827 if (negative_sign) negative_sign->invalidate();
      +
      1828 if (special_sign) special_sign->invalidate();
      +
      1829 }
      +
      1830 else if (negative_sign && negative_sign->match(text, interval.end, end, flags)) {
      +
      1831 interval.end = negative_sign->interval.end;
      +
      1832 if (positive_sign) positive_sign->invalidate();
      +
      1833 if (special_sign) special_sign->invalidate();
      +
      1834 }
      +
      1835 else if (special_sign && special_sign->match(text, interval.end, end, flags)) {
      +
      1836 interval.end = special_sign->interval.end;
      +
      1837 if (positive_sign) positive_sign->invalidate();
      +
      1838 if (negative_sign) negative_sign->invalidate();
      +
      1839 }
      +
      1840 else {
      +
      1841 if (positive_sign) positive_sign->invalidate();
      +
      1842 if (negative_sign) negative_sign->invalidate();
      +
      1843 if (special_sign) special_sign->invalidate();
      +
      1844 }
      +
      1845 if (number->match(text, interval.end, end, flags)) {
      +
      1846 interval.start = start;
      +
      1847 interval.end = number->interval.end;
      +
      1848 return true;
      +
      1849 }
      +
      1850 if (positive_sign) positive_sign->invalidate();
      +
      1851 if (negative_sign) negative_sign->invalidate();
      +
      1852 if (special_sign) special_sign->invalidate();
      +
      1853 number->invalidate();
      +
      1854 interval.start = (interval.end = start) + 1;
      +
      1855 return false;
      +
      1856 }
      +
      1857
      +
      1858 virtual void invalidate()
      +
      1859 {
      +
      1860 if (positive_sign) positive_sign->invalidate();
      +
      1861 if (negative_sign) negative_sign->invalidate();
      +
      1862 if (special_sign) special_sign->invalidate();
      +
      1863 number->invalidate();
      + +
      1865 }
      +
      1866
      +
      1867 public:
      +
      1868 std::shared_ptr<basic_tester<T>> positive_sign;
      +
      1869 std::shared_ptr<basic_tester<T>> negative_sign;
      +
      1870 std::shared_ptr<basic_tester<T>> special_sign;
      +
      1871 std::shared_ptr<basic_tester<T>> number;
      +
      1872 };
      +
      1873
      + + +
      1876#ifdef _UNICODE
      + +
      1878#else
      + +
      1880#endif
      + +
      1882
      +
      1886 template <class T>
      + +
      1888 {
      +
      1889 public:
      + +
      1891 _In_ const std::shared_ptr<basic_tester<T>>& _positive_sign,
      +
      1892 _In_ const std::shared_ptr<basic_tester<T>>& _negative_sign,
      +
      1893 _In_ const std::shared_ptr<basic_tester<T>>& _special_sign,
      +
      1894 _In_ const std::shared_ptr<basic_tester<T>>& _integer,
      +
      1895 _In_ const std::shared_ptr<basic_tester<T>>& space,
      +
      1896 _In_ const std::shared_ptr<basic_tester<T>>& _fraction,
      +
      1897 _In_ const std::locale& locale = std::locale()) :
      +
      1898 basic_tester<T>(locale),
      +
      1899 positive_sign(_positive_sign),
      +
      1900 negative_sign(_negative_sign),
      +
      1901 special_sign(_special_sign),
      +
      1902 integer(_integer),
      +
      1903 fraction(_fraction),
      +
      1904 m_space(space)
      +
      1905 {}
      +
      1906
      +
      1907 virtual bool match(
      +
      1908 _In_reads_or_z_(end) const T* text,
      +
      1909 _In_ size_t start = 0,
      +
      1910 _In_ size_t end = (size_t)-1,
      +
      1911 _In_ int flags = match_default)
      +
      1912 {
      +
      1913 assert(text || start >= end);
      +
      1914 interval.end = start;
      +
      1915
      +
      1916 if (positive_sign && positive_sign->match(text, interval.end, end, flags)) {
      +
      1917 interval.end = positive_sign->interval.end;
      +
      1918 if (negative_sign) negative_sign->invalidate();
      +
      1919 if (special_sign) special_sign->invalidate();
      +
      1920 }
      +
      1921 else if (negative_sign && negative_sign->match(text, interval.end, end, flags)) {
      +
      1922 interval.end = negative_sign->interval.end;
      +
      1923 if (positive_sign) positive_sign->invalidate();
      +
      1924 if (special_sign) special_sign->invalidate();
      +
      1925 }
      +
      1926 else if (special_sign && special_sign->match(text, interval.end, end, flags)) {
      +
      1927 interval.end = special_sign->interval.end;
      +
      1928 if (positive_sign) positive_sign->invalidate();
      +
      1929 if (negative_sign) negative_sign->invalidate();
      +
      1930 }
      +
      1931 else {
      +
      1932 if (positive_sign) positive_sign->invalidate();
      +
      1933 if (negative_sign) negative_sign->invalidate();
      +
      1934 if (special_sign) special_sign->invalidate();
      +
      1935 }
      +
      1936
      +
      1937 // Check for <integer> <fraction>
      +
      1938 const int space_match_flags = flags & ~match_multiline; // Spaces in fractions must never be broken in new line.
      +
      1939 if (integer->match(text, interval.end, end, flags) &&
      +
      1940 m_space->match(text, integer->interval.end, end, space_match_flags))
      +
      1941 {
      +
      1942 for (interval.end = m_space->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      1943 if (fraction->match(text, interval.end, end, flags)) {
      +
      1944 interval.start = start;
      + +
      1946 return true;
      +
      1947 }
      +
      1948 fraction->invalidate();
      +
      1949 interval.start = start;
      +
      1950 interval.end = integer->interval.end;
      +
      1951 return true;
      +
      1952 }
      +
      1953
      +
      1954 // Check for <fraction>
      +
      1955 if (fraction->match(text, interval.end, end, flags)) {
      +
      1956 integer->invalidate();
      +
      1957 interval.start = start;
      + +
      1959 return true;
      +
      1960 }
      +
      1961
      +
      1962 // Check for <integer>
      +
      1963 if (integer->match(text, interval.end, end, flags)) {
      +
      1964 fraction->invalidate();
      +
      1965 interval.start = start;
      +
      1966 interval.end = integer->interval.end;
      +
      1967 return true;
      +
      1968 }
      +
      1969
      +
      1970 if (positive_sign) positive_sign->invalidate();
      +
      1971 if (negative_sign) negative_sign->invalidate();
      +
      1972 if (special_sign) special_sign->invalidate();
      +
      1973 integer->invalidate();
      +
      1974 fraction->invalidate();
      +
      1975 interval.start = (interval.end = start) + 1;
      +
      1976 return false;
      +
      1977 }
      +
      1978
      +
      1979 virtual void invalidate()
      +
      1980 {
      +
      1981 if (positive_sign) positive_sign->invalidate();
      +
      1982 if (negative_sign) negative_sign->invalidate();
      +
      1983 if (special_sign) special_sign->invalidate();
      +
      1984 integer->invalidate();
      +
      1985 fraction->invalidate();
      + +
      1987 }
      +
      1988
      +
      1989 public:
      +
      1990 std::shared_ptr<basic_tester<T>> positive_sign;
      +
      1991 std::shared_ptr<basic_tester<T>> negative_sign;
      +
      1992 std::shared_ptr<basic_tester<T>> special_sign;
      +
      1993 std::shared_ptr<basic_tester<T>> integer;
      +
      1994 std::shared_ptr<basic_tester<T>> fraction;
      +
      1995
      +
      1996 protected:
      +
      1997 std::shared_ptr<basic_tester<T>> m_space;
      +
      1998 };
      +
      1999
      + + +
      2002#ifdef _UNICODE
      + +
      2004#else
      + +
      2006#endif
      + +
      2008
      +
      2012 template <class T>
      + +
      2014 {
      +
      2015 public:
      + +
      2017 _In_ const std::shared_ptr<basic_tester<T>>& _positive_sign,
      +
      2018 _In_ const std::shared_ptr<basic_tester<T>>& _negative_sign,
      +
      2019 _In_ const std::shared_ptr<basic_tester<T>>& _special_sign,
      +
      2020 _In_ const std::shared_ptr<basic_integer<T>>& _integer,
      +
      2021 _In_ const std::shared_ptr<basic_tester<T>>& _decimal_separator,
      +
      2022 _In_ const std::shared_ptr<basic_integer<T>>& _decimal,
      +
      2023 _In_ const std::shared_ptr<basic_tester<T>>& _exponent_symbol,
      +
      2024 _In_ const std::shared_ptr<basic_tester<T>>& _positive_exp_sign,
      +
      2025 _In_ const std::shared_ptr<basic_tester<T>>& _negative_exp_sign,
      +
      2026 _In_ const std::shared_ptr<basic_integer<T>>& _exponent,
      +
      2027 _In_ const std::locale& locale = std::locale()) :
      +
      2028 basic_tester<T>(locale),
      +
      2029 positive_sign(_positive_sign),
      +
      2030 negative_sign(_negative_sign),
      +
      2031 special_sign(_special_sign),
      +
      2032 integer(_integer),
      +
      2033 decimal_separator(_decimal_separator),
      +
      2034 decimal(_decimal),
      +
      2035 exponent_symbol(_exponent_symbol),
      +
      2036 positive_exp_sign(_positive_exp_sign),
      +
      2037 negative_exp_sign(_negative_exp_sign),
      +
      2038 exponent(_exponent),
      +
      2039 value(std::numeric_limits<double>::quiet_NaN())
      +
      2040 {}
      +
      2041
      +
      2042 virtual bool match(
      +
      2043 _In_reads_or_z_(end) const T* text,
      +
      2044 _In_ size_t start = 0,
      +
      2045 _In_ size_t end = (size_t)-1,
      +
      2046 _In_ int flags = match_default)
      +
      2047 {
      +
      2048 assert(text || start >= end);
      +
      2049 interval.end = start;
      +
      2050
      +
      2051 if (positive_sign && positive_sign->match(text, interval.end, end, flags)) {
      +
      2052 interval.end = positive_sign->interval.end;
      +
      2053 if (negative_sign) negative_sign->invalidate();
      +
      2054 if (special_sign) special_sign->invalidate();
      +
      2055 }
      +
      2056 else if (negative_sign && negative_sign->match(text, interval.end, end, flags)) {
      +
      2057 interval.end = negative_sign->interval.end;
      +
      2058 if (positive_sign) positive_sign->invalidate();
      +
      2059 if (special_sign) special_sign->invalidate();
      +
      2060 }
      +
      2061 else if (special_sign && special_sign->match(text, interval.end, end, flags)) {
      +
      2062 interval.end = special_sign->interval.end;
      +
      2063 if (positive_sign) positive_sign->invalidate();
      +
      2064 if (negative_sign) negative_sign->invalidate();
      +
      2065 }
      +
      2066 else {
      +
      2067 if (positive_sign) positive_sign->invalidate();
      +
      2068 if (negative_sign) negative_sign->invalidate();
      +
      2069 if (special_sign) special_sign->invalidate();
      +
      2070 }
      +
      2071
      +
      2072 if (integer->match(text, interval.end, end, flags))
      +
      2073 interval.end = integer->interval.end;
      +
      2074
      +
      2075 if (decimal_separator->match(text, interval.end, end, flags) &&
      +
      2076 decimal->match(text, decimal_separator->interval.end, end, flags))
      +
      2077 interval.end = decimal->interval.end;
      +
      2078 else {
      +
      2079 decimal_separator->invalidate();
      +
      2080 decimal->invalidate();
      +
      2081 }
      +
      2082
      +
      2083 if (!integer->interval.empty() &&
      +
      2084 decimal->interval.empty())
      +
      2085 {
      +
      2086 // No integer part, no decimal part.
      +
      2087 if (positive_sign) positive_sign->invalidate();
      +
      2088 if (negative_sign) negative_sign->invalidate();
      +
      2089 if (special_sign) special_sign->invalidate();
      +
      2090 integer->invalidate();
      +
      2091 decimal_separator->invalidate();
      +
      2092 decimal->invalidate();
      +
      2093 if (exponent_symbol) exponent_symbol->invalidate();
      +
      2094 if (positive_exp_sign) positive_exp_sign->invalidate();
      +
      2095 if (negative_exp_sign) negative_exp_sign->invalidate();
      +
      2096 if (exponent) exponent->invalidate();
      +
      2097 interval.start = (interval.end = start) + 1;
      +
      2098 return false;
      +
      2099 }
      +
      2100
      +
      2101 if (exponent_symbol && exponent_symbol->match(text, interval.end, end, flags) &&
      +
      2102 (positive_exp_sign && positive_exp_sign->match(text, exponent_symbol->interval.end, end, flags) &&
      +
      2103 exponent && exponent->match(text, positive_exp_sign->interval.end, end, flags) ||
      +
      2104 exponent && exponent->match(text, exponent_symbol->interval.end, end, flags)))
      +
      2105 {
      +
      2106 interval.end = exponent->interval.end;
      +
      2107 if (negative_exp_sign) negative_exp_sign->invalidate();
      +
      2108 }
      +
      2109 else if (exponent_symbol && exponent_symbol->match(text, interval.end, end, flags) &&
      +
      2110 negative_exp_sign && negative_exp_sign->match(text, exponent_symbol->interval.end, end, flags) &&
      +
      2111 exponent && exponent->match(text, negative_exp_sign->interval.end, end, flags))
      +
      2112 {
      +
      2113 interval.end = exponent->interval.end;
      +
      2114 if (positive_exp_sign) positive_exp_sign->invalidate();
      +
      2115 }
      +
      2116 else {
      +
      2117 if (exponent_symbol) exponent_symbol->invalidate();
      +
      2118 if (positive_exp_sign) positive_exp_sign->invalidate();
      +
      2119 if (negative_exp_sign) negative_exp_sign->invalidate();
      +
      2120 if (exponent) exponent->invalidate();
      +
      2121 }
      +
      2122
      +
      2123 value = (double)integer->value;
      +
      2124 if (decimal->interval)
      +
      2125 value += (double)decimal->value * pow(10.0, -(double)decimal->interval.size());
      +
      2126 if (negative_sign && negative_sign->interval)
      +
      2127 value = -value;
      +
      2128 if (exponent && exponent->interval) {
      +
      2129 double e = (double)exponent->value;
      +
      2130 if (negative_exp_sign && negative_exp_sign->interval)
      +
      2131 e = -e;
      +
      2132 value *= pow(10.0, e);
      +
      2133 }
      +
      2134
      +
      2135 interval.start = start;
      +
      2136 return true;
      +
      2137 }
      +
      2138
      +
      2139 virtual void invalidate()
      +
      2140 {
      +
      2141 if (positive_sign) positive_sign->invalidate();
      +
      2142 if (negative_sign) negative_sign->invalidate();
      +
      2143 if (special_sign) special_sign->invalidate();
      +
      2144 integer->invalidate();
      +
      2145 decimal_separator->invalidate();
      +
      2146 decimal->invalidate();
      +
      2147 if (exponent_symbol) exponent_symbol->invalidate();
      +
      2148 if (positive_exp_sign) positive_exp_sign->invalidate();
      +
      2149 if (negative_exp_sign) negative_exp_sign->invalidate();
      +
      2150 if (exponent) exponent->invalidate();
      +
      2151 value = std::numeric_limits<double>::quiet_NaN();
      + +
      2153 }
      +
      2154
      +
      2155 public:
      +
      2156 std::shared_ptr<basic_tester<T>> positive_sign;
      +
      2157 std::shared_ptr<basic_tester<T>> negative_sign;
      +
      2158 std::shared_ptr<basic_tester<T>> special_sign;
      +
      2159 std::shared_ptr<basic_integer<T>> integer;
      +
      2160 std::shared_ptr<basic_tester<T>> decimal_separator;
      +
      2161 std::shared_ptr<basic_integer<T>> decimal;
      +
      2162 std::shared_ptr<basic_tester<T>> exponent_symbol;
      +
      2163 std::shared_ptr<basic_tester<T>> positive_exp_sign;
      +
      2164 std::shared_ptr<basic_tester<T>> negative_exp_sign;
      +
      2165 std::shared_ptr<basic_integer<T>> exponent;
      +
      2166 double value;
      +
      2167 };
      +
      2168
      + + +
      2171#ifdef _UNICODE
      + +
      2173#else
      + +
      2175#endif
      + +
      2177
      +
      2181 template <class T>
      + +
      2183 {
      +
      2184 public:
      + +
      2186 _In_ const std::shared_ptr<basic_tester<T>>& _positive_sign,
      +
      2187 _In_ const std::shared_ptr<basic_tester<T>>& _negative_sign,
      +
      2188 _In_ const std::shared_ptr<basic_tester<T>>& _special_sign,
      +
      2189 _In_ const std::shared_ptr<basic_tester<T>>& _currency,
      +
      2190 _In_ const std::shared_ptr<basic_tester<T>>& _integer,
      +
      2191 _In_ const std::shared_ptr<basic_tester<T>>& _decimal_separator,
      +
      2192 _In_ const std::shared_ptr<basic_tester<T>>& _decimal,
      +
      2193 _In_ const std::locale& locale = std::locale()) :
      +
      2194 basic_tester<T>(locale),
      +
      2195 positive_sign(_positive_sign),
      +
      2196 negative_sign(_negative_sign),
      +
      2197 special_sign(_special_sign),
      +
      2198 currency(_currency),
      +
      2199 integer(_integer),
      +
      2200 decimal_separator(_decimal_separator),
      +
      2201 decimal(_decimal)
      +
      2202 {}
      +
      2203
      +
      2204 virtual bool match(
      +
      2205 _In_reads_or_z_(end) const T* text,
      +
      2206 _In_ size_t start = 0,
      +
      2207 _In_ size_t end = (size_t)-1,
      +
      2208 _In_ int flags = match_default)
      +
      2209 {
      +
      2210 assert(text || start >= end);
      +
      2211 interval.end = start;
      +
      2212
      +
      2213 if (positive_sign->match(text, interval.end, end, flags)) {
      +
      2214 interval.end = positive_sign->interval.end;
      +
      2215 if (negative_sign) negative_sign->invalidate();
      +
      2216 if (special_sign) special_sign->invalidate();
      +
      2217 }
      +
      2218 else if (negative_sign->match(text, interval.end, end, flags)) {
      +
      2219 interval.end = negative_sign->interval.end;
      +
      2220 if (positive_sign) positive_sign->invalidate();
      +
      2221 if (special_sign) special_sign->invalidate();
      +
      2222 }
      +
      2223 else if (special_sign->match(text, interval.end, end, flags)) {
      +
      2224 interval.end = special_sign->interval.end;
      +
      2225 if (positive_sign) positive_sign->invalidate();
      +
      2226 if (negative_sign) negative_sign->invalidate();
      +
      2227 }
      +
      2228 else {
      +
      2229 if (positive_sign) positive_sign->invalidate();
      +
      2230 if (negative_sign) negative_sign->invalidate();
      +
      2231 if (special_sign) special_sign->invalidate();
      +
      2232 }
      +
      2233
      +
      2234 if (currency->match(text, interval.end, end, flags))
      +
      2235 interval.end = currency->interval.end;
      +
      2236 else {
      +
      2237 if (positive_sign) positive_sign->invalidate();
      +
      2238 if (negative_sign) negative_sign->invalidate();
      +
      2239 if (special_sign) special_sign->invalidate();
      +
      2240 integer->invalidate();
      +
      2241 decimal_separator->invalidate();
      +
      2242 decimal->invalidate();
      +
      2243 interval.start = (interval.end = start) + 1;
      +
      2244 return false;
      +
      2245 }
      +
      2246
      +
      2247 if (integer->match(text, interval.end, end, flags))
      +
      2248 interval.end = integer->interval.end;
      +
      2249 if (decimal_separator->match(text, interval.end, end, flags) &&
      +
      2250 decimal->match(text, decimal_separator->interval.end, end, flags))
      +
      2251 interval.end = decimal->interval.end;
      +
      2252 else {
      +
      2253 decimal_separator->invalidate();
      +
      2254 decimal->invalidate();
      +
      2255 }
      +
      2256
      +
      2257 if (integer->interval.empty() &&
      +
      2258 decimal->interval.empty())
      +
      2259 {
      +
      2260 // No integer part, no decimal part.
      +
      2261 if (positive_sign) positive_sign->invalidate();
      +
      2262 if (negative_sign) negative_sign->invalidate();
      +
      2263 if (special_sign) special_sign->invalidate();
      +
      2264 currency->invalidate();
      +
      2265 integer->invalidate();
      +
      2266 decimal_separator->invalidate();
      +
      2267 decimal->invalidate();
      +
      2268 interval.start = (interval.end = start) + 1;
      +
      2269 return false;
      +
      2270 }
      +
      2271
      +
      2272 interval.start = start;
      +
      2273 return true;
      +
      2274 }
      +
      2275
      +
      2276 virtual void invalidate()
      +
      2277 {
      +
      2278 if (positive_sign) positive_sign->invalidate();
      +
      2279 if (negative_sign) negative_sign->invalidate();
      +
      2280 if (special_sign) special_sign->invalidate();
      +
      2281 currency->invalidate();
      +
      2282 integer->invalidate();
      +
      2283 decimal_separator->invalidate();
      +
      2284 decimal->invalidate();
      + +
      2286 }
      +
      2287
      +
      2288 public:
      +
      2289 std::shared_ptr<basic_tester<T>> positive_sign;
      +
      2290 std::shared_ptr<basic_tester<T>> negative_sign;
      +
      2291 std::shared_ptr<basic_tester<T>> special_sign;
      +
      2292 std::shared_ptr<basic_tester<T>> currency;
      +
      2293 std::shared_ptr<basic_tester<T>> integer;
      +
      2294 std::shared_ptr<basic_tester<T>> decimal_separator;
      +
      2295 std::shared_ptr<basic_tester<T>> decimal;
      +
      2296 };
      +
      2297
      + + +
      2300#ifdef _UNICODE
      + +
      2302#else
      + +
      2304#endif
      + +
      2306
      +
      2310 template <class T>
      + +
      2312 {
      +
      2313 public:
      + +
      2315 _In_ const std::shared_ptr<basic_tester<T>>& digit_0,
      +
      2316 _In_ const std::shared_ptr<basic_tester<T>>& digit_1,
      +
      2317 _In_ const std::shared_ptr<basic_tester<T>>& digit_2,
      +
      2318 _In_ const std::shared_ptr<basic_tester<T>>& digit_3,
      +
      2319 _In_ const std::shared_ptr<basic_tester<T>>& digit_4,
      +
      2320 _In_ const std::shared_ptr<basic_tester<T>>& digit_5,
      +
      2321 _In_ const std::shared_ptr<basic_tester<T>>& digit_6,
      +
      2322 _In_ const std::shared_ptr<basic_tester<T>>& digit_7,
      +
      2323 _In_ const std::shared_ptr<basic_tester<T>>& digit_8,
      +
      2324 _In_ const std::shared_ptr<basic_tester<T>>& digit_9,
      +
      2325 _In_ const std::shared_ptr<basic_tester<T>>& separator,
      +
      2326 _In_ const std::locale& locale = std::locale()) :
      +
      2327 basic_tester<T>(locale),
      +
      2328 m_digit_0(digit_0),
      +
      2329 m_digit_1(digit_1),
      +
      2330 m_digit_2(digit_2),
      +
      2331 m_digit_3(digit_3),
      +
      2332 m_digit_4(digit_4),
      +
      2333 m_digit_5(digit_5),
      +
      2334 m_digit_6(digit_6),
      +
      2335 m_digit_7(digit_7),
      +
      2336 m_digit_8(digit_8),
      +
      2337 m_digit_9(digit_9),
      +
      2338 m_separator(separator)
      +
      2339 {
      +
      2340 value.s_addr = 0;
      +
      2341 }
      +
      2342
      +
      2343 virtual bool match(
      +
      2344 _In_reads_or_z_(end) const T* text,
      +
      2345 _In_ size_t start = 0,
      +
      2346 _In_ size_t end = (size_t)-1,
      +
      2347 _In_ int flags = match_default)
      +
      2348 {
      +
      2349 assert(text || start >= end);
      +
      2350 interval.end = start;
      +
      2351 value.s_addr = 0;
      +
      2352
      +
      2353 size_t i;
      +
      2354 for (i = 0; i < 4; i++) {
      +
      2355 if (i) {
      +
      2356 if (m_separator->match(text, interval.end, end, flags))
      +
      2357 interval.end = m_separator->interval.end;
      +
      2358 else
      +
      2359 goto error;
      +
      2360 }
      +
      2361
      +
      2362 components[i].start = interval.end;
      +
      2363 bool is_empty = true;
      +
      2364 size_t x;
      +
      2365 for (x = 0; interval.end < end && text[interval.end];) {
      +
      2366 size_t dig, digit_end;
      +
      2367 if (m_digit_0->match(text, interval.end, end, flags)) { dig = 0; digit_end = m_digit_0->interval.end; }
      +
      2368 else if (m_digit_1->match(text, interval.end, end, flags)) { dig = 1; digit_end = m_digit_1->interval.end; }
      +
      2369 else if (m_digit_2->match(text, interval.end, end, flags)) { dig = 2; digit_end = m_digit_2->interval.end; }
      +
      2370 else if (m_digit_3->match(text, interval.end, end, flags)) { dig = 3; digit_end = m_digit_3->interval.end; }
      +
      2371 else if (m_digit_4->match(text, interval.end, end, flags)) { dig = 4; digit_end = m_digit_4->interval.end; }
      +
      2372 else if (m_digit_5->match(text, interval.end, end, flags)) { dig = 5; digit_end = m_digit_5->interval.end; }
      +
      2373 else if (m_digit_6->match(text, interval.end, end, flags)) { dig = 6; digit_end = m_digit_6->interval.end; }
      +
      2374 else if (m_digit_7->match(text, interval.end, end, flags)) { dig = 7; digit_end = m_digit_7->interval.end; }
      +
      2375 else if (m_digit_8->match(text, interval.end, end, flags)) { dig = 8; digit_end = m_digit_8->interval.end; }
      +
      2376 else if (m_digit_9->match(text, interval.end, end, flags)) { dig = 9; digit_end = m_digit_9->interval.end; }
      +
      2377 else break;
      +
      2378 size_t x_n = x * 10 + dig;
      +
      2379 if (x_n <= 255) {
      +
      2380 x = x_n;
      +
      2381 interval.end = digit_end;
      +
      2382 is_empty = false;
      +
      2383 }
      +
      2384 else
      +
      2385 break;
      +
      2386 }
      +
      2387 if (is_empty)
      +
      2388 goto error;
      +
      2389 components[i].end = interval.end;
      +
      2390 value.s_addr = (value.s_addr << 8) | (uint8_t)x;
      +
      2391 }
      +
      2392 if (i < 4)
      +
      2393 goto error;
      +
      2394
      +
      2395 interval.start = start;
      +
      2396 return true;
      +
      2397
      +
      2398 error:
      +
      2399 components[0].start = 1;
      +
      2400 components[0].end = 0;
      +
      2401 components[1].start = 1;
      +
      2402 components[1].end = 0;
      +
      2403 components[2].start = 1;
      +
      2404 components[2].end = 0;
      +
      2405 components[3].start = 1;
      +
      2406 components[3].end = 0;
      +
      2407 value = 0;
      +
      2408 interval.start = (interval.end = start) + 1;
      +
      2409 return false;
      +
      2410 }
      +
      2411
      +
      2412 virtual void invalidate()
      +
      2413 {
      +
      2414 components[0].start = 1;
      +
      2415 components[0].end = 0;
      +
      2416 components[1].start = 1;
      +
      2417 components[1].end = 0;
      +
      2418 components[2].start = 1;
      +
      2419 components[2].end = 0;
      +
      2420 components[3].start = 1;
      +
      2421 components[3].end = 0;
      +
      2422 value = 0;
      + +
      2424 }
      +
      2425
      +
      2426 public:
      + +
      2428 struct in_addr value;
      +
      2429
      +
      2430 protected:
      +
      2431 std::shared_ptr<basic_tester<T>>
      +
      2432 m_digit_0,
      +
      2433 m_digit_1,
      +
      2434 m_digit_2,
      +
      2435 m_digit_3,
      +
      2436 m_digit_4,
      +
      2437 m_digit_5,
      +
      2438 m_digit_6,
      +
      2439 m_digit_7,
      +
      2440 m_digit_8,
      +
      2441 m_digit_9;
      +
      2442 std::shared_ptr<basic_tester<T>> m_separator;
      +
      2443 };
      +
      2444
      + + +
      2447#ifdef _UNICODE
      + +
      2449#else
      + +
      2451#endif
      + +
      2453
      +
      2457 template <class T>
      + +
      2459 {
      +
      2460 public:
      +
      2461 basic_ipv6_scope_id_char(_In_ const std::locale& locale = std::locale()) : basic_tester<T>(locale)
      +
      2462 {}
      +
      2463
      +
      2464 virtual bool match(
      +
      2465 _In_reads_or_z_(end) const T* text,
      +
      2466 _In_ size_t start = 0,
      +
      2467 _In_ size_t end = (size_t)-1,
      +
      2468 _In_ int flags = match_default)
      +
      2469 {
      +
      2470 assert(text || start >= end);
      +
      2471 if (start < end && text[start]) {
      +
      2472 if (text[start] == '-' ||
      +
      2473 text[start] == '_' ||
      +
      2474 text[start] == ':' ||
      +
      2475 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
      +
      2476 {
      +
      2477 interval.end = (interval.start = start) + 1;
      +
      2478 return true;
      +
      2479 }
      +
      2480 }
      +
      2481 interval.start = (interval.end = start) + 1;
      +
      2482 return false;
      +
      2483 }
      +
      2484 };
      +
      2485
      + + +
      2488#ifdef _UNICODE
      + +
      2490#else
      + +
      2492#endif
      +
      2493
      + +
      2498 {
      +
      2499 public:
      +
      2500 sgml_ipv6_scope_id_char(_In_ const std::locale& locale = std::locale()) : sgml_tester(locale)
      +
      2501 {}
      +
      2502
      +
      2503 virtual bool match(
      +
      2504 _In_reads_or_z_(end) const char* text,
      +
      2505 _In_ size_t start = 0,
      +
      2506 _In_ size_t end = (size_t)-1,
      +
      2507 _In_ int flags = match_default)
      +
      2508 {
      +
      2509 assert(text || start >= end);
      +
      2510 if (start < end && text[start]) {
      +
      2511 wchar_t buf[3];
      +
      2512 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      2513 const wchar_t* chr_end = chr + stdex::strlen(chr);
      +
      2514 if ((chr[0] == L'-' ||
      +
      2515 chr[0] == L'_' ||
      +
      2516 chr[0] == L':') && chr[1] == 0 ||
      +
      2517 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::alnum, chr, chr_end) == chr_end)
      +
      2518 {
      +
      2519 interval.start = start;
      +
      2520 return true;
      +
      2521 }
      +
      2522 }
      +
      2523 interval.start = (interval.end = start) + 1;
      +
      2524 return false;
      +
      2525 }
      +
      2526 };
      +
      2527
      +
      2531 template <class T>
      + +
      2533 {
      +
      2534 public:
      + +
      2536 _In_ const std::shared_ptr<basic_tester<T>>& digit_0,
      +
      2537 _In_ const std::shared_ptr<basic_tester<T>>& digit_1,
      +
      2538 _In_ const std::shared_ptr<basic_tester<T>>& digit_2,
      +
      2539 _In_ const std::shared_ptr<basic_tester<T>>& digit_3,
      +
      2540 _In_ const std::shared_ptr<basic_tester<T>>& digit_4,
      +
      2541 _In_ const std::shared_ptr<basic_tester<T>>& digit_5,
      +
      2542 _In_ const std::shared_ptr<basic_tester<T>>& digit_6,
      +
      2543 _In_ const std::shared_ptr<basic_tester<T>>& digit_7,
      +
      2544 _In_ const std::shared_ptr<basic_tester<T>>& digit_8,
      +
      2545 _In_ const std::shared_ptr<basic_tester<T>>& digit_9,
      +
      2546 _In_ const std::shared_ptr<basic_tester<T>>& digit_10,
      +
      2547 _In_ const std::shared_ptr<basic_tester<T>>& digit_11,
      +
      2548 _In_ const std::shared_ptr<basic_tester<T>>& digit_12,
      +
      2549 _In_ const std::shared_ptr<basic_tester<T>>& digit_13,
      +
      2550 _In_ const std::shared_ptr<basic_tester<T>>& digit_14,
      +
      2551 _In_ const std::shared_ptr<basic_tester<T>>& digit_15,
      +
      2552 _In_ const std::shared_ptr<basic_tester<T>>& separator,
      +
      2553 _In_ const std::shared_ptr<basic_tester<T>>& scope_id_separator = nullptr,
      +
      2554 _In_ const std::shared_ptr<basic_tester<T>>& _scope_id = nullptr,
      +
      2555 _In_ const std::locale& locale = std::locale()) :
      +
      2556 basic_tester<T>(locale),
      +
      2557 m_digit_0(digit_0),
      +
      2558 m_digit_1(digit_1),
      +
      2559 m_digit_2(digit_2),
      +
      2560 m_digit_3(digit_3),
      +
      2561 m_digit_4(digit_4),
      +
      2562 m_digit_5(digit_5),
      +
      2563 m_digit_6(digit_6),
      +
      2564 m_digit_7(digit_7),
      +
      2565 m_digit_8(digit_8),
      +
      2566 m_digit_9(digit_9),
      +
      2567 m_digit_10(digit_10),
      +
      2568 m_digit_11(digit_11),
      +
      2569 m_digit_12(digit_12),
      +
      2570 m_digit_13(digit_13),
      +
      2571 m_digit_14(digit_14),
      +
      2572 m_digit_15(digit_15),
      +
      2573 m_separator(separator),
      +
      2574 m_scope_id_separator(scope_id_separator),
      +
      2575 scope_id(_scope_id)
      +
      2576 {
      +
      2577 memset(value, 0, sizeof(value));
      +
      2578 }
      +
      2579
      +
      2580 virtual bool match(
      +
      2581 _In_reads_or_z_(end) const T* text,
      +
      2582 _In_ size_t start = 0,
      +
      2583 _In_ size_t end = (size_t)-1,
      +
      2584 _In_ int flags = match_default)
      +
      2585 {
      +
      2586 assert(text || start >= end);
      +
      2587 interval.end = start;
      +
      2588 memset(value, 0, sizeof(value));
      +
      2589
      +
      2590 size_t i, compaction_i = (size_t)-1, compaction_start = start;
      +
      2591 for (i = 0; i < 8; i++) {
      +
      2592 bool is_empty = true;
      +
      2593
      +
      2594 if (m_separator->match(text, interval.end, end, flags)) {
      +
      2595 if (m_separator->match(text, m_separator->interval.end, end, flags)) {
      +
      2596 // :: found
      +
      2597 if (compaction_i == (size_t)-1) {
      +
      2598 // Zero compaction start
      +
      2599 compaction_i = i;
      +
      2600 compaction_start = m_separator->interval.start;
      +
      2601 interval.end = m_separator->interval.end;
      +
      2602 }
      +
      2603 else {
      +
      2604 // More than one zero compaction
      +
      2605 break;
      +
      2606 }
      +
      2607 }
      +
      2608 else if (i) {
      +
      2609 // Inner : found
      +
      2610 interval.end = m_separator->interval.end;
      +
      2611 }
      +
      2612 else {
      +
      2613 // Leading : found
      +
      2614 goto error;
      +
      2615 }
      +
      2616 }
      +
      2617 else if (i) {
      +
      2618 // : missing
      +
      2619 break;
      +
      2620 }
      +
      2621
      +
      2622 components[i].start = interval.end;
      +
      2623 size_t x;
      +
      2624 for (x = 0; interval.end < end && text[interval.end];) {
      +
      2625 size_t dig, digit_end;
      +
      2626 if (m_digit_0->match(text, interval.end, end, flags)) { dig = 0; digit_end = m_digit_0->interval.end; }
      +
      2627 else if (m_digit_1->match(text, interval.end, end, flags)) { dig = 1; digit_end = m_digit_1->interval.end; }
      +
      2628 else if (m_digit_2->match(text, interval.end, end, flags)) { dig = 2; digit_end = m_digit_2->interval.end; }
      +
      2629 else if (m_digit_3->match(text, interval.end, end, flags)) { dig = 3; digit_end = m_digit_3->interval.end; }
      +
      2630 else if (m_digit_4->match(text, interval.end, end, flags)) { dig = 4; digit_end = m_digit_4->interval.end; }
      +
      2631 else if (m_digit_5->match(text, interval.end, end, flags)) { dig = 5; digit_end = m_digit_5->interval.end; }
      +
      2632 else if (m_digit_6->match(text, interval.end, end, flags)) { dig = 6; digit_end = m_digit_6->interval.end; }
      +
      2633 else if (m_digit_7->match(text, interval.end, end, flags)) { dig = 7; digit_end = m_digit_7->interval.end; }
      +
      2634 else if (m_digit_8->match(text, interval.end, end, flags)) { dig = 8; digit_end = m_digit_8->interval.end; }
      +
      2635 else if (m_digit_9->match(text, interval.end, end, flags)) { dig = 9; digit_end = m_digit_9->interval.end; }
      +
      2636 else if (m_digit_10->match(text, interval.end, end, flags)) { dig = 10; digit_end = m_digit_10->interval.end; }
      +
      2637 else if (m_digit_11->match(text, interval.end, end, flags)) { dig = 11; digit_end = m_digit_11->interval.end; }
      +
      2638 else if (m_digit_12->match(text, interval.end, end, flags)) { dig = 12; digit_end = m_digit_12->interval.end; }
      +
      2639 else if (m_digit_13->match(text, interval.end, end, flags)) { dig = 13; digit_end = m_digit_13->interval.end; }
      +
      2640 else if (m_digit_14->match(text, interval.end, end, flags)) { dig = 14; digit_end = m_digit_14->interval.end; }
      +
      2641 else if (m_digit_15->match(text, interval.end, end, flags)) { dig = 15; digit_end = m_digit_15->interval.end; }
      +
      2642 else break;
      +
      2643 size_t x_n = x * 16 + dig;
      +
      2644 if (x_n <= 0xffff) {
      +
      2645 x = x_n;
      +
      2646 interval.end = digit_end;
      +
      2647 is_empty = false;
      +
      2648 }
      +
      2649 else
      +
      2650 break;
      +
      2651 }
      +
      2652 if (is_empty) {
      +
      2653 if (compaction_i != (size_t)-1) {
      +
      2654 // Zero compaction active: no sweat.
      +
      2655 break;
      +
      2656 }
      +
      2657 goto error;
      +
      2658 }
      +
      2659 components[i].end = interval.end;
      +
      2660 value.s6_words[i] = (uint16_t)x;
      +
      2661 }
      +
      2662
      +
      2663 if (compaction_i != (size_t)-1) {
      +
      2664 // Align components right due to zero compaction.
      +
      2665 size_t j, k;
      +
      2666 for (j = 8, k = i; k > compaction_i;) {
      +
      2667 value.s6_words[--j] = value.s6_words[--k];
      +
      2668 components[j] = components[k];
      +
      2669 }
      +
      2670 for (; j > compaction_i;) {
      +
      2671 value.s6_words[--j] = 0;
      +
      2672 components[j].start =
      +
      2673 components[j].end = compaction_start;
      +
      2674 }
      +
      2675 }
      +
      2676 else if (i < 8)
      +
      2677 goto error;
      +
      2678
      +
      2679 if (m_scope_id_separator && m_scope_id_separator->match(text, interval.end, end, flags) &&
      +
      2680 scope_id && scope_id->match(text, m_scope_id_separator->interval.end, end, flags))
      +
      2681 interval.end = scope_id->interval.end;
      +
      2682 else if (scope_id)
      +
      2683 scope_id->invalidate();
      +
      2684
      +
      2685 interval.start = start;
      +
      2686 return true;
      +
      2687
      +
      2688 error:
      +
      2689 components[0].start = 1;
      +
      2690 components[0].end = 0;
      +
      2691 components[1].start = 1;
      +
      2692 components[1].end = 0;
      +
      2693 components[2].start = 1;
      +
      2694 components[2].end = 0;
      +
      2695 components[3].start = 1;
      +
      2696 components[3].end = 0;
      +
      2697 components[4].start = 1;
      +
      2698 components[4].end = 0;
      +
      2699 components[5].start = 1;
      +
      2700 components[5].end = 0;
      +
      2701 components[6].start = 1;
      +
      2702 components[6].end = 0;
      +
      2703 components[7].start = 1;
      +
      2704 components[7].end = 0;
      +
      2705 memset(value, 0, sizeof(value));
      +
      2706 if (scope_id) scope_id->invalidate();
      +
      2707 interval.start = (interval.end = start) + 1;
      +
      2708 return false;
      +
      2709 }
      +
      2710
      +
      2711 virtual void invalidate()
      +
      2712 {
      +
      2713 components[0].start = 1;
      +
      2714 components[0].end = 0;
      +
      2715 components[1].start = 1;
      +
      2716 components[1].end = 0;
      +
      2717 components[2].start = 1;
      +
      2718 components[2].end = 0;
      +
      2719 components[3].start = 1;
      +
      2720 components[3].end = 0;
      +
      2721 components[4].start = 1;
      +
      2722 components[4].end = 0;
      +
      2723 components[5].start = 1;
      +
      2724 components[5].end = 0;
      +
      2725 components[6].start = 1;
      +
      2726 components[6].end = 0;
      +
      2727 components[7].start = 1;
      +
      2728 components[7].end = 0;
      +
      2729 memset(value, 0, sizeof(value));
      +
      2730 if (scope_id) scope_id->invalidate();
      + +
      2732 }
      +
      2733
      +
      2734 public:
      + +
      2736 struct in6_addr value;
      +
      2737 std::shared_ptr<basic_tester<T>> scope_id;
      +
      2738
      +
      2739 protected:
      +
      2740 std::shared_ptr<basic_tester<T>>
      +
      2741 m_digit_0,
      +
      2742 m_digit_1,
      +
      2743 m_digit_2,
      +
      2744 m_digit_3,
      +
      2745 m_digit_4,
      +
      2746 m_digit_5,
      +
      2747 m_digit_6,
      +
      2748 m_digit_7,
      +
      2749 m_digit_8,
      +
      2750 m_digit_9,
      +
      2751 m_digit_10,
      +
      2752 m_digit_11,
      +
      2753 m_digit_12,
      +
      2754 m_digit_13,
      +
      2755 m_digit_14,
      +
      2756 m_digit_15;
      +
      2757 std::shared_ptr<basic_tester<T>> m_separator, m_scope_id_separator;
      +
      2758 };
      +
      2759
      + + +
      2762#ifdef _UNICODE
      + +
      2764#else
      + +
      2766#endif
      + +
      2768
      +
      2772 template <class T>
      + +
      2774 {
      +
      2775 public:
      + +
      2777 _In_ bool allow_idn,
      +
      2778 _In_ const std::locale& locale = std::locale()) :
      +
      2779 basic_tester<T>(locale),
      +
      2780 m_allow_idn(allow_idn),
      +
      2781 allow_on_edge(true)
      +
      2782 {}
      +
      2783
      +
      2784 virtual bool match(
      +
      2785 _In_reads_or_z_(end) const T* text,
      +
      2786 _In_ size_t start = 0,
      +
      2787 _In_ size_t end = (size_t)-1,
      +
      2788 _In_ int flags = match_default)
      +
      2789 {
      +
      2790 assert(text || start >= end);
      +
      2791 if (start < end && text[start]) {
      +
      2792 if (('A' <= text[start] && text[start] <= 'Z') ||
      +
      2793 ('a' <= text[start] && text[start] <= 'z') ||
      +
      2794 ('0' <= text[start] && text[start] <= '9'))
      +
      2795 allow_on_edge = true;
      +
      2796 else if (text[start] == '-')
      +
      2797 allow_on_edge = false;
      +
      2798 else if (m_allow_idn && std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
      +
      2799 allow_on_edge = true;
      +
      2800 else {
      +
      2801 interval.start = (interval.end = start) + 1;
      +
      2802 return false;
      +
      2803 }
      +
      2804 interval.end = (interval.start = start) + 1;
      +
      2805 return true;
      +
      2806 }
      +
      2807 interval.start = (interval.end = start) + 1;
      +
      2808 return false;
      +
      2809 }
      +
      2810
      +
      2811 public:
      + +
      2813
      +
      2814 protected:
      +
      2815 bool m_allow_idn;
      +
      2816 };
      +
      2817
      + + +
      2820#ifdef _UNICODE
      + +
      2822#else
      + +
      2824#endif
      +
      2825
      + +
      2830 {
      +
      2831 public:
      + +
      2833 _In_ bool allow_idn,
      +
      2834 _In_ const std::locale& locale = std::locale()) :
      +
      2835 basic_dns_domain_char<char>(allow_idn, locale)
      +
      2836 {}
      +
      2837
      +
      2838 virtual bool match(
      +
      2839 _In_reads_or_z_(end) const char* text,
      +
      2840 _In_ size_t start = 0,
      +
      2841 _In_ size_t end = (size_t)-1,
      +
      2842 _In_ int flags = match_default)
      +
      2843 {
      +
      2844 assert(text || start >= end);
      +
      2845 if (start < end && text[start]) {
      +
      2846 wchar_t buf[3];
      +
      2847 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      2848 const wchar_t* chr_end = chr + stdex::strlen(chr);
      +
      2849 if ((('A' <= chr[0] && chr[0] <= 'Z') ||
      +
      2850 ('a' <= chr[0] && chr[0] <= 'z') ||
      +
      2851 ('0' <= chr[0] && chr[0] <= '9')) && chr[1] == 0)
      +
      2852 allow_on_edge = true;
      +
      2853 else if (chr[0] == '-' && chr[1] == 0)
      +
      2854 allow_on_edge = false;
      +
      2855 else if (m_allow_idn && std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::alnum, chr, chr_end) == chr_end)
      +
      2856 allow_on_edge = true;
      +
      2857 else {
      +
      2858 interval.start = (interval.end = start) + 1;
      +
      2859 return false;
      +
      2860 }
      +
      2861 interval.start = start;
      +
      2862 return true;
      +
      2863 }
      +
      2864 interval.start = (interval.end = start) + 1;
      +
      2865 return false;
      +
      2866 }
      +
      2867 };
      +
      2868
      +
      2872 template <class T>
      + +
      2874 {
      +
      2875 public:
      + +
      2877 _In_ bool allow_absolute,
      +
      2878 _In_ const std::shared_ptr<basic_dns_domain_char<T>>& domain_char,
      +
      2879 _In_ const std::shared_ptr<basic_tester<T>>& separator,
      +
      2880 _In_ const std::locale& locale = std::locale()) :
      +
      2881 basic_tester<T>(locale),
      +
      2882 m_allow_absolute(allow_absolute),
      +
      2883 m_domain_char(domain_char),
      +
      2884 m_separator(separator)
      +
      2885 {}
      +
      2886
      +
      2887 virtual bool match(
      +
      2888 _In_reads_or_z_(end) const T* text,
      +
      2889 _In_ size_t start = 0,
      +
      2890 _In_ size_t end = (size_t)-1,
      +
      2891 _In_ int flags = match_default)
      +
      2892 {
      +
      2893 assert(text || start >= end);
      +
      2894 size_t i = start, count;
      +
      2895 for (count = 0; i < end && text[i] && count < 127; count++) {
      +
      2896 if (m_domain_char->match(text, i, end, flags) &&
      +
      2897 m_domain_char->allow_on_edge)
      +
      2898 {
      +
      2899 // Domain start
      +
      2900 interval.end = i = m_domain_char->interval.end;
      +
      2901 while (i < end && text[i]) {
      +
      2902 if (m_domain_char->allow_on_edge &&
      +
      2903 m_separator->match(text, i, end, flags))
      +
      2904 {
      +
      2905 // Domain end
      +
      2906 if (m_allow_absolute)
      +
      2907 interval.end = i = m_separator->interval.end;
      +
      2908 else {
      +
      2909 interval.end = i;
      +
      2910 i = m_separator->interval.end;
      +
      2911 }
      +
      2912 break;
      +
      2913 }
      +
      2914 if (m_domain_char->match(text, i, end, flags)) {
      +
      2915 if (m_domain_char->allow_on_edge)
      +
      2916 interval.end = i = m_domain_char->interval.end;
      +
      2917 else
      +
      2918 i = m_domain_char->interval.end;
      +
      2919 }
      +
      2920 else {
      +
      2921 interval.start = start;
      +
      2922 return true;
      +
      2923 }
      +
      2924 }
      +
      2925 }
      +
      2926 else
      +
      2927 break;
      +
      2928 }
      +
      2929 if (count) {
      +
      2930 interval.start = start;
      +
      2931 return true;
      +
      2932 }
      +
      2933 interval.start = (interval.end = start) + 1;
      +
      2934 return false;
      +
      2935 }
      +
      2936
      +
      2937 protected:
      + +
      2939 std::shared_ptr<basic_dns_domain_char<T>> m_domain_char;
      +
      2940 std::shared_ptr<basic_tester<T>> m_separator;
      +
      2941 };
      +
      2942
      + + +
      2945#ifdef _UNICODE
      +
      2946 using tdns_name = wdns_name;
      +
      2947#else
      +
      2948 using tdns_name = dns_name;
      +
      2949#endif
      + +
      2951
      +
      2955 template <class T>
      + +
      2957 {
      +
      2958 public:
      +
      2959 basic_url_username_char(_In_ const std::locale& locale = std::locale()) : basic_tester<T>(locale) {}
      +
      2960
      +
      2961 virtual bool match(
      +
      2962 _In_reads_or_z_(end) const T* text,
      +
      2963 _In_ size_t start = 0,
      +
      2964 _In_ size_t end = (size_t)-1,
      +
      2965 _In_ int flags = match_default)
      +
      2966 {
      +
      2967 assert(text || start >= end);
      +
      2968 if (start < end && text[start]) {
      +
      2969 if (text[start] == '-' ||
      +
      2970 text[start] == '.' ||
      +
      2971 text[start] == '_' ||
      +
      2972 text[start] == '~' ||
      +
      2973 text[start] == '%' ||
      +
      2974 text[start] == '!' ||
      +
      2975 text[start] == '$' ||
      +
      2976 text[start] == '&' ||
      +
      2977 text[start] == '\'' ||
      +
      2978 //text[start] == '(' ||
      +
      2979 //text[start] == ')' ||
      +
      2980 text[start] == '*' ||
      +
      2981 text[start] == '+' ||
      +
      2982 text[start] == ',' ||
      +
      2983 text[start] == ';' ||
      +
      2984 text[start] == '=' ||
      +
      2985 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
      +
      2986 {
      +
      2987 interval.end = (interval.start = start) + 1;
      +
      2988 return true;
      +
      2989 }
      +
      2990 }
      +
      2991 interval.start = (interval.end = start) + 1;
      +
      2992 return false;
      +
      2993 }
      +
      2994 };
      +
      2995
      + + +
      2998#ifdef _UNICODE
      + +
      3000#else
      + +
      3002#endif
      +
      3003
      + +
      3008 {
      +
      3009 public:
      +
      3010 sgml_url_username_char(_In_ const std::locale& locale = std::locale()) : basic_url_username_char<char>(locale) {}
      +
      3011
      +
      3012 virtual bool match(
      +
      3013 _In_reads_or_z_(end) const char* text,
      +
      3014 _In_ size_t start = 0,
      +
      3015 _In_ size_t end = (size_t)-1,
      +
      3016 _In_ int flags = match_default)
      +
      3017 {
      +
      3018 assert(text || start >= end);
      +
      3019 if (start < end && text[start]) {
      +
      3020 wchar_t buf[3];
      +
      3021 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      3022 const wchar_t* chr_end = chr + stdex::strlen(chr);
      +
      3023 if ((chr[0] == L'-' ||
      +
      3024 chr[0] == L'.' ||
      +
      3025 chr[0] == L'_' ||
      +
      3026 chr[0] == L'~' ||
      +
      3027 chr[0] == L'%' ||
      +
      3028 chr[0] == L'!' ||
      +
      3029 chr[0] == L'$' ||
      +
      3030 chr[0] == L'&' ||
      +
      3031 chr[0] == L'\'' ||
      +
      3032 //chr[0] == L'(' ||
      +
      3033 //chr[0] == L')' ||
      +
      3034 chr[0] == L'*' ||
      +
      3035 chr[0] == L'+' ||
      +
      3036 chr[0] == L',' ||
      +
      3037 chr[0] == L';' ||
      +
      3038 chr[0] == L'=') && chr[1] == 0 ||
      +
      3039 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::alnum, chr, chr_end) == chr_end)
      +
      3040 {
      +
      3041 interval.start = start;
      +
      3042 return true;
      +
      3043 }
      +
      3044 }
      +
      3045
      +
      3046 interval.start = (interval.end = start) + 1;
      +
      3047 return false;
      +
      3048 }
      +
      3049 };
      +
      3050
      +
      3054 template <class T>
      + +
      3056 {
      +
      3057 public:
      +
      3058 basic_url_password_char(_In_ const std::locale& locale = std::locale()) : basic_tester<T>(locale) {}
      +
      3059
      +
      3060 virtual bool match(
      +
      3061 _In_reads_or_z_(end) const T* text,
      +
      3062 _In_ size_t start = 0,
      +
      3063 _In_ size_t end = (size_t)-1,
      +
      3064 _In_ int flags = match_default)
      +
      3065 {
      +
      3066 assert(text || start >= end);
      +
      3067 if (start < end && text[start]) {
      +
      3068 if (text[start] == '-' ||
      +
      3069 text[start] == '.' ||
      +
      3070 text[start] == '_' ||
      +
      3071 text[start] == '~' ||
      +
      3072 text[start] == '%' ||
      +
      3073 text[start] == '!' ||
      +
      3074 text[start] == '$' ||
      +
      3075 text[start] == '&' ||
      +
      3076 text[start] == '\'' ||
      +
      3077 text[start] == '(' ||
      +
      3078 text[start] == ')' ||
      +
      3079 text[start] == '*' ||
      +
      3080 text[start] == '+' ||
      +
      3081 text[start] == ',' ||
      +
      3082 text[start] == ';' ||
      +
      3083 text[start] == '=' ||
      +
      3084 text[start] == ':' ||
      +
      3085 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
      +
      3086 {
      +
      3087 interval.end = (interval.start = start) + 1;
      +
      3088 return true;
      +
      3089 }
      +
      3090 }
      +
      3091 interval.start = (interval.end = start) + 1;
      +
      3092 return false;
      +
      3093 }
      +
      3094 };
      +
      3095
      + + +
      3098#ifdef _UNICODE
      + +
      3100#else
      + +
      3102#endif
      +
      3103
      + +
      3108 {
      +
      3109 public:
      +
      3110 sgml_url_password_char(_In_ const std::locale& locale = std::locale()) : basic_url_password_char<char>(locale) {}
      +
      3111
      +
      3112 virtual bool match(
      +
      3113 _In_reads_or_z_(end) const char* text,
      +
      3114 _In_ size_t start = 0,
      +
      3115 _In_ size_t end = (size_t)-1,
      +
      3116 _In_ int flags = match_default)
      +
      3117 {
      +
      3118 assert(text || start >= end);
      +
      3119 if (start < end && text[start]) {
      +
      3120 wchar_t buf[3];
      +
      3121 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      3122 const wchar_t* chr_end = chr + stdex::strlen(chr);
      +
      3123 if ((chr[0] == L'-' ||
      +
      3124 chr[0] == L'.' ||
      +
      3125 chr[0] == L'_' ||
      +
      3126 chr[0] == L'~' ||
      +
      3127 chr[0] == L'%' ||
      +
      3128 chr[0] == L'!' ||
      +
      3129 chr[0] == L'$' ||
      +
      3130 chr[0] == L'&' ||
      +
      3131 chr[0] == L'\'' ||
      +
      3132 chr[0] == L'(' ||
      +
      3133 chr[0] == L')' ||
      +
      3134 chr[0] == L'*' ||
      +
      3135 chr[0] == L'+' ||
      +
      3136 chr[0] == L',' ||
      +
      3137 chr[0] == L';' ||
      +
      3138 chr[0] == L'=' ||
      +
      3139 chr[0] == L':') && chr[1] == 0 ||
      +
      3140 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::alnum, chr, chr_end) == chr_end)
      +
      3141 {
      +
      3142 interval.start = start;
      +
      3143 return true;
      +
      3144 }
      +
      3145 }
      +
      3146 interval.start = (interval.end = start) + 1;
      +
      3147 return false;
      +
      3148 }
      +
      3149 };
      +
      3150
      +
      3154 template <class T>
      + +
      3156 {
      +
      3157 public:
      +
      3158 basic_url_path_char(_In_ const std::locale& locale = std::locale()) : basic_tester<T>(locale) {}
      +
      3159
      +
      3160 virtual bool match(
      +
      3161 _In_reads_or_z_(end) const T* text,
      +
      3162 _In_ size_t start = 0,
      +
      3163 _In_ size_t end = (size_t)-1,
      +
      3164 _In_ int flags = match_default)
      +
      3165 {
      +
      3166 assert(text || start >= end);
      +
      3167 if (start < end && text[start]) {
      +
      3168 if (text[start] == '/' ||
      +
      3169 text[start] == '-' ||
      +
      3170 text[start] == '.' ||
      +
      3171 text[start] == '_' ||
      +
      3172 text[start] == '~' ||
      +
      3173 text[start] == '%' ||
      +
      3174 text[start] == '!' ||
      +
      3175 text[start] == '$' ||
      +
      3176 text[start] == '&' ||
      +
      3177 text[start] == '\'' ||
      +
      3178 text[start] == '(' ||
      +
      3179 text[start] == ')' ||
      +
      3180 text[start] == '*' ||
      +
      3181 text[start] == '+' ||
      +
      3182 text[start] == ',' ||
      +
      3183 text[start] == ';' ||
      +
      3184 text[start] == '=' ||
      +
      3185 text[start] == ':' ||
      +
      3186 text[start] == '@' ||
      +
      3187 text[start] == '?' ||
      +
      3188 text[start] == '#' ||
      +
      3189 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
      +
      3190 {
      +
      3191 interval.end = (interval.start = start) + 1;
      +
      3192 return true;
      +
      3193 }
      +
      3194 }
      +
      3195 interval.start = (interval.end = start) + 1;
      +
      3196 return false;
      +
      3197 }
      +
      3198 };
      +
      3199
      + + +
      3202#ifdef _UNICODE
      + +
      3204#else
      + +
      3206#endif
      +
      3207
      + +
      3212 {
      +
      3213 public:
      +
      3214 sgml_url_path_char(_In_ const std::locale& locale = std::locale()) : basic_url_path_char<char>(locale) {}
      +
      3215
      +
      3216 virtual bool match(
      +
      3217 _In_reads_or_z_(end) const char* text,
      +
      3218 _In_ size_t start = 0,
      +
      3219 _In_ size_t end = (size_t)-1,
      +
      3220 _In_ int flags = match_default)
      +
      3221 {
      +
      3222 assert(text || start >= end);
      +
      3223 if (start < end && text[start]) {
      +
      3224 wchar_t buf[3];
      +
      3225 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
      +
      3226 const wchar_t* chr_end = chr + stdex::strlen(chr);
      +
      3227 if ((chr[0] == L'/' ||
      +
      3228 chr[0] == L'-' ||
      +
      3229 chr[0] == L'.' ||
      +
      3230 chr[0] == L'_' ||
      +
      3231 chr[0] == L'~' ||
      +
      3232 chr[0] == L'%' ||
      +
      3233 chr[0] == L'!' ||
      +
      3234 chr[0] == L'$' ||
      +
      3235 chr[0] == L'&' ||
      +
      3236 chr[0] == L'\'' ||
      +
      3237 chr[0] == L'(' ||
      +
      3238 chr[0] == L')' ||
      +
      3239 chr[0] == L'*' ||
      +
      3240 chr[0] == L'+' ||
      +
      3241 chr[0] == L',' ||
      +
      3242 chr[0] == L';' ||
      +
      3243 chr[0] == L'=' ||
      +
      3244 chr[0] == L':' ||
      +
      3245 chr[0] == L'@' ||
      +
      3246 chr[0] == L'?' ||
      +
      3247 chr[0] == L'#') && chr[1] == 0 ||
      +
      3248 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::alnum, chr, chr_end) == chr_end)
      +
      3249 {
      +
      3250 interval.start = start;
      +
      3251 return true;
      +
      3252 }
      +
      3253 }
      +
      3254 interval.start = (interval.end = start) + 1;
      +
      3255 return false;
      +
      3256 }
      +
      3257 };
      +
      3258
      +
      3262 template <class T>
      + +
      3264 {
      +
      3265 public:
      + +
      3267 _In_ const std::shared_ptr<basic_tester<T>>& path_char,
      +
      3268 _In_ const std::shared_ptr<basic_tester<T>>& query_start,
      +
      3269 _In_ const std::shared_ptr<basic_tester<T>>& bookmark_start,
      +
      3270 _In_ const std::locale& locale = std::locale()) :
      +
      3271 basic_tester<T>(locale),
      +
      3272 m_path_char(path_char),
      +
      3273 m_query_start(query_start),
      +
      3274 m_bookmark_start(bookmark_start)
      +
      3275 {}
      +
      3276
      +
      3277 virtual bool match(
      +
      3278 _In_reads_or_z_(end) const T* text,
      +
      3279 _In_ size_t start = 0,
      +
      3280 _In_ size_t end = (size_t)-1,
      +
      3281 _In_ int flags = match_default)
      +
      3282 {
      +
      3283 assert(text || start >= end);
      +
      3284
      +
      3285 interval.end = start;
      +
      3286 path.start = start;
      +
      3287 query.start = 1;
      +
      3288 query.end = 0;
      +
      3289 bookmark.start = 1;
      +
      3290 bookmark.end = 0;
      +
      3291
      +
      3292 for (;;) {
      +
      3293 if (interval.end >= end || !text[interval.end])
      +
      3294 break;
      +
      3295 if (m_query_start->match(text, interval.end, end, flags)) {
      +
      3296 path.end = interval.end;
      +
      3297 query.start = interval.end = m_query_start->interval.end;
      +
      3298 for (;;) {
      +
      3299 if (interval.end >= end || !text[interval.end]) {
      +
      3300 query.end = interval.end;
      +
      3301 break;
      +
      3302 }
      +
      3303 if (m_bookmark_start->match(text, interval.end, end, flags)) {
      +
      3304 query.end = interval.end;
      +
      3305 bookmark.start = interval.end = m_bookmark_start->interval.end;
      +
      3306 for (;;) {
      +
      3307 if (interval.end >= end || !text[interval.end]) {
      +
      3308 bookmark.end = interval.end;
      +
      3309 break;
      +
      3310 }
      +
      3311 if (m_path_char->match(text, interval.end, end, flags))
      +
      3312 interval.end = m_path_char->interval.end;
      +
      3313 else {
      +
      3314 bookmark.end = interval.end;
      +
      3315 break;
      +
      3316 }
      +
      3317 }
      +
      3318 interval.start = start;
      +
      3319 return true;
      +
      3320 }
      +
      3321 if (m_path_char->match(text, interval.end, end, flags))
      +
      3322 interval.end = m_path_char->interval.end;
      +
      3323 else {
      +
      3324 query.end = interval.end;
      +
      3325 break;
      +
      3326 }
      +
      3327 }
      +
      3328 interval.start = start;
      +
      3329 return true;
      +
      3330 }
      +
      3331 if (m_bookmark_start->match(text, interval.end, end, flags)) {
      +
      3332 path.end = interval.end;
      +
      3333 bookmark.start = interval.end = m_bookmark_start->interval.end;
      +
      3334 for (;;) {
      +
      3335 if (interval.end >= end || !text[interval.end]) {
      +
      3336 bookmark.end = interval.end;
      +
      3337 break;
      +
      3338 }
      +
      3339 if (m_path_char->match(text, interval.end, end, flags))
      +
      3340 interval.end = m_path_char->interval.end;
      +
      3341 else {
      +
      3342 bookmark.end = interval.end;
      +
      3343 break;
      +
      3344 }
      +
      3345 }
      +
      3346 interval.start = start;
      +
      3347 return true;
      +
      3348 }
      +
      3349 if (m_path_char->match(text, interval.end, end, flags))
      +
      3350 interval.end = m_path_char->interval.end;
      +
      3351 else
      +
      3352 break;
      +
      3353 }
      +
      3354
      +
      3355 if (start < interval.end) {
      +
      3356 path.end = interval.end;
      +
      3357 interval.start = start;
      +
      3358 return true;
      +
      3359 }
      +
      3360
      +
      3361 path.start = 1;
      +
      3362 path.end = 0;
      +
      3363 bookmark.start = 1;
      +
      3364 bookmark.end = 0;
      +
      3365 interval.start = (interval.end = start) + 1;
      +
      3366 return false;
      +
      3367 }
      +
      3368
      +
      3369 virtual void invalidate()
      +
      3370 {
      +
      3371 path.start = 1;
      +
      3372 path.end = 0;
      +
      3373 query.start = 1;
      +
      3374 query.end = 0;
      +
      3375 bookmark.start = 1;
      +
      3376 bookmark.end = 0;
      + +
      3378 }
      +
      3379
      +
      3380 public:
      + + +
      3383 stdex::interval<size_t> bookmark;
      +
      3384
      +
      3385 protected:
      +
      3386 std::shared_ptr<basic_tester<T>> m_path_char;
      +
      3387 std::shared_ptr<basic_tester<T>> m_query_start;
      +
      3388 std::shared_ptr<basic_tester<T>> m_bookmark_start;
      +
      3389 };
      +
      3390
      + + +
      3393#ifdef _UNICODE
      +
      3394 using turl_path = wurl_path;
      +
      3395#else
      +
      3396 using turl_path = url_path;
      +
      3397#endif
      + +
      3399
      +
      3403 template <class T>
      +
      3404 class basic_url : public basic_tester<T>
      +
      3405 {
      +
      3406 public:
      +
      3407 basic_url(
      +
      3408 _In_ const std::shared_ptr<basic_tester<T>>& _http_scheme,
      +
      3409 _In_ const std::shared_ptr<basic_tester<T>>& _ftp_scheme,
      +
      3410 _In_ const std::shared_ptr<basic_tester<T>>& _mailto_scheme,
      +
      3411 _In_ const std::shared_ptr<basic_tester<T>>& _file_scheme,
      +
      3412 _In_ const std::shared_ptr<basic_tester<T>>& colon,
      +
      3413 _In_ const std::shared_ptr<basic_tester<T>>& slash,
      +
      3414 _In_ const std::shared_ptr<basic_tester<T>>& _username,
      +
      3415 _In_ const std::shared_ptr<basic_tester<T>>& _password,
      +
      3416 _In_ const std::shared_ptr<basic_tester<T>>& at,
      +
      3417 _In_ const std::shared_ptr<basic_tester<T>>& ip_lbracket,
      +
      3418 _In_ const std::shared_ptr<basic_tester<T>>& ip_rbracket,
      +
      3419 _In_ const std::shared_ptr<basic_tester<T>>& _ipv4_host,
      +
      3420 _In_ const std::shared_ptr<basic_tester<T>>& _ipv6_host,
      +
      3421 _In_ const std::shared_ptr<basic_tester<T>>& _dns_host,
      +
      3422 _In_ const std::shared_ptr<basic_tester<T>>& _port,
      +
      3423 _In_ const std::shared_ptr<basic_tester<T>>& _path,
      +
      3424 _In_ const std::locale& locale = std::locale()) :
      +
      3425 basic_tester<T>(locale),
      +
      3426 http_scheme(_http_scheme),
      +
      3427 ftp_scheme(_ftp_scheme),
      +
      3428 mailto_scheme(_mailto_scheme),
      +
      3429 file_scheme(_file_scheme),
      +
      3430 m_colon(colon),
      +
      3431 m_slash(slash),
      +
      3432 username(_username),
      +
      3433 password(_password),
      +
      3434 m_at(at),
      +
      3435 m_ip_lbracket(ip_lbracket),
      +
      3436 m_ip_rbracket(ip_rbracket),
      +
      3437 ipv4_host(_ipv4_host),
      +
      3438 ipv6_host(_ipv6_host),
      +
      3439 dns_host(_dns_host),
      +
      3440 port(_port),
      +
      3441 path(_path)
      +
      3442 {}
      +
      3443
      +
      3444 virtual bool match(
      +
      3445 _In_reads_or_z_(end) const T* text,
      +
      3446 _In_ size_t start = 0,
      +
      3447 _In_ size_t end = (size_t)-1,
      +
      3448 _In_ int flags = match_default)
      +
      3449 {
      +
      3450 assert(text || start >= end);
      +
      3451
      +
      3452 interval.end = start;
      +
      3453
      +
      3454 if (http_scheme->match(text, interval.end, end, flags) &&
      +
      3455 m_colon->match(text, http_scheme->interval.end, end, flags) &&
      +
      3456 m_slash->match(text, m_colon->interval.end, end, flags) &&
      +
      3457 m_slash->match(text, m_slash->interval.end, end, flags))
      +
      3458 {
      +
      3459 // http://
      +
      3460 interval.end = m_slash->interval.end;
      +
      3461 ftp_scheme->invalidate();
      +
      3462 mailto_scheme->invalidate();
      +
      3463 file_scheme->invalidate();
      +
      3464 }
      +
      3465 else if (ftp_scheme->match(text, interval.end, end, flags) &&
      +
      3466 m_colon->match(text, ftp_scheme->interval.end, end, flags) &&
      +
      3467 m_slash->match(text, m_colon->interval.end, end, flags) &&
      +
      3468 m_slash->match(text, m_slash->interval.end, end, flags))
      +
      3469 {
      +
      3470 // ftp://
      +
      3471 interval.end = m_slash->interval.end;
      +
      3472 http_scheme->invalidate();
      +
      3473 mailto_scheme->invalidate();
      +
      3474 file_scheme->invalidate();
      +
      3475 }
      +
      3476 else if (mailto_scheme->match(text, interval.end, end, flags) &&
      +
      3477 m_colon->match(text, mailto_scheme->interval.end, end, flags))
      +
      3478 {
      +
      3479 // mailto:
      +
      3480 interval.end = m_colon->interval.end;
      +
      3481 http_scheme->invalidate();
      +
      3482 ftp_scheme->invalidate();
      +
      3483 file_scheme->invalidate();
      +
      3484 }
      +
      3485 else if (file_scheme->match(text, interval.end, end, flags) &&
      +
      3486 m_colon->match(text, file_scheme->interval.end, end, flags) &&
      +
      3487 m_slash->match(text, m_colon->interval.end, end, flags) &&
      +
      3488 m_slash->match(text, m_slash->interval.end, end, flags))
      +
      3489 {
      +
      3490 // file://
      +
      3491 interval.end = m_slash->interval.end;
      +
      3492 http_scheme->invalidate();
      +
      3493 ftp_scheme->invalidate();
      +
      3494 mailto_scheme->invalidate();
      +
      3495 }
      +
      3496 else {
      +
      3497 // Default to http:
      +
      3498 http_scheme->invalidate();
      +
      3499 ftp_scheme->invalidate();
      +
      3500 mailto_scheme->invalidate();
      +
      3501 file_scheme->invalidate();
      +
      3502 }
      +
      3503
      +
      3504 if (ftp_scheme->interval) {
      +
      3505 if (username->match(text, interval.end, end, flags)) {
      +
      3506 if (m_colon->match(text, username->interval.end, end, flags) &&
      +
      3507 password->match(text, m_colon->interval.end, end, flags) &&
      +
      3508 m_at->match(text, password->interval.end, end, flags))
      +
      3509 {
      +
      3510 // Username and password
      +
      3511 interval.end = m_at->interval.end;
      +
      3512 }
      +
      3513 else if (m_at->match(text, interval.end, end, flags)) {
      +
      3514 // Username only
      +
      3515 interval.end = m_at->interval.end;
      +
      3516 password->invalidate();
      +
      3517 }
      +
      3518 else {
      +
      3519 username->invalidate();
      +
      3520 password->invalidate();
      +
      3521 }
      +
      3522 }
      +
      3523 else {
      +
      3524 username->invalidate();
      +
      3525 password->invalidate();
      +
      3526 }
      +
      3527
      +
      3528 if (ipv4_host->match(text, interval.end, end, flags)) {
      +
      3529 // Host is IPv4
      +
      3530 interval.end = ipv4_host->interval.end;
      +
      3531 ipv6_host->invalidate();
      +
      3532 dns_host->invalidate();
      +
      3533 }
      +
      3534 else if (
      +
      3535 m_ip_lbracket->match(text, interval.end, end, flags) &&
      +
      3536 ipv6_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
      +
      3537 m_ip_rbracket->match(text, ipv6_host->interval.end, end, flags))
      +
      3538 {
      +
      3539 // Host is IPv6
      +
      3540 interval.end = m_ip_rbracket->interval.end;
      +
      3541 ipv4_host->invalidate();
      +
      3542 dns_host->invalidate();
      +
      3543 }
      +
      3544 else if (dns_host->match(text, interval.end, end, flags)) {
      +
      3545 // Host is hostname
      +
      3546 interval.end = dns_host->interval.end;
      +
      3547 ipv4_host->invalidate();
      +
      3548 ipv6_host->invalidate();
      +
      3549 }
      +
      3550 else {
      +
      3551 invalidate();
      +
      3552 return false;
      +
      3553 }
      +
      3554
      +
      3555 if (m_colon->match(text, interval.end, end, flags) &&
      +
      3556 port->match(text, m_colon->interval.end, end, flags))
      +
      3557 {
      +
      3558 // Port
      +
      3559 interval.end = port->interval.end;
      +
      3560 }
      +
      3561 else
      +
      3562 port->invalidate();
      +
      3563
      +
      3564 if (path->match(text, interval.end, end, flags)) {
      +
      3565 // Path
      +
      3566 interval.end = path->interval.end;
      +
      3567 }
      +
      3568
      +
      3569 interval.start = start;
      +
      3570 return true;
      +
      3571 }
      +
      3572
      +
      3573 if (mailto_scheme->interval) {
      +
      3574 if (username->match(text, interval.end, end, flags) &&
      +
      3575 m_at->match(text, username->interval.end, end, flags))
      +
      3576 {
      +
      3577 // Username
      +
      3578 interval.end = m_at->interval.end;
      +
      3579 }
      +
      3580 else {
      +
      3581 invalidate();
      +
      3582 return false;
      +
      3583 }
      +
      3584
      +
      3585 if (m_ip_lbracket->match(text, interval.end, end, flags) &&
      +
      3586 ipv4_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
      +
      3587 m_ip_rbracket->match(text, ipv4_host->interval.end, end, flags))
      +
      3588 {
      +
      3589 // Host is IPv4
      +
      3590 interval.end = m_ip_rbracket->interval.end;
      +
      3591 ipv6_host->invalidate();
      +
      3592 dns_host->invalidate();
      +
      3593 }
      +
      3594 else if (
      +
      3595 m_ip_lbracket->match(text, interval.end, end, flags) &&
      +
      3596 ipv6_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
      +
      3597 m_ip_rbracket->match(text, ipv6_host->interval.end, end, flags))
      +
      3598 {
      +
      3599 // Host is IPv6
      +
      3600 interval.end = m_ip_rbracket->interval.end;
      +
      3601 ipv4_host->invalidate();
      +
      3602 dns_host->invalidate();
      +
      3603 }
      +
      3604 else if (dns_host->match(text, interval.end, end, flags)) {
      +
      3605 // Host is hostname
      +
      3606 interval.end = dns_host->interval.end;
      +
      3607 ipv4_host->invalidate();
      +
      3608 ipv6_host->invalidate();
      +
      3609 }
      +
      3610 else {
      +
      3611 invalidate();
      +
      3612 return false;
      +
      3613 }
      +
      3614
      +
      3615 password->invalidate();
      +
      3616 port->invalidate();
      +
      3617 path->invalidate();
      +
      3618 interval.start = start;
      +
      3619 return true;
      +
      3620 }
      +
      3621
      +
      3622 if (file_scheme->interval) {
      +
      3623 if (path->match(text, interval.end, end, flags)) {
      +
      3624 // Path
      +
      3625 interval.end = path->interval.end;
      +
      3626 }
      +
      3627
      +
      3628 username->invalidate();
      +
      3629 password->invalidate();
      +
      3630 ipv4_host->invalidate();
      +
      3631 ipv6_host->invalidate();
      +
      3632 dns_host->invalidate();
      +
      3633 port->invalidate();
      +
      3634 interval.start = start;
      +
      3635 return true;
      +
      3636 }
      +
      3637
      +
      3638 // "http://" found or defaulted to
      +
      3639
      +
      3640 // If "http://" explicit, test for username&password.
      +
      3641 if (http_scheme->interval &&
      +
      3642 username->match(text, interval.end, end, flags))
      +
      3643 {
      +
      3644 if (m_colon->match(text, username->interval.end, end, flags) &&
      +
      3645 password->match(text, m_colon->interval.end, end, flags) &&
      +
      3646 m_at->match(text, password->interval.end, end, flags))
      +
      3647 {
      +
      3648 // Username and password
      +
      3649 interval.end = m_at->interval.end;
      +
      3650 }
      +
      3651 else if (m_at->match(text, username->interval.end, end, flags)) {
      +
      3652 // Username only
      +
      3653 interval.end = m_at->interval.end;
      +
      3654 password->invalidate();
      +
      3655 }
      +
      3656 else {
      +
      3657 username->invalidate();
      +
      3658 password->invalidate();
      +
      3659 }
      +
      3660 }
      +
      3661 else {
      +
      3662 username->invalidate();
      +
      3663 password->invalidate();
      +
      3664 }
      +
      3665
      +
      3666 if (ipv4_host->match(text, interval.end, end, flags)) {
      +
      3667 // Host is IPv4
      +
      3668 interval.end = ipv4_host->interval.end;
      +
      3669 ipv6_host->invalidate();
      +
      3670 dns_host->invalidate();
      +
      3671 }
      +
      3672 else if (
      +
      3673 m_ip_lbracket->match(text, interval.end, end, flags) &&
      +
      3674 ipv6_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
      +
      3675 m_ip_rbracket->match(text, ipv6_host->interval.end, end, flags))
      +
      3676 {
      +
      3677 // Host is IPv6
      +
      3678 interval.end = m_ip_rbracket->interval.end;
      +
      3679 ipv4_host->invalidate();
      +
      3680 dns_host->invalidate();
      +
      3681 }
      +
      3682 else if (dns_host->match(text, interval.end, end, flags)) {
      +
      3683 // Host is hostname
      +
      3684 interval.end = dns_host->interval.end;
      +
      3685 ipv4_host->invalidate();
      +
      3686 ipv6_host->invalidate();
      +
      3687 }
      +
      3688 else {
      +
      3689 invalidate();
      +
      3690 return false;
      +
      3691 }
      +
      3692
      +
      3693 if (m_colon->match(text, interval.end, end, flags) &&
      +
      3694 port->match(text, m_colon->interval.end, end, flags))
      +
      3695 {
      +
      3696 // Port
      +
      3697 interval.end = port->interval.end;
      +
      3698 }
      +
      3699 else
      +
      3700 port->invalidate();
      +
      3701
      +
      3702 if (path->match(text, interval.end, end, flags)) {
      +
      3703 // Path
      +
      3704 interval.end = path->interval.end;
      +
      3705 }
      +
      3706
      +
      3707 interval.start = start;
      +
      3708 return true;
      +
      3709 }
      +
      3710
      +
      3711 virtual void invalidate()
      +
      3712 {
      +
      3713 http_scheme->invalidate();
      +
      3714 ftp_scheme->invalidate();
      +
      3715 mailto_scheme->invalidate();
      +
      3716 file_scheme->invalidate();
      +
      3717 username->invalidate();
      +
      3718 password->invalidate();
      +
      3719 ipv4_host->invalidate();
      +
      3720 ipv6_host->invalidate();
      +
      3721 dns_host->invalidate();
      +
      3722 port->invalidate();
      +
      3723 path->invalidate();
      + +
      3725 }
      +
      3726
      +
      3727 public:
      +
      3728 std::shared_ptr<basic_tester<T>> http_scheme;
      +
      3729 std::shared_ptr<basic_tester<T>> ftp_scheme;
      +
      3730 std::shared_ptr<basic_tester<T>> mailto_scheme;
      +
      3731 std::shared_ptr<basic_tester<T>> file_scheme;
      +
      3732 std::shared_ptr<basic_tester<T>> username;
      +
      3733 std::shared_ptr<basic_tester<T>> password;
      +
      3734 std::shared_ptr<basic_tester<T>> ipv4_host;
      +
      3735 std::shared_ptr<basic_tester<T>> ipv6_host;
      +
      3736 std::shared_ptr<basic_tester<T>> dns_host;
      +
      3737 std::shared_ptr<basic_tester<T>> port;
      +
      3738 std::shared_ptr<basic_tester<T>> path;
      +
      3739
      +
      3740 protected:
      +
      3741 std::shared_ptr<basic_tester<T>> m_colon;
      +
      3742 std::shared_ptr<basic_tester<T>> m_slash;
      +
      3743 std::shared_ptr<basic_tester<T>> m_at;
      +
      3744 std::shared_ptr<basic_tester<T>> m_ip_lbracket;
      +
      3745 std::shared_ptr<basic_tester<T>> m_ip_rbracket;
      +
      3746 };
      +
      3747
      +
      3748 using url = basic_url<char>;
      +
      3749 using wurl = basic_url<wchar_t>;
      +
      3750#ifdef _UNICODE
      +
      3751 using turl = wurl;
      +
      3752#else
      +
      3753 using turl = url;
      +
      3754#endif
      +
      3755 using sgml_url = basic_url<char>;
      +
      3756
      +
      3760 template <class T>
      + +
      3762 {
      +
      3763 public:
      + +
      3765 _In_ const std::shared_ptr<basic_tester<T>>& _username,
      +
      3766 _In_ const std::shared_ptr<basic_tester<T>>& at,
      +
      3767 _In_ const std::shared_ptr<basic_tester<T>>& ip_lbracket,
      +
      3768 _In_ const std::shared_ptr<basic_tester<T>>& ip_rbracket,
      +
      3769 _In_ const std::shared_ptr<basic_tester<T>>& _ipv4_host,
      +
      3770 _In_ const std::shared_ptr<basic_tester<T>>& _ipv6_host,
      +
      3771 _In_ const std::shared_ptr<basic_tester<T>>& _dns_host,
      +
      3772 _In_ const std::locale& locale = std::locale()) :
      +
      3773 basic_tester<T>(locale),
      +
      3774 username(_username),
      +
      3775 m_at(at),
      +
      3776 m_ip_lbracket(ip_lbracket),
      +
      3777 m_ip_rbracket(ip_rbracket),
      +
      3778 ipv4_host(_ipv4_host),
      +
      3779 ipv6_host(_ipv6_host),
      +
      3780 dns_host(_dns_host)
      +
      3781 {}
      +
      3782
      +
      3783 virtual bool match(
      +
      3784 _In_reads_or_z_(end) const T* text,
      +
      3785 _In_ size_t start = 0,
      +
      3786 _In_ size_t end = (size_t)-1,
      +
      3787 _In_ int flags = match_default)
      +
      3788 {
      +
      3789 assert(text || start >= end);
      +
      3790
      +
      3791 if (username->match(text, start, end, flags) &&
      +
      3792 m_at->match(text, username->interval.end, end, flags))
      +
      3793 {
      +
      3794 // Username@
      +
      3795 if (m_ip_lbracket->match(text, m_at->interval.end, end, flags) &&
      +
      3796 ipv4_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
      +
      3797 m_ip_rbracket->match(text, ipv4_host->interval.end, end, flags))
      +
      3798 {
      +
      3799 // Host is IPv4
      +
      3800 interval.end = m_ip_rbracket->interval.end;
      +
      3801 ipv6_host->invalidate();
      +
      3802 dns_host->invalidate();
      +
      3803 }
      +
      3804 else if (
      +
      3805 m_ip_lbracket->match(text, m_at->interval.end, end, flags) &&
      +
      3806 ipv6_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
      +
      3807 m_ip_rbracket->match(text, ipv6_host->interval.end, end, flags))
      +
      3808 {
      +
      3809 // Host is IPv6
      +
      3810 interval.end = m_ip_rbracket->interval.end;
      +
      3811 ipv4_host->invalidate();
      +
      3812 dns_host->invalidate();
      +
      3813 }
      +
      3814 else if (dns_host->match(text, m_at->interval.end, end, flags)) {
      +
      3815 // Host is hostname
      +
      3816 interval.end = dns_host->interval.end;
      +
      3817 ipv4_host->invalidate();
      +
      3818 ipv6_host->invalidate();
      +
      3819 }
      +
      3820 else
      +
      3821 goto error;
      +
      3822 interval.start = start;
      +
      3823 return true;
      +
      3824 }
      +
      3825
      +
      3826 error:
      +
      3827 username->invalidate();
      +
      3828 ipv4_host->invalidate();
      +
      3829 ipv6_host->invalidate();
      +
      3830 dns_host->invalidate();
      +
      3831 interval.start = (interval.end = start) + 1;
      +
      3832 return false;
      +
      3833 }
      +
      3834
      +
      3835 virtual void invalidate()
      +
      3836 {
      +
      3837 username->invalidate();
      +
      3838 ipv4_host->invalidate();
      +
      3839 ipv6_host->invalidate();
      +
      3840 dns_host->invalidate();
      + +
      3842 }
      +
      3843
      +
      3844 public:
      +
      3845 std::shared_ptr<basic_tester<T>> username;
      +
      3846 std::shared_ptr<basic_tester<T>> ipv4_host;
      +
      3847 std::shared_ptr<basic_tester<T>> ipv6_host;
      +
      3848 std::shared_ptr<basic_tester<T>> dns_host;
      +
      3849
      +
      3850 protected:
      +
      3851 std::shared_ptr<basic_tester<T>> m_at;
      +
      3852 std::shared_ptr<basic_tester<T>> m_ip_lbracket;
      +
      3853 std::shared_ptr<basic_tester<T>> m_ip_rbracket;
      +
      3854 };
      +
      3855
      + + +
      3858#ifdef _UNICODE
      + +
      3860#else
      + +
      3862#endif
      + +
      3864
      +
      3868 template <class T>
      + +
      3870 {
      +
      3871 public:
      + +
      3873 _In_ const std::shared_ptr<basic_tester<T>>& _emoticon,
      +
      3874 _In_ const std::shared_ptr<basic_tester<T>>& _apex,
      +
      3875 _In_ const std::shared_ptr<basic_tester<T>>& _eyes,
      +
      3876 _In_ const std::shared_ptr<basic_tester<T>>& _nose,
      +
      3877 _In_ const std::shared_ptr<basic_set<T>>& _mouth,
      +
      3878 _In_ const std::locale& locale = std::locale()) :
      +
      3879 basic_tester<T>(locale),
      +
      3880 emoticon(_emoticon),
      +
      3881 apex(_apex),
      +
      3882 eyes(_eyes),
      +
      3883 nose(_nose),
      +
      3884 mouth(_mouth)
      +
      3885 {}
      +
      3886
      +
      3887 virtual bool match(
      +
      3888 _In_reads_or_z_(end) const T* text,
      +
      3889 _In_ size_t start = 0,
      +
      3890 _In_ size_t end = (size_t)-1,
      +
      3891 _In_ int flags = match_default)
      +
      3892 {
      +
      3893 assert(text || start >= end);
      +
      3894
      +
      3895 if (emoticon && emoticon->match(text, start, end, flags)) {
      +
      3896 if (apex) apex->invalidate();
      +
      3897 eyes->invalidate();
      +
      3898 if (nose) nose->invalidate();
      +
      3899 mouth->invalidate();
      +
      3900 interval.start = start;
      + +
      3902 return true;
      +
      3903 }
      +
      3904
      +
      3905 interval.end = start;
      +
      3906
      +
      3907 if (apex && apex->match(text, interval.end, end, flags))
      +
      3908 interval.end = apex->interval.end;
      +
      3909
      +
      3910 if (eyes->match(text, interval.end, end, flags)) {
      +
      3911 if (nose && nose->match(text, eyes->interval.end, end, flags) &&
      +
      3912 mouth->match(text, nose->interval.end, end, flags))
      +
      3913 {
      +
      3914 size_t
      +
      3915 start_mouth = mouth->interval.start,
      +
      3916 hit_offset = mouth->hit_offset;
      +
      3917 // Mouth may repeat :-)))))))
      +
      3918 for (interval.end = mouth->interval.end; mouth->match(text, interval.end, end, flags) && mouth->hit_offset == hit_offset; interval.end = mouth->interval.end);
      +
      3919 mouth->interval.start = start_mouth;
      +
      3920 mouth->interval.end = interval.end;
      +
      3921 interval.start = start;
      +
      3922 return true;
      +
      3923 }
      +
      3924 if (mouth->match(text, eyes->interval.end, end, flags)) {
      +
      3925 size_t
      +
      3926 start_mouth = mouth->interval.start,
      +
      3927 hit_offset = mouth->hit_offset;
      +
      3928 // Mouth may repeat :-)))))))
      +
      3929 for (interval.end = mouth->interval.end; mouth->match(text, interval.end, end, flags) && mouth->hit_offset == hit_offset; interval.end = mouth->interval.end);
      +
      3930 if (nose) nose->invalidate();
      +
      3931 mouth->interval.start = start_mouth;
      +
      3932 mouth->interval.end = interval.end;
      +
      3933 interval.start = start;
      +
      3934 return true;
      +
      3935 }
      +
      3936 }
      +
      3937
      +
      3938 if (emoticon) emoticon->invalidate();
      +
      3939 if (apex) apex->invalidate();
      +
      3940 eyes->invalidate();
      +
      3941 if (nose) nose->invalidate();
      +
      3942 mouth->invalidate();
      +
      3943 interval.start = (interval.end = start) + 1;
      +
      3944 return false;
      +
      3945 }
      +
      3946
      +
      3947 virtual void invalidate()
      +
      3948 {
      +
      3949 if (emoticon) emoticon->invalidate();
      +
      3950 if (apex) apex->invalidate();
      +
      3951 eyes->invalidate();
      +
      3952 if (nose) nose->invalidate();
      +
      3953 mouth->invalidate();
      + +
      3955 }
      +
      3956
      +
      3957 public:
      +
      3958 std::shared_ptr<basic_tester<T>> emoticon;
      +
      3959 std::shared_ptr<basic_tester<T>> apex;
      +
      3960 std::shared_ptr<basic_tester<T>> eyes;
      +
      3961 std::shared_ptr<basic_tester<T>> nose;
      +
      3962 std::shared_ptr<basic_set<T>> mouth;
      +
      3963 };
      +
      3964
      + + +
      3967#ifdef _UNICODE
      +
      3968 using temoticon = wemoticon;
      +
      3969#else
      +
      3970 using temoticon = emoticon;
      +
      3971#endif
      + +
      3973
      +
      3977 template <class T>
      +
      3978 class basic_date : public basic_tester<T>
      +
      3979 {
      +
      3980 public:
      +
      3981 enum class format {
      +
      3982 dmy = 0x1,
      +
      3983 mdy = 0x2,
      +
      3984 ymd = 0x4,
      +
      3985 ym = 0x8,
      +
      3986 my = 0x10,
      +
      3987 dm = 0x20,
      +
      3988 md = 0x40,
      +
      3989 };
      +
      3990
      +
      3991 basic_date(
      +
      3992 _In_ int format_mask,
      +
      3993 _In_ const std::shared_ptr<basic_integer<T>>& _day,
      +
      3994 _In_ const std::shared_ptr<basic_integer<T>>& _month,
      +
      3995 _In_ const std::shared_ptr<basic_integer<T>>& _year,
      +
      3996 _In_ const std::shared_ptr<basic_set<T>>& separator,
      +
      3997 _In_ const std::shared_ptr<basic_tester<T>>& space,
      +
      3998 _In_ const std::locale& locale = std::locale()) :
      +
      3999 basic_tester<T>(locale),
      +
      4000 format(0),
      +
      4001 m_format_mask(format_mask),
      +
      4002 day(_day),
      +
      4003 month(_month),
      +
      4004 year(_year),
      +
      4005 m_separator(separator),
      +
      4006 m_space(space)
      +
      4007 {}
      +
      4008
      +
      4009 virtual bool match(
      +
      4010 _In_reads_or_z_(end) const T* text,
      +
      4011 _In_ size_t start = 0,
      +
      4012 _In_ size_t end = (size_t)-1,
      +
      4013 _In_ int flags = match_default)
      +
      4014 {
      +
      4015 assert(text || start >= end);
      +
      4016
      +
      4017 const int space_match_flags = flags & ~match_multiline; // Spaces in dates must never be broken in new line.
      +
      4018 if ((m_format_mask & format::dmy) != 0) {
      +
      4019 if (day->match(text, start, end, flags)) {
      +
      4020 for (interval.end = day->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4021 if (m_separator->match(text, interval.end, end, flags)) {
      +
      4022 size_t hit_offset = m_separator->hit_offset;
      +
      4023 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4024 if (month->match(text, interval.end, end, flags)) {
      +
      4025 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4026 if (m_separator->match(text, interval.end, end, flags) &&
      +
      4027 m_separator->hit_offset == hit_offset) // Both separators must match.
      +
      4028 {
      +
      4029 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4030 if (year->match(text, interval.end, end, flags) &&
      +
      4031 is_valid(day->value, month->value))
      +
      4032 {
      +
      4033 interval.start = start;
      +
      4034 interval.end = year->interval.end;
      +
      4035 format = format::dmy;
      +
      4036 return true;
      +
      4037 }
      +
      4038 }
      +
      4039 }
      +
      4040 }
      +
      4041 }
      +
      4042 }
      +
      4043
      +
      4044 if ((m_format_mask & format::mdy) != 0) {
      +
      4045 if (month->match(text, start, end, flags)) {
      +
      4046 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4047 if (m_separator->match(text, interval.end, end, flags)) {
      +
      4048 size_t hit_offset = m_separator->hit_offset;
      +
      4049 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4050 if (day->match(text, interval.end, end, flags)) {
      +
      4051 for (interval.end = day->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4052 if (m_separator->match(text, interval.end, end, flags) &&
      +
      4053 m_separator->hit_offset == hit_offset) // Both separators must match.
      +
      4054 {
      +
      4055 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4056 if (year->match(text, interval.end, end, flags) &&
      +
      4057 is_valid(day->value, month->value))
      +
      4058 {
      +
      4059 interval.start = start;
      +
      4060 interval.end = year->interval.end;
      +
      4061 format = format::mdy;
      +
      4062 return true;
      +
      4063 }
      +
      4064 }
      +
      4065 }
      +
      4066 }
      +
      4067 }
      +
      4068 }
      +
      4069
      +
      4070 if ((m_format_mask & format::ymd) != 0) {
      +
      4071 if (year->match(text, start, end, flags)) {
      +
      4072 for (interval.end = year->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4073 if (m_separator->match(text, interval.end, end, flags)) {
      +
      4074 size_t hit_offset = m_separator->hit_offset;
      +
      4075 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4076 if (month->match(text, interval.end, end, flags)) {
      +
      4077 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4078 if (m_separator->match(text, interval.end, end, flags) &&
      +
      4079 m_separator->hit_offset == hit_offset) // Both separators must match.
      +
      4080 {
      +
      4081 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4082 if (day->match(text, interval.end, end, flags) &&
      +
      4083 is_valid(day->value, month->value))
      +
      4084 {
      +
      4085 interval.start = start;
      +
      4086 interval.end = day->interval.end;
      +
      4087 format = format::ymd;
      +
      4088 return true;
      +
      4089 }
      +
      4090 }
      +
      4091 }
      +
      4092 }
      +
      4093 }
      +
      4094 }
      +
      4095
      +
      4096 if ((m_format_mask & format::ym) != 0) {
      +
      4097 if (year->match(text, start, end, flags)) {
      +
      4098 for (interval.end = year->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4099 if (m_separator->match(text, interval.end, end, flags)) {
      +
      4100 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4101 if (month->match(text, interval.end, end, flags) &&
      +
      4102 is_valid((size_t)-1, month->value))
      +
      4103 {
      +
      4104 if (day) day->invalidate();
      +
      4105 interval.start = start;
      +
      4106 interval.end = month->interval.end;
      +
      4107 format = format::ym;
      +
      4108 return true;
      +
      4109 }
      +
      4110 }
      +
      4111 }
      +
      4112 }
      +
      4113
      +
      4114 if ((m_format_mask & format::my) != 0) {
      +
      4115 if (month->match(text, start, end, flags)) {
      +
      4116 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4117 if (m_separator->match(text, interval.end, end, flags)) {
      +
      4118 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4119 if (year->match(text, interval.end, end, flags) &&
      +
      4120 is_valid((size_t)-1, month->value))
      +
      4121 {
      +
      4122 if (day) day->invalidate();
      +
      4123 interval.start = start;
      +
      4124 interval.end = year->interval.end;
      +
      4125 format = format::my;
      +
      4126 return true;
      +
      4127 }
      +
      4128 }
      +
      4129 }
      +
      4130 }
      +
      4131
      +
      4132 if ((m_format_mask & format::dm) != 0) {
      +
      4133 if (day->match(text, start, end, flags)) {
      +
      4134 for (interval.end = day->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4135 if (m_separator->match(text, interval.end, end, flags)) {
      +
      4136 size_t hit_offset = m_separator->hit_offset;
      +
      4137 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4138 if (month->match(text, interval.end, end, flags) &&
      +
      4139 is_valid(day->value, month->value))
      +
      4140 {
      +
      4141 if (year) year->invalidate();
      +
      4142 interval.start = start;
      +
      4143 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4144 if (m_separator->match(text, interval.end, end, flags) &&
      +
      4145 m_separator->hit_offset == hit_offset) // Both separators must match.
      +
      4146 interval.end = m_separator->interval.end;
      +
      4147 else
      +
      4148 interval.end = month->interval.end;
      +
      4149 format = format::dm;
      +
      4150 return true;
      +
      4151 }
      +
      4152 }
      +
      4153 }
      +
      4154 }
      +
      4155
      +
      4156 if ((m_format_mask & format::md) != 0) {
      +
      4157 if (month->match(text, start, end, flags)) {
      +
      4158 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4159 if (m_separator->match(text, interval.end, end, flags)) {
      +
      4160 size_t hit_offset = m_separator->hit_offset;
      +
      4161 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4162 if (day->match(text, interval.end, end, flags) &&
      +
      4163 is_valid(day->value, month->value))
      +
      4164 {
      +
      4165 if (year) year->invalidate();
      +
      4166 interval.start = start;
      +
      4167 for (interval.end = day->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
      +
      4168 if (m_separator->match(text, interval.end, end, flags) &&
      +
      4169 m_separator->hit_offset == hit_offset) // Both separators must match.
      +
      4170 interval.end = m_separator->interval.end;
      +
      4171 else
      +
      4172 interval.end = day->interval.end;
      +
      4173 format = format::md;
      +
      4174 return true;
      +
      4175 }
      +
      4176 }
      +
      4177 }
      +
      4178 }
      +
      4179
      +
      4180 if (day) day->invalidate();
      +
      4181 if (month) month->invalidate();
      +
      4182 if (year) year->invalidate();
      +
      4183 format = 0;
      +
      4184 interval.start = (interval.end = start) + 1;
      +
      4185 return false;
      +
      4186 }
      +
      4187
      +
      4188 virtual void invalidate()
      +
      4189 {
      +
      4190 if (day) day->invalidate();
      +
      4191 if (month) month->invalidate();
      +
      4192 if (year) year->invalidate();
      +
      4193 format = 0;
      + +
      4195 }
      +
      4196
      +
      4197 protected:
      +
      4198 static inline bool is_valid(size_t day, size_t month)
      +
      4199 {
      +
      4200 if (month == (size_t)-1) {
      +
      4201 // Default to January. This allows validating day only, as January has all 31 days.
      +
      4202 month = 1;
      +
      4203 }
      +
      4204 if (day == (size_t)-1) {
      +
      4205 // Default to 1st day in month. This allows validating month only, as each month has 1st day.
      +
      4206 day = 1;
      +
      4207 }
      +
      4208
      +
      4209 switch (month) {
      +
      4210 case 1:
      +
      4211 case 3:
      +
      4212 case 5:
      +
      4213 case 7:
      +
      4214 case 8:
      +
      4215 case 10:
      +
      4216 case 12:
      +
      4217 return 1 <= day && day <= 31;
      +
      4218 case 2:
      +
      4219 return 1 <= day && day <= 29;
      +
      4220 case 4:
      +
      4221 case 6:
      +
      4222 case 9:
      +
      4223 case 11:
      +
      4224 return 1 <= day && day <= 30;
      +
      4225 default:
      +
      4226 return false;
      +
      4227 }
      +
      4228 }
      +
      4229
      +
      4230 public:
      +
      4231 format format;
      +
      4232 std::shared_ptr<basic_integer<T>> day;
      +
      4233 std::shared_ptr<basic_integer<T>> month;
      +
      4234 std::shared_ptr<basic_integer<T>> year;
      +
      4235
      +
      4236 protected:
      +
      4237 int m_format_mask;
      +
      4238 std::shared_ptr<basic_set<T>> m_separator;
      +
      4239 std::shared_ptr<basic_tester<T>> m_space;
      +
      4240 };
      +
      4241
      +
      4242 using date = basic_date<char>;
      +
      4243 using wdate = basic_date<wchar_t>;
      +
      4244#ifdef _UNICODE
      +
      4245 using tdate = wdate;
      +
      4246#else
      +
      4247 using tdate = date;
      +
      4248#endif
      + +
      4250
      +
      4254 template <class T>
      +
      4255 class basic_time : public basic_tester<T>
      +
      4256 {
      +
      4257 public:
      +
      4258 basic_time(
      +
      4259 _In_ const std::shared_ptr<basic_integer10<T>>& _hour,
      +
      4260 _In_ const std::shared_ptr<basic_integer10<T>>& _minute,
      +
      4261 _In_ const std::shared_ptr<basic_integer10<T>>& _second,
      +
      4262 _In_ const std::shared_ptr<basic_integer10<T>>& _millisecond,
      +
      4263 _In_ const std::shared_ptr<basic_set<T>>& separator,
      +
      4264 _In_ const std::shared_ptr<basic_tester<T>>& millisecond_separator,
      +
      4265 _In_ const std::locale& locale = std::locale()) :
      +
      4266 basic_tester<T>(locale),
      +
      4267 hour(_hour),
      +
      4268 minute(_minute),
      +
      4269 second(_second),
      +
      4270 millisecond(_millisecond),
      +
      4271 m_separator(separator),
      +
      4272 m_millisecond_separator(millisecond_separator)
      +
      4273 {}
      +
      4274
      +
      4275 virtual bool match(
      +
      4276 _In_reads_or_z_(end) const T* text,
      +
      4277 _In_ size_t start = 0,
      +
      4278 _In_ size_t end = (size_t)-1,
      +
      4279 _In_ int flags = match_default)
      +
      4280 {
      +
      4281 assert(text || start >= end);
      +
      4282
      +
      4283 if (hour->match(text, start, end, flags) &&
      +
      4284 m_separator->match(text, hour->interval.end, end, flags) &&
      +
      4285 minute->match(text, m_separator->interval.end, end, flags) &&
      +
      4286 minute->value < 60)
      +
      4287 {
      +
      4288 // hh::mm
      +
      4289 size_t hit_offset = m_separator->hit_offset;
      +
      4290 if (m_separator->match(text, minute->interval.end, end, flags) &&
      +
      4291 m_separator->hit_offset == hit_offset && // Both separators must match.
      +
      4292 second && second->match(text, m_separator->interval.end, end, flags) &&
      +
      4293 second->value < 60)
      +
      4294 {
      +
      4295 // hh::mm:ss
      +
      4296 if (m_millisecond_separator && m_millisecond_separator->match(text, second->interval.end, end, flags) &&
      +
      4297 millisecond && millisecond->match(text, m_millisecond_separator->interval.end, end, flags) &&
      +
      4298 millisecond->value < 1000)
      +
      4299 {
      +
      4300 // hh::mm:ss.mmmm
      +
      4301 interval.end = millisecond->interval.end;
      +
      4302 }
      +
      4303 else {
      +
      4304 if (millisecond) millisecond->invalidate();
      +
      4305 interval.end = second->interval.end;
      +
      4306 }
      +
      4307 }
      +
      4308 else {
      +
      4309 if (second) second->invalidate();
      +
      4310 if (millisecond) millisecond->invalidate();
      +
      4311 interval.end = minute->interval.end;
      +
      4312 }
      +
      4313 interval.start = start;
      +
      4314 return true;
      +
      4315 }
      +
      4316
      +
      4317 hour->invalidate();
      +
      4318 minute->invalidate();
      +
      4319 if (second) second->invalidate();
      +
      4320 if (millisecond) millisecond->invalidate();
      +
      4321 interval.start = (interval.end = start) + 1;
      +
      4322 return false;
      +
      4323 }
      +
      4324
      +
      4325 virtual void invalidate()
      +
      4326 {
      +
      4327 hour->invalidate();
      +
      4328 minute->invalidate();
      +
      4329 if (second) second->invalidate();
      +
      4330 if (millisecond) millisecond->invalidate();
      + +
      4332 }
      +
      4333
      +
      4334 public:
      +
      4335 std::shared_ptr<basic_integer10<T>> hour;
      +
      4336 std::shared_ptr<basic_integer10<T>> minute;
      +
      4337 std::shared_ptr<basic_integer10<T>> second;
      +
      4338 std::shared_ptr<basic_integer10<T>> millisecond;
      +
      4339
      +
      4340 protected:
      +
      4341 std::shared_ptr<basic_set<T>> m_separator;
      +
      4342 std::shared_ptr<basic_tester<T>> m_millisecond_separator;
      +
      4343 };
      +
      4344
      +
      4345 using time = basic_time<char>;
      +
      4346 using wtime = basic_time<wchar_t>;
      +
      4347#ifdef _UNICODE
      +
      4348 using ttime = wtime;
      +
      4349#else
      +
      4350 using ttime = time;
      +
      4351#endif
      + +
      4353
      +
      4357 template <class T>
      +
      4358 class basic_angle : public basic_tester<T>
      +
      4359 {
      +
      4360 public:
      + +
      4362 _In_ const std::shared_ptr<basic_integer10<T>>& _degree,
      +
      4363 _In_ const std::shared_ptr<basic_tester<T>>& _degree_separator,
      +
      4364 _In_ const std::shared_ptr<basic_integer10<T>>& _minute,
      +
      4365 _In_ const std::shared_ptr<basic_tester<T>>& _minute_separator,
      +
      4366 _In_ const std::shared_ptr<basic_integer10<T>>& _second,
      +
      4367 _In_ const std::shared_ptr<basic_tester<T>>& _second_separator,
      +
      4368 _In_ const std::shared_ptr<basic_tester<T>>& _decimal,
      +
      4369 _In_ const std::locale& locale = std::locale()) :
      +
      4370 basic_tester<T>(locale),
      +
      4371 degree(_degree),
      +
      4372 degree_separator(_degree_separator),
      +
      4373 minute(_minute),
      +
      4374 minute_separator(_minute_separator),
      +
      4375 second(_second),
      +
      4376 second_separator(_second_separator),
      +
      4377 decimal(_decimal)
      +
      4378 {}
      +
      4379
      +
      4380 virtual bool match(
      +
      4381 _In_reads_or_z_(end) const T* text,
      +
      4382 _In_ size_t start = 0,
      +
      4383 _In_ size_t end = (size_t)-1,
      +
      4384 _In_ int flags = match_default)
      +
      4385 {
      +
      4386 assert(text || start >= end);
      +
      4387
      +
      4388 interval.end = start;
      +
      4389
      +
      4390 if (degree->match(text, interval.end, end, flags) &&
      +
      4391 degree_separator->match(text, degree->interval.end, end, flags))
      +
      4392 {
      +
      4393 // Degrees
      +
      4394 interval.end = degree_separator->interval.end;
      +
      4395 }
      +
      4396 else {
      +
      4397 degree->invalidate();
      +
      4398 degree_separator->invalidate();
      +
      4399 }
      +
      4400
      +
      4401 if (minute->match(text, interval.end, end, flags) &&
      +
      4402 minute->value < 60 &&
      +
      4403 minute_separator->match(text, minute->interval.end, end, flags))
      +
      4404 {
      +
      4405 // Minutes
      +
      4406 interval.end = minute_separator->interval.end;
      +
      4407 }
      +
      4408 else {
      +
      4409 minute->invalidate();
      +
      4410 minute_separator->invalidate();
      +
      4411 }
      +
      4412
      +
      4413 if (second && second->match(text, interval.end, end, flags) &&
      +
      4414 second->value < 60)
      +
      4415 {
      +
      4416 // Seconds
      +
      4417 interval.end = second->interval.end;
      +
      4418 if (second_separator && second_separator->match(text, interval.end, end, flags))
      +
      4419 interval.end = second_separator->interval.end;
      +
      4420 else
      +
      4421 if (second_separator) second_separator->invalidate();
      +
      4422 }
      +
      4423 else {
      +
      4424 if (second) second->invalidate();
      +
      4425 if (second_separator) second_separator->invalidate();
      +
      4426 }
      +
      4427
      +
      4428 if (degree->interval.start < degree->interval.end ||
      +
      4429 minute->interval.start < minute->interval.end ||
      +
      4430 second && second->interval.start < second->interval.end)
      +
      4431 {
      +
      4432 if (decimal && decimal->match(text, interval.end, end, flags)) {
      +
      4433 // Decimals
      +
      4434 interval.end = decimal->interval.end;
      +
      4435 }
      +
      4436 else if (decimal)
      +
      4437 decimal->invalidate();
      +
      4438 interval.start = start;
      +
      4439 return true;
      +
      4440 }
      +
      4441 if (decimal) decimal->invalidate();
      +
      4442 interval.start = (interval.end = start) + 1;
      +
      4443 return false;
      +
      4444 }
      +
      4445
      +
      4446 virtual void invalidate()
      +
      4447 {
      +
      4448 degree->invalidate();
      +
      4449 degree_separator->invalidate();
      +
      4450 minute->invalidate();
      +
      4451 minute_separator->invalidate();
      +
      4452 if (second) second->invalidate();
      +
      4453 if (second_separator) second_separator->invalidate();
      +
      4454 if (decimal) decimal->invalidate();
      + +
      4456 }
      +
      4457
      +
      4458 public:
      +
      4459 std::shared_ptr<basic_integer10<T>> degree;
      +
      4460 std::shared_ptr<basic_tester<T>> degree_separator;
      +
      4461 std::shared_ptr<basic_integer10<T>> minute;
      +
      4462 std::shared_ptr<basic_tester<T>> minute_separator;
      +
      4463 std::shared_ptr<basic_integer10<T>> second;
      +
      4464 std::shared_ptr<basic_tester<T>> second_separator;
      +
      4465 std::shared_ptr<basic_tester<T>> decimal;
      +
      4466 };
      +
      4467
      +
      4468 using angle = basic_angle<char>;
      + +
      4470#ifdef _UNICODE
      +
      4471 using RRegElKot = wangle;
      +
      4472#else
      +
      4473 using RRegElKot = angle;
      +
      4474#endif
      + +
      4476
      +
      4480 template <class T>
      + +
      4482 {
      +
      4483 public:
      + +
      4485 _In_ const std::shared_ptr<basic_tester<T>>& digit,
      +
      4486 _In_ const std::shared_ptr<basic_tester<T>>& plus_sign,
      +
      4487 _In_ const std::shared_ptr<basic_set<T>>& lparenthesis,
      +
      4488 _In_ const std::shared_ptr<basic_set<T>>& rparenthesis,
      +
      4489 _In_ const std::shared_ptr<basic_tester<T>>& separator,
      +
      4490 _In_ const std::shared_ptr<basic_tester<T>>& space,
      +
      4491 _In_ const std::locale& locale = std::locale()) :
      +
      4492 basic_tester<T>(locale),
      +
      4493 m_digit(digit),
      +
      4494 m_plus_sign(plus_sign),
      +
      4495 m_lparenthesis(lparenthesis),
      +
      4496 m_rparenthesis(rparenthesis),
      +
      4497 m_separator(separator),
      +
      4498 m_space(space)
      +
      4499 {}
      +
      4500
      +
      4501 virtual bool match(
      +
      4502 _In_reads_or_z_(end) const T* text,
      +
      4503 _In_ size_t start = 0,
      +
      4504 _In_ size_t end = (size_t)-1,
      +
      4505 _In_ int flags = match_default)
      +
      4506 {
      +
      4507 assert(text || start >= end);
      +
      4508
      +
      4509 size_t safe_digit_end = start, safe_value_size = 0;
      +
      4510 bool has_digits = false, after_digit = false, in_parentheses = false, after_parentheses = false;
      +
      4511 const int space_match_flags = flags & ~match_multiline; // Spaces in phone numbers must never be broken in new line.
      +
      4512
      +
      4513 interval.end = start;
      +
      4514 value.clear();
      +
      4515 m_lparenthesis->invalidate();
      +
      4516 m_rparenthesis->invalidate();
      +
      4517
      +
      4518 if (m_plus_sign && m_plus_sign->match(text, interval.end, end, flags)) {
      +
      4519 value.append(text + m_plus_sign->interval.start, text + m_plus_sign->interval.end);
      +
      4520 safe_value_size = value.size();
      +
      4521 interval.end = m_plus_sign->interval.end;
      +
      4522 }
      +
      4523
      +
      4524 for (;;) {
      +
      4525 assert(text || interval.end >= end);
      +
      4526 if (interval.end >= end || !text[interval.end])
      +
      4527 break;
      +
      4528 if (m_digit->match(text, interval.end, end, flags)) {
      +
      4529 // Digit
      +
      4530 value.append(text + m_digit->interval.start, text + m_digit->interval.end);
      +
      4531 interval.end = m_digit->interval.end;
      +
      4532 if (!in_parentheses) {
      +
      4533 safe_digit_end = interval.end;
      +
      4534 safe_value_size = value.size();
      +
      4535 has_digits = true;
      +
      4536 }
      +
      4537 after_digit = true;
      +
      4538 after_parentheses = false;
      +
      4539 }
      +
      4540 else if (
      +
      4541 m_lparenthesis && !m_lparenthesis->interval && // No left parenthesis yet
      +
      4542 m_rparenthesis && !m_rparenthesis->interval && // Right parenthesis after left
      +
      4543 m_lparenthesis->match(text, interval.end, end, flags))
      +
      4544 {
      +
      4545 // Left parenthesis
      +
      4546 value.Prilepi(text + m_lparenthesis->interval.start, m_lparenthesis->interval.size());
      +
      4547 interval.end = m_lparenthesis->interval.end;
      +
      4548 in_parentheses = true;
      +
      4549 after_digit = false;
      +
      4550 after_parentheses = false;
      +
      4551 }
      +
      4552 else if (
      +
      4553 in_parentheses && // After left parenthesis
      +
      4554 m_rparenthesis && !m_rparenthesis->interval && // No right parenthesis yet
      +
      4555 m_rparenthesis->match(text, interval.end, end, flags) &&
      +
      4556 m_lparenthesis->hit_offset == m_rparenthesis->hit_offset) // Left and right parentheses must match
      +
      4557 {
      +
      4558 // Right parenthesis
      +
      4559 value.append(text + m_rparenthesis->interval.start, text + m_rparenthesis->interval.end);
      +
      4560 interval.end = m_rparenthesis->interval.end;
      +
      4561 safe_digit_end = interval.end;
      +
      4562 safe_value_size = value.size();
      +
      4563 in_parentheses = false;
      +
      4564 after_digit = false;
      +
      4565 after_parentheses = true;
      +
      4566 }
      +
      4567 else if (
      +
      4568 after_digit &&
      +
      4569 !in_parentheses && // No separators inside parentheses
      +
      4570 !after_parentheses && // No separators following right parenthesis
      +
      4571 m_separator && m_separator->match(text, interval.end, end, flags))
      +
      4572 {
      +
      4573 // Separator
      +
      4574 interval.end = m_separator->interval.end;
      +
      4575 after_digit = false;
      +
      4576 after_parentheses = false;
      +
      4577 }
      +
      4578 else if (
      +
      4579 (after_digit || after_parentheses) &&
      +
      4580 m_space && m_space->match(text, interval.end, end, space_match_flags))
      +
      4581 {
      +
      4582 // Space
      +
      4583 interval.end = m_space->interval.end;
      +
      4584 after_digit = false;
      +
      4585 after_parentheses = false;
      +
      4586 }
      +
      4587 else
      +
      4588 break;
      +
      4589 }
      +
      4590 if (has_digits) {
      +
      4591 value.erase(safe_value_size);
      +
      4592 interval.start = start;
      +
      4593 interval.end = safe_digit_end;
      +
      4594 return true;
      +
      4595 }
      +
      4596 value.clear();
      +
      4597 interval.start = (interval.end = start) + 1;
      +
      4598 return false;
      +
      4599 }
      +
      4600
      +
      4601 virtual void invalidate()
      +
      4602 {
      +
      4603 value.clear();
      + +
      4605 }
      +
      4606
      +
      4607 public:
      +
      4608 std::basic_string<T> value;
      +
      4609
      +
      4610 protected:
      +
      4611 std::shared_ptr<basic_tester<T>> m_digit;
      +
      4612 std::shared_ptr<basic_tester<T>> m_plus_sign;
      +
      4613 std::shared_ptr<basic_set<T>> m_lparenthesis;
      +
      4614 std::shared_ptr<basic_set<T>> m_rparenthesis;
      +
      4615 std::shared_ptr<basic_tester<T>> m_separator;
      +
      4616 std::shared_ptr<basic_tester<T>> m_space;
      +
      4617 };
      +
      4618
      + + +
      4621#ifdef _UNICODE
      + +
      4623#else
      + +
      4625#endif
      + +
      4627
      +
      4631 template <class T>
      + +
      4633 {
      +
      4634 public:
      + +
      4636 _In_ const std::shared_ptr<basic_tester<T>>& element,
      +
      4637 _In_ const std::shared_ptr<basic_tester<T>>& digit,
      +
      4638 _In_ const std::shared_ptr<basic_tester<T>>& sign,
      +
      4639 _In_ const std::locale& locale = std::locale()) :
      +
      4640 basic_tester<T>(locale),
      +
      4641 m_element(element),
      +
      4642 m_digit(digit),
      +
      4643 m_sign(sign),
      +
      4644 has_digits(false),
      +
      4645 has_charge(false)
      +
      4646 {}
      +
      4647
      +
      4648 virtual bool match(
      +
      4649 _In_reads_or_z_(end) const T* text,
      +
      4650 _In_ size_t start = 0,
      +
      4651 _In_ size_t end = (size_t)-1,
      +
      4652 _In_ int flags = match_default)
      +
      4653 {
      +
      4654 assert(text || start >= end);
      +
      4655
      +
      4656 has_digits = false;
      +
      4657 has_charge = false;
      +
      4658 interval.end = start;
      +
      4659
      +
      4660 const int element_match_flags = flags & ~match_case_insensitive; // Chemical elements are always case-sensitive.
      +
      4661 for (;;) {
      +
      4662 if (m_element->match(text, interval.end, end, element_match_flags)) {
      +
      4663 interval.end = m_element->interval.end;
      +
      4664 while (m_digit->match(text, interval.end, end, flags)) {
      +
      4665 interval.end = m_digit->interval.end;
      +
      4666 has_digits = true;
      +
      4667 }
      +
      4668 }
      +
      4669 else if (start < interval.end) {
      +
      4670 if (m_sign->match(text, interval.end, end, flags)) {
      +
      4671 interval.end = m_sign->interval.end;
      +
      4672 has_charge = true;
      +
      4673 }
      +
      4674 interval.start = start;
      +
      4675 return true;
      +
      4676 }
      +
      4677 else {
      +
      4678 interval.start = (interval.end = start) + 1;
      +
      4679 return false;
      +
      4680 }
      +
      4681 }
      +
      4682 }
      +
      4683
      +
      4684 virtual void invalidate()
      +
      4685 {
      +
      4686 has_digits = false;
      +
      4687 has_charge = false;
      + +
      4689 }
      +
      4690
      +
      4691 public:
      +
      4692 bool has_digits;
      +
      4693 bool has_charge;
      +
      4694
      +
      4695 protected:
      +
      4696 std::shared_ptr<basic_tester<T>> m_element;
      +
      4697 std::shared_ptr<basic_tester<T>> m_digit;
      +
      4698 std::shared_ptr<basic_tester<T>> m_sign;
      +
      4699 };
      +
      4700
      + + +
      4703#ifdef _UNICODE
      + +
      4705#else
      + +
      4707#endif
      + +
      4709
      + +
      4714 {
      +
      4715 public:
      +
      4716 virtual bool match(
      +
      4717 _In_reads_or_z_(end) const char* text,
      +
      4718 _In_ size_t start = 0,
      +
      4719 _In_ size_t end = (size_t)-1,
      +
      4720 _In_ int flags = match_default)
      +
      4721 {
      +
      4722 assert(text || start >= end);
      +
      4723 interval.end = start;
      +
      4724
      +
      4725 assert(text || interval.end >= end);
      +
      4726 if (interval.end < end && text[interval.end]) {
      +
      4727 if (text[interval.end] == '\r') {
      +
      4728 interval.end++;
      +
      4729 if (interval.end < end && text[interval.end] == '\n') {
      +
      4730 interval.start = start;
      +
      4731 interval.end++;
      +
      4732 return true;
      +
      4733 }
      +
      4734 }
      +
      4735 else if (text[interval.end] == '\n') {
      +
      4736 interval.start = start;
      +
      4737 interval.end++;
      +
      4738 return true;
      +
      4739 }
      +
      4740 }
      +
      4741 interval.start = (interval.end = start) + 1;
      +
      4742 return false;
      +
      4743 }
      +
      4744 };
      +
      4745
      +
      4749 class http_space : public tester
      +
      4750 {
      +
      4751 public:
      +
      4752 virtual bool match(
      +
      4753 _In_reads_or_z_(end) const char* text,
      +
      4754 _In_ size_t start = 0,
      +
      4755 _In_ size_t end = (size_t)-1,
      +
      4756 _In_ int flags = match_default)
      +
      4757 {
      +
      4758 assert(text || start >= end);
      +
      4759 interval.end = start;
      +
      4760 if (m_line_break.match(text, interval.end, end, flags)) {
      +
      4761 interval.end = m_line_break.interval.end;
      +
      4762 if (interval.end < end && text[interval.end] && isspace(text[interval.end])) {
      +
      4763 interval.start = start;
      +
      4764 interval.end++;
      +
      4765 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
      +
      4766 return true;
      +
      4767 }
      +
      4768 }
      +
      4769 else if (interval.end < end && text[interval.end] && isspace(text[interval.end])) {
      +
      4770 interval.start = start;
      +
      4771 interval.end++;
      +
      4772 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
      +
      4773 return true;
      +
      4774 }
      +
      4775 interval.start = (interval.end = start) + 1;
      +
      4776 return false;
      +
      4777 }
      +
      4778
      +
      4779 protected:
      +
      4780 http_line_break m_line_break;
      +
      4781 };
      +
      4782
      +
      4786 class http_text_char : public tester
      +
      4787 {
      +
      4788 public:
      +
      4789 virtual bool match(
      +
      4790 _In_reads_or_z_(end) const char* text,
      +
      4791 _In_ size_t start = 0,
      +
      4792 _In_ size_t end = (size_t)-1,
      +
      4793 _In_ int flags = match_default)
      +
      4794 {
      +
      4795 assert(text || start >= end);
      +
      4796 interval.end = start;
      +
      4797
      +
      4798 assert(text || interval.end >= end);
      +
      4799 if (m_space.match(text, interval.end, end, flags)) {
      +
      4800 interval.start = start;
      +
      4801 interval.end = m_space.interval.end;
      +
      4802 return true;
      +
      4803 }
      +
      4804 else if (interval.end < end && text[interval.end] && text[interval.end] >= 0x20) {
      +
      4805 interval.start = start;
      +
      4806 interval.end++;
      +
      4807 return true;
      +
      4808 }
      +
      4809 interval.start = (interval.end = start) + 1;
      +
      4810 return false;
      +
      4811 }
      +
      4812
      +
      4813 protected:
      +
      4814 http_space m_space;
      +
      4815 };
      +
      4816
      +
      4820 class http_token : public tester
      +
      4821 {
      +
      4822 public:
      +
      4823 virtual bool match(
      +
      4824 _In_reads_or_z_(end) const char* text,
      +
      4825 _In_ size_t start = 0,
      +
      4826 _In_ size_t end = (size_t)-1,
      +
      4827 _In_ int flags = match_default)
      +
      4828 {
      +
      4829 assert(text || start >= end);
      +
      4830 interval.end = start;
      +
      4831 for (;;) {
      +
      4832 if (interval.end < end && text[interval.end]) {
      +
      4833 if ((unsigned int)text[interval.end] < 0x20 ||
      +
      4834 (unsigned int)text[interval.end] == 0x7f ||
      +
      4835 text[interval.end] == '(' ||
      +
      4836 text[interval.end] == ')' ||
      +
      4837 text[interval.end] == '<' ||
      +
      4838 text[interval.end] == '>' ||
      +
      4839 text[interval.end] == '@' ||
      +
      4840 text[interval.end] == ',' ||
      +
      4841 text[interval.end] == ';' ||
      +
      4842 text[interval.end] == ':' ||
      +
      4843 text[interval.end] == '\\' ||
      +
      4844 text[interval.end] == '\"' ||
      +
      4845 text[interval.end] == '/' ||
      +
      4846 text[interval.end] == '[' ||
      +
      4847 text[interval.end] == ']' ||
      +
      4848 text[interval.end] == '?' ||
      +
      4849 text[interval.end] == '=' ||
      +
      4850 text[interval.end] == '{' ||
      +
      4851 text[interval.end] == '}' ||
      +
      4852 isspace(text[interval.end]))
      +
      4853 break;
      +
      4854 else
      +
      4855 interval.end++;
      +
      4856 }
      +
      4857 else
      +
      4858 break;
      +
      4859 }
      +
      4860 if (start < interval.end) {
      +
      4861 interval.start = start;
      +
      4862 return true;
      +
      4863 }
      +
      4864 else {
      +
      4865 interval.start = (interval.end = start) + 1;
      +
      4866 return false;
      +
      4867 }
      +
      4868 }
      +
      4869 };
      +
      4870
      + +
      4875 {
      +
      4876 public:
      +
      4877 virtual bool match(
      +
      4878 _In_reads_or_z_(end) const char* text,
      +
      4879 _In_ size_t start = 0,
      +
      4880 _In_ size_t end = (size_t)-1,
      +
      4881 _In_ int flags = match_default)
      +
      4882 {
      +
      4883 assert(text || start >= end);
      +
      4884 interval.end = start;
      +
      4885 if (interval.end < end && text[interval.end] != '"')
      +
      4886 goto error;
      +
      4887 interval.end++;
      +
      4888 content.start = interval.end;
      +
      4889 for (;;) {
      +
      4890 assert(text || interval.end >= end);
      +
      4891 if (interval.end < end && text[interval.end]) {
      +
      4892 if (text[interval.end] == '"') {
      +
      4893 content.end = interval.end;
      +
      4894 interval.end++;
      +
      4895 break;
      +
      4896 }
      +
      4897 else if (text[interval.end] == '\\') {
      +
      4898 interval.end++;
      +
      4899 if (interval.end < end && text[interval.end]) {
      +
      4900 interval.end++;
      +
      4901 }
      +
      4902 else
      +
      4903 goto error;
      +
      4904 }
      +
      4905 else if (m_chr.match(text, interval.end, end, flags))
      +
      4906 interval.end++;
      +
      4907 else
      +
      4908 goto error;
      +
      4909 }
      +
      4910 else
      +
      4911 goto error;
      +
      4912 }
      +
      4913 interval.start = start;
      +
      4914 return true;
      +
      4915
      +
      4916 error:
      +
      4917 content.start = 1;
      +
      4918 content.end = 0;
      +
      4919 interval.start = (interval.end = start) + 1;
      +
      4920 return false;
      +
      4921 }
      +
      4922
      +
      4923 virtual void invalidate()
      +
      4924 {
      +
      4925 content.start = 1;
      +
      4926 content.end = 0;
      +
      4927 tester::invalidate();
      +
      4928 }
      +
      4929
      +
      4930 public:
      + +
      4932
      +
      4933 protected:
      +
      4934 http_text_char m_chr;
      +
      4935 };
      +
      4936
      +
      4940 class http_value : public tester
      +
      4941 {
      +
      4942 public:
      +
      4943 virtual bool match(
      +
      4944 _In_reads_or_z_(end) const char* text,
      +
      4945 _In_ size_t start = 0,
      +
      4946 _In_ size_t end = (size_t)-1,
      +
      4947 _In_ int flags = match_default)
      +
      4948 {
      +
      4949 assert(text || start >= end);
      +
      4950 interval.end = start;
      +
      4951 if (string.match(text, interval.end, end, flags)) {
      +
      4952 token.invalidate();
      +
      4953 interval.end = string.interval.end;
      +
      4954 interval.start = start;
      +
      4955 return true;
      +
      4956 }
      +
      4957 else if (token.match(text, interval.end, end, flags)) {
      +
      4958 string.invalidate();
      +
      4959 interval.end = token.interval.end;
      +
      4960 interval.start = start;
      +
      4961 return true;
      +
      4962 }
      +
      4963 else {
      +
      4964 interval.start = (interval.end = start) + 1;
      +
      4965 return false;
      +
      4966 }
      +
      4967 }
      +
      4968
      +
      4969 virtual void invalidate()
      +
      4970 {
      +
      4971 string.invalidate();
      +
      4972 token.invalidate();
      +
      4973 tester::invalidate();
      +
      4974 }
      +
      4975
      +
      4976 public:
      + + +
      4979 };
      +
      4980
      +
      4984 class http_parameter : public tester
      +
      4985 {
      +
      4986 public:
      +
      4987 virtual bool match(
      +
      4988 _In_reads_or_z_(end) const char* text,
      +
      4989 _In_ size_t start = 0,
      +
      4990 _In_ size_t end = (size_t)-1,
      +
      4991 _In_ int flags = match_default)
      +
      4992 {
      +
      4993 assert(text || start >= end);
      +
      4994 interval.end = start;
      +
      4995 if (name.match(text, interval.end, end, flags))
      +
      4996 interval.end = name.interval.end;
      +
      4997 else
      +
      4998 goto error;
      +
      4999 while (m_space.match(text, interval.end, end, flags))
      +
      5000 interval.end = m_space.interval.end;
      +
      5001 assert(text || interval.end >= end);
      +
      5002 if (interval.end < end && text[interval.end] == '=')
      +
      5003 interval.end++;
      +
      5004 else
      +
      5005 while (m_space.match(text, interval.end, end, flags))
      +
      5006 interval.end = m_space.interval.end;
      +
      5007 if (value.match(text, interval.end, end, flags))
      +
      5008 interval.end = value.interval.end;
      +
      5009 else
      +
      5010 goto error;
      +
      5011 interval.start = start;
      +
      5012 return true;
      +
      5013
      +
      5014 error:
      +
      5015 name.invalidate();
      +
      5016 value.invalidate();
      +
      5017 interval.start = (interval.end = start) + 1;
      +
      5018 return false;
      +
      5019 }
      +
      5020
      +
      5021 virtual void invalidate()
      +
      5022 {
      +
      5023 name.invalidate();
      +
      5024 value.invalidate();
      +
      5025 tester::invalidate();
      +
      5026 }
      +
      5027
      +
      5028 public:
      + + +
      5031
      +
      5032 protected:
      +
      5033 http_space m_space;
      +
      5034 };
      +
      5035
      +
      5039 class http_any_type : public tester
      +
      5040 {
      +
      5041 public:
      +
      5042 virtual bool match(
      +
      5043 _In_reads_or_z_(end) const char* text,
      +
      5044 _In_ size_t start = 0,
      +
      5045 _In_ size_t end = (size_t)-1,
      +
      5046 _In_ int flags = match_default)
      +
      5047 {
      +
      5048 assert(text || start >= end);
      +
      5049 if (start + 2 < end &&
      +
      5050 text[start] == '*' &&
      +
      5051 text[start + 1] == '/' &&
      +
      5052 text[start + 2] == '*')
      +
      5053 {
      +
      5054 interval.end = (interval.start = start) + 3;
      +
      5055 return true;
      +
      5056 }
      +
      5057 else if (start < end && text[start] == '*') {
      +
      5058 interval.end = (interval.start = start) + 1;
      +
      5059 return true;
      +
      5060 }
      +
      5061 else {
      +
      5062 interval.start = (interval.end = start) + 1;
      +
      5063 return false;
      +
      5064 }
      +
      5065 }
      +
      5066 };
      +
      5067
      + +
      5072 {
      +
      5073 public:
      +
      5074 virtual bool match(
      +
      5075 _In_reads_or_z_(end) const char* text,
      +
      5076 _In_ size_t start = 0,
      +
      5077 _In_ size_t end = (size_t)-1,
      +
      5078 _In_ int flags = match_default)
      +
      5079 {
      +
      5080 assert(text || start >= end);
      +
      5081 interval.end = start;
      +
      5082 if (type.match(text, interval.end, end, flags))
      +
      5083 interval.end = type.interval.end;
      +
      5084 else
      +
      5085 goto error;
      +
      5086 while (m_space.match(text, interval.end, end, flags))
      +
      5087 interval.end = m_space.interval.end;
      +
      5088 if (interval.end < end && text[interval.end] == '/')
      +
      5089 interval.end++;
      +
      5090 else
      +
      5091 goto error;
      +
      5092 while (m_space.match(text, interval.end, end, flags))
      +
      5093 interval.end = m_space.interval.end;
      +
      5094 if (subtype.match(text, interval.end, end, flags))
      +
      5095 interval.end = subtype.interval.end;
      +
      5096 else
      +
      5097 goto error;
      +
      5098 interval.start = start;
      +
      5099 return true;
      +
      5100
      +
      5101 error:
      +
      5102 type.invalidate();
      +
      5103 subtype.invalidate();
      +
      5104 interval.start = (interval.end = start) + 1;
      +
      5105 return false;
      +
      5106 }
      +
      5107
      +
      5108 virtual void invalidate()
      +
      5109 {
      +
      5110 type.invalidate();
      +
      5111 subtype.invalidate();
      +
      5112 tester::invalidate();
      +
      5113 }
      +
      5114
      +
      5115 public:
      +
      5116 http_token type;
      +
      5117 http_token subtype;
      +
      5118
      +
      5119 protected:
      +
      5120 http_space m_space;
      +
      5121 };
      +
      5122
      + +
      5127 {
      +
      5128 public:
      +
      5129 virtual bool match(
      +
      5130 _In_reads_or_z_(end) const char* text,
      +
      5131 _In_ size_t start = 0,
      +
      5132 _In_ size_t end = (size_t)-1,
      +
      5133 _In_ int flags = match_default)
      +
      5134 {
      +
      5135 assert(text || start >= end);
      +
      5136 if (!http_media_range::match(text, start, end, flags))
      +
      5137 goto error;
      +
      5138 params.clear();
      +
      5139 for (;;) {
      +
      5140 if (interval.end < end && text[interval.end]) {
      +
      5141 if (m_space.match(text, interval.end, end, flags))
      +
      5142 interval.end = m_space.interval.end;
      +
      5143 else if (text[interval.end] == ';') {
      +
      5144 interval.end++;
      +
      5145 while (m_space.match(text, interval.end, end, flags))
      +
      5146 interval.end = m_space.interval.end;
      +
      5147 http_parameter param;
      +
      5148 if (param.match(text, interval.end, end, flags)) {
      +
      5149 interval.end = param.interval.end;
      +
      5150 params.push_back(std::move(param));
      +
      5151 }
      +
      5152 else
      +
      5153 break;
      +
      5154 }
      +
      5155 else
      +
      5156 break;
      +
      5157 }
      +
      5158 else
      +
      5159 break;
      +
      5160 }
      +
      5161 interval.end = params.empty() ? subtype.interval.end : params.back().interval.end;
      +
      5162 return true;
      +
      5163
      +
      5164 error:
      +
      5165 http_media_range::invalidate();
      +
      5166 params.clear();
      +
      5167 interval.start = (interval.end = start) + 1;
      +
      5168 return false;
      +
      5169 }
      +
      5170
      +
      5171 virtual void invalidate()
      +
      5172 {
      +
      5173 params.clear();
      +
      5174 http_media_range::invalidate();
      +
      5175 }
      +
      5176
      +
      5177 public:
      +
      5178 std::list<http_parameter> params;
      +
      5179 };
      +
      5180
      + +
      5185 {
      +
      5186 public:
      +
      5187 virtual bool match(
      +
      5188 _In_reads_or_z_(end) const char* text,
      +
      5189 _In_ size_t start = 0,
      +
      5190 _In_ size_t end = (size_t)-1,
      +
      5191 _In_ int flags = match_default)
      +
      5192 {
      +
      5193 assert(text || start >= end);
      +
      5194 interval.end = start;
      +
      5195 for (;;) {
      +
      5196 if (interval.end < end && text[interval.end]) {
      +
      5197 if ((unsigned int)text[interval.end] < 0x20 ||
      +
      5198 (unsigned int)text[interval.end] == 0x7f ||
      +
      5199 text[interval.end] == ':' ||
      +
      5200 text[interval.end] == '/' ||
      +
      5201 isspace(text[interval.end]))
      +
      5202 break;
      +
      5203 else
      +
      5204 interval.end++;
      +
      5205 }
      +
      5206 else
      +
      5207 break;
      +
      5208 }
      +
      5209 if (start < interval.end) {
      +
      5210 interval.start = start;
      +
      5211 return true;
      +
      5212 }
      +
      5213 interval.start = (interval.end = start) + 1;
      +
      5214 return false;
      +
      5215 }
      +
      5216 };
      +
      5217
      +
      5221 class http_url_port : public tester
      +
      5222 {
      +
      5223 public:
      +
      5224 http_url_port(_In_ const std::locale& locale = std::locale()) :
      +
      5225 tester(locale),
      +
      5226 value(0)
      +
      5227 {}
      +
      5228
      +
      5229 virtual bool match(
      +
      5230 _In_reads_or_z_(end) const char* text,
      +
      5231 _In_ size_t start = 0,
      +
      5232 _In_ size_t end = (size_t)-1,
      +
      5233 _In_ int flags = match_default)
      +
      5234 {
      +
      5235 assert(text || start >= end);
      +
      5236 value = 0;
      +
      5237 interval.end = start;
      +
      5238 for (;;) {
      +
      5239 if (interval.end < end && text[interval.end]) {
      +
      5240 if ('0' <= text[interval.end] && text[interval.end] <= '9') {
      +
      5241 size_t _value = (size_t)value * 10 + text[interval.end] - '0';
      +
      5242 if (_value > (uint16_t)-1) {
      +
      5243 value = 0;
      +
      5244 interval.start = (interval.end = start) + 1;
      +
      5245 return false;
      +
      5246 }
      +
      5247 value = (uint16_t)_value;
      +
      5248 interval.end++;
      +
      5249 }
      +
      5250 else
      +
      5251 break;
      +
      5252 }
      +
      5253 else
      +
      5254 break;
      +
      5255 }
      +
      5256 if (start < interval.end) {
      +
      5257 interval.start = start;
      +
      5258 return true;
      +
      5259 }
      +
      5260 interval.start = (interval.end = start) + 1;
      +
      5261 return false;
      +
      5262 }
      +
      5263
      +
      5264 virtual void invalidate()
      +
      5265 {
      +
      5266 value = 0;
      +
      5267 tester::invalidate();
      +
      5268 }
      +
      5269
      +
      5270 public:
      +
      5271 uint16_t value;
      +
      5272 };
      +
      5273
      + +
      5278 {
      +
      5279 public:
      +
      5280 virtual bool match(
      +
      5281 _In_reads_or_z_(end) const char* text,
      +
      5282 _In_ size_t start = 0,
      +
      5283 _In_ size_t end = (size_t)-1,
      +
      5284 _In_ int flags = match_default)
      +
      5285 {
      +
      5286 assert(text || start >= end);
      +
      5287 interval.end = start;
      +
      5288 for (;;) {
      +
      5289 if (interval.end < end && text[interval.end]) {
      +
      5290 if ((unsigned int)text[interval.end] < 0x20 ||
      +
      5291 (unsigned int)text[interval.end] == 0x7f ||
      +
      5292 text[interval.end] == '?' ||
      +
      5293 text[interval.end] == '/' ||
      +
      5294 isspace(text[interval.end]))
      +
      5295 break;
      +
      5296 else
      +
      5297 interval.end++;
      +
      5298 }
      +
      5299 else
      +
      5300 break;
      +
      5301 }
      +
      5302 interval.start = start;
      +
      5303 return true;
      +
      5304 }
      +
      5305 };
      +
      5306
      +
      5310 class http_url_path : public tester
      +
      5311 {
      +
      5312 public:
      +
      5313 virtual bool match(
      +
      5314 _In_reads_or_z_(end) const char* text,
      +
      5315 _In_ size_t start = 0,
      +
      5316 _In_ size_t end = (size_t)-1,
      +
      5317 _In_ int flags = match_default)
      +
      5318 {
      +
      5319 assert(text || start >= end);
      + +
      5321 interval.end = start;
      +
      5322 segments.clear();
      +
      5323 assert(text || interval.end >= end);
      +
      5324 if (interval.end < end && text[interval.end] != '/')
      +
      5325 goto error;
      +
      5326 interval.end++;
      +
      5327 s.match(text, interval.end, end, flags);
      +
      5328 segments.push_back(s);
      + +
      5330 for (;;) {
      +
      5331 if (interval.end < end && text[interval.end]) {
      +
      5332 if (text[interval.end] == '/') {
      +
      5333 interval.end++;
      +
      5334 s.match(text, interval.end, end, flags);
      +
      5335 segments.push_back(s);
      + +
      5337 }
      +
      5338 else
      +
      5339 break;
      +
      5340 }
      +
      5341 else
      +
      5342 break;
      +
      5343 }
      +
      5344 interval.start = start;
      +
      5345 return true;
      +
      5346
      +
      5347 error:
      +
      5348 segments.clear();
      +
      5349 interval.start = (interval.end = start) + 1;
      +
      5350 return false;
      +
      5351 }
      +
      5352
      +
      5353 virtual void invalidate()
      +
      5354 {
      +
      5355 segments.clear();
      +
      5356 tester::invalidate();
      +
      5357 }
      +
      5358
      +
      5359 public:
      +
      5360 std::vector<http_url_path_segment> segments;
      +
      5361 };
      +
      5362
      + +
      5367 {
      +
      5368 public:
      +
      5369 virtual bool match(
      +
      5370 _In_reads_or_z_(end) const char* text,
      +
      5371 _In_ size_t start = 0,
      +
      5372 _In_ size_t end = (size_t)-1,
      +
      5373 _In_ int flags = match_default)
      +
      5374 {
      +
      5375 assert(text || start >= end);
      +
      5376 interval.end = start;
      +
      5377 name.start = interval.end;
      +
      5378 for (;;) {
      +
      5379 if (interval.end < end && text[interval.end]) {
      +
      5380 if ((unsigned int)text[interval.end] < 0x20 ||
      +
      5381 (unsigned int)text[interval.end] == 0x7f ||
      +
      5382 text[interval.end] == '&' ||
      +
      5383 text[interval.end] == '=' ||
      +
      5384 isspace(text[interval.end]))
      +
      5385 break;
      +
      5386 else
      +
      5387 interval.end++;
      +
      5388 }
      +
      5389 else
      +
      5390 break;
      +
      5391 }
      +
      5392 if (start < interval.end)
      +
      5393 name.end = interval.end;
      +
      5394 else
      +
      5395 goto error;
      +
      5396 if (text[interval.end] == '=') {
      +
      5397 interval.end++;
      +
      5398 value.start = interval.end;
      +
      5399 for (;;) {
      +
      5400 if (interval.end < end && text[interval.end]) {
      +
      5401 if ((unsigned int)text[interval.end] < 0x20 ||
      +
      5402 (unsigned int)text[interval.end] == 0x7f ||
      +
      5403 text[interval.end] == '&' ||
      +
      5404 isspace(text[interval.end]))
      +
      5405 break;
      +
      5406 else
      +
      5407 interval.end++;
      +
      5408 }
      +
      5409 else
      +
      5410 break;
      +
      5411 }
      +
      5412 value.end = interval.end;
      +
      5413 }
      +
      5414 else {
      +
      5415 value.start = 1;
      +
      5416 value.end = 0;
      +
      5417 }
      +
      5418 interval.start = start;
      +
      5419 return true;
      +
      5420
      +
      5421 error:
      +
      5422 name.start = 1;
      +
      5423 name.end = 0;
      +
      5424 value.start = 1;
      +
      5425 value.end = 0;
      +
      5426 interval.start = (interval.end = start) + 1;
      +
      5427 return false;
      +
      5428 }
      +
      5429
      +
      5430 virtual void invalidate()
      +
      5431 {
      +
      5432 name.start = 1;
      +
      5433 name.end = 0;
      +
      5434 value.start = 1;
      +
      5435 value.end = 0;
      +
      5436 tester::invalidate();
      +
      5437 }
      +
      5438
      +
      5439 public:
      + + +
      5442 };
      +
      5443
      +
      5447 class http_url : public tester
      +
      5448 {
      +
      5449 public:
      +
      5450 virtual bool match(
      +
      5451 _In_reads_or_z_(end) const char* text,
      +
      5452 _In_ size_t start = 0,
      +
      5453 _In_ size_t end = (size_t)-1,
      +
      5454 _In_ int flags = match_default)
      +
      5455 {
      +
      5456 assert(text || start >= end);
      +
      5457 interval.end = start;
      +
      5458
      +
      5459 if (interval.end + 7 <= end && stdex::strnicmp(text + interval.end, 7, "http://", (size_t)-1, m_locale) == 0) {
      +
      5460 interval.end += 7;
      +
      5461 if (server.match(text, interval.end, end, flags))
      +
      5462 interval.end = server.interval.end;
      +
      5463 else
      +
      5464 goto error;
      +
      5465 if (interval.end < end && text[interval.end] == ':') {
      +
      5466 interval.end++;
      +
      5467 if (port.match(text, interval.end, end, flags))
      +
      5468 interval.end = port.interval.end;
      +
      5469 }
      +
      5470 else {
      +
      5471 port.invalidate();
      +
      5472 port.value = 80;
      +
      5473 }
      +
      5474 }
      +
      5475 else {
      +
      5476 server.invalidate();
      +
      5477 port.invalidate();
      +
      5478 port.value = 80;
      +
      5479 }
      +
      5480
      +
      5481 if (path.match(text, interval.end, end, flags))
      +
      5482 interval.end = path.interval.end;
      +
      5483 else
      +
      5484 goto error;
      +
      5485
      +
      5486 params.clear();
      +
      5487
      +
      5488 if (interval.end < end && text[interval.end] == '?') {
      +
      5489 interval.end++;
      +
      5490 for (;;) {
      +
      5491 if (interval.end < end && text[interval.end]) {
      +
      5492 if ((unsigned int)text[interval.end] < 0x20 ||
      +
      5493 (unsigned int)text[interval.end] == 0x7f ||
      +
      5494 isspace(text[interval.end]))
      +
      5495 break;
      +
      5496 else if (text[interval.end] == '&')
      +
      5497 interval.end++;
      +
      5498 else {
      +
      5499 http_url_parameter param;
      +
      5500 if (param.match(text, interval.end, end, flags)) {
      +
      5501 interval.end = param.interval.end;
      +
      5502 params.push_back(std::move(param));
      +
      5503 }
      +
      5504 else
      +
      5505 break;
      +
      5506 }
      +
      5507 }
      +
      5508 else
      +
      5509 break;
      +
      5510 }
      +
      5511 }
      +
      5512
      +
      5513 interval.start = start;
      +
      5514 return true;
      +
      5515
      +
      5516 error:
      +
      5517 server.invalidate();
      +
      5518 port.invalidate();
      +
      5519 path.invalidate();
      +
      5520 params.clear();
      +
      5521 interval.start = (interval.end = start) + 1;
      +
      5522 return false;
      +
      5523 }
      +
      5524
      +
      5525 virtual void invalidate()
      +
      5526 {
      +
      5527 server.invalidate();
      +
      5528 port.invalidate();
      +
      5529 path.invalidate();
      +
      5530 params.clear();
      +
      5531 tester::invalidate();
      +
      5532 }
      +
      5533
      +
      5534 public:
      +
      5535 http_url_server server;
      +
      5536 http_url_port port;
      +
      5537 http_url_path path;
      +
      5538 std::list<http_url_parameter> params;
      +
      5539 };
      +
      5540
      +
      5544 class http_language : public tester
      +
      5545 {
      +
      5546 public:
      +
      5547 virtual bool match(
      +
      5548 _In_reads_or_z_(end) const char* text,
      +
      5549 _In_ size_t start = 0,
      +
      5550 _In_ size_t end = (size_t)-1,
      +
      5551 _In_ int flags = match_default)
      +
      5552 {
      +
      5553 assert(text || start >= end);
      +
      5554 interval.end = start;
      +
      5555 components.clear();
      +
      5556 for (;;) {
      +
      5557 if (interval.end < end && text[interval.end]) {
      + +
      5559 k.end = interval.end;
      +
      5560 for (;;) {
      +
      5561 if (k.end < end && text[k.end]) {
      +
      5562 if (isalpha(text[k.end]))
      +
      5563 k.end++;
      +
      5564 else
      +
      5565 break;
      +
      5566 }
      +
      5567 else
      +
      5568 break;
      +
      5569 }
      +
      5570 if (interval.end < k.end) {
      +
      5571 k.start = interval.end;
      +
      5572 interval.end = k.end;
      +
      5573 components.push_back(k);
      +
      5574 }
      +
      5575 else
      +
      5576 break;
      +
      5577 if (interval.end < end && text[interval.end] == '-')
      +
      5578 interval.end++;
      +
      5579 else
      +
      5580 break;
      +
      5581 }
      +
      5582 else
      +
      5583 break;
      +
      5584 }
      +
      5585 if (!components.empty()) {
      +
      5586 interval.start = start;
      +
      5587 interval.end = components.back().end;
      +
      5588 return true;
      +
      5589 }
      +
      5590 interval.start = (interval.end = start) + 1;
      +
      5591 return false;
      +
      5592 }
      +
      5593
      +
      5594 virtual void invalidate()
      +
      5595 {
      +
      5596 components.clear();
      +
      5597 tester::invalidate();
      +
      5598 }
      +
      5599
      +
      5600 public:
      +
      5601 std::vector<stdex::interval<size_t>> components;
      +
      5602 };
      +
      5603
      +
      5607 class http_weight : public tester
      +
      5608 {
      +
      5609 public:
      +
      5610 http_weight(_In_ const std::locale& locale = std::locale()) :
      +
      5611 tester(locale),
      +
      5612 value(1.0f)
      +
      5613 {}
      +
      5614
      +
      5615 virtual bool match(
      +
      5616 _In_reads_or_z_(end) const char* text,
      +
      5617 _In_ size_t start = 0,
      +
      5618 _In_ size_t end = (size_t)-1,
      +
      5619 _In_ int flags = match_default)
      +
      5620 {
      +
      5621 assert(text || start >= end);
      +
      5622 size_t celi_del = 0, decimalni_del = 0, decimalni_del_n = 1;
      +
      5623 interval.end = start;
      +
      5624 for (;;) {
      +
      5625 if (interval.end < end && text[interval.end]) {
      +
      5626 if ('0' <= text[interval.end] && text[interval.end] <= '9') {
      +
      5627 celi_del = celi_del * 10 + text[interval.end] - '0';
      +
      5628 interval.end++;
      +
      5629 }
      +
      5630 else if (text[interval.end] == '.') {
      +
      5631 interval.end++;
      +
      5632 for (;;) {
      +
      5633 if (interval.end < end && text[interval.end]) {
      +
      5634 if ('0' <= text[interval.end] && text[interval.end] <= '9') {
      +
      5635 decimalni_del = decimalni_del * 10 + text[interval.end] - '0';
      +
      5636 decimalni_del_n *= 10;
      +
      5637 interval.end++;
      +
      5638 }
      +
      5639 else
      +
      5640 break;
      +
      5641 }
      +
      5642 else
      +
      5643 break;
      +
      5644 }
      +
      5645 break;
      +
      5646 }
      +
      5647 else
      +
      5648 break;
      +
      5649 }
      +
      5650 else
      +
      5651 break;
      +
      5652 }
      +
      5653 if (start < interval.end) {
      +
      5654 value = (float)((double)celi_del + (double)decimalni_del / decimalni_del_n);
      +
      5655 interval.start = start;
      +
      5656 return true;
      +
      5657 }
      +
      5658 value = 1.0f;
      +
      5659 interval.start = (interval.end = start) + 1;
      +
      5660 return false;
      +
      5661 }
      +
      5662
      +
      5663 virtual void invalidate()
      +
      5664 {
      +
      5665 value = 1.0f;
      +
      5666 tester::invalidate();
      +
      5667 }
      +
      5668
      +
      5669 public:
      +
      5670 float value;
      +
      5671 };
      +
      5672
      +
      5676 class http_asterisk : public tester
      +
      5677 {
      +
      5678 public:
      +
      5679 virtual bool match(
      +
      5680 _In_reads_or_z_(end) const char* text,
      +
      5681 _In_ size_t start = 0,
      +
      5682 _In_ size_t end = (size_t)-1,
      +
      5683 _In_ int flags = match_default)
      +
      5684 {
      +
      5685 assert(text || end <= start);
      +
      5686 if (start < end && text[start] == '*') {
      +
      5687 interval.end = (interval.start = start) + 1;
      +
      5688 return true;
      +
      5689 }
      +
      5690 interval.start = (interval.end = start) + 1;
      +
      5691 return false;
      +
      5692 }
      +
      5693 };
      +
      5694
      +
      5698 template <class T, class T_asterisk = http_asterisk>
      + +
      5700 {
      +
      5701 public:
      +
      5702 virtual bool match(
      +
      5703 _In_reads_or_z_(end) const char* text,
      +
      5704 _In_ size_t start = 0,
      +
      5705 _In_ size_t end = (size_t)-1,
      +
      5706 _In_ int flags = match_default)
      +
      5707 {
      +
      5708 assert(text || start >= end);
      +
      5709 size_t konec_vrednosti;
      +
      5710 interval.end = start;
      +
      5711 if (asterisk.match(text, interval.end, end, flags)) {
      +
      5712 interval.end = konec_vrednosti = asterisk.interval.end;
      +
      5713 value.invalidate();
      +
      5714 }
      +
      5715 else if (value.match(text, interval.end, end, flags)) {
      +
      5716 interval.end = konec_vrednosti = value.interval.end;
      +
      5717 asterisk.invalidate();
      +
      5718 }
      +
      5719 else {
      +
      5720 asterisk.invalidate();
      +
      5721 value.invalidate();
      +
      5722 interval.start = (interval.end = start) + 1;
      +
      5723 return false;
      +
      5724 }
      +
      5725
      +
      5726 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
      +
      5727 if (interval.end < end && text[interval.end] == ';') {
      +
      5728 interval.end++;
      +
      5729 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
      +
      5730 if (interval.end < end && (text[interval.end] == 'q' || text[interval.end] == 'Q')) {
      +
      5731 interval.end++;
      +
      5732 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
      +
      5733 if (interval.end < end && text[interval.end] == '=') {
      +
      5734 interval.end++;
      +
      5735 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
      +
      5736 if (factor.match(text, interval.end, end, flags))
      +
      5737 interval.end = factor.interval.end;
      +
      5738 }
      +
      5739 }
      +
      5740 }
      +
      5741 if (!factor.interval) {
      +
      5742 factor.invalidate();
      +
      5743 interval.end = konec_vrednosti;
      +
      5744 }
      +
      5745 interval.start = start;
      +
      5746 return true;
      +
      5747 }
      +
      5748
      +
      5749 virtual void invalidate()
      +
      5750 {
      +
      5751 asterisk.invalidate();
      +
      5752 value.invalidate();
      +
      5753 factor.invalidate();
      +
      5754 tester::invalidate();
      +
      5755 }
      +
      5756
      +
      5757 public:
      +
      5758 T_asterisk asterisk;
      +
      5759 T value;
      +
      5760 http_weight factor;
      +
      5761 };
      +
      5762
      + +
      5767 {
      +
      5768 public:
      +
      5769 virtual bool match(
      +
      5770 _In_reads_or_z_(end) const char* text,
      +
      5771 _In_ size_t start = 0,
      +
      5772 _In_ size_t end = (size_t)-1,
      +
      5773 _In_ int flags = match_default)
      +
      5774 {
      +
      5775 assert(text || start >= end);
      +
      5776 interval.end = start;
      +
      5777 if (interval.end < end && text[interval.end] == '$')
      +
      5778 interval.end++;
      +
      5779 else
      +
      5780 goto error;
      +
      5781 if (name.match(text, interval.end, end, flags))
      +
      5782 interval.end = name.interval.end;
      +
      5783 else
      +
      5784 goto error;
      +
      5785 while (m_space.match(text, interval.end, end, flags))
      +
      5786 interval.end = m_space.interval.end;
      +
      5787 if (interval.end < end && text[interval.end] == '=')
      +
      5788 interval.end++;
      +
      5789 else
      +
      5790 goto error;
      +
      5791 while (m_space.match(text, interval.end, end, flags))
      +
      5792 interval.end = m_space.interval.end;
      +
      5793 if (value.match(text, interval.end, end, flags))
      +
      5794 interval.end = value.interval.end;
      +
      5795 else
      +
      5796 goto error;
      +
      5797 interval.start = start;
      +
      5798 return true;
      +
      5799
      +
      5800 error:
      +
      5801 name.invalidate();
      +
      5802 value.invalidate();
      +
      5803 interval.start = (interval.end = start) + 1;
      +
      5804 return false;
      +
      5805 }
      +
      5806
      +
      5807 virtual void invalidate()
      +
      5808 {
      +
      5809 name.invalidate();
      +
      5810 value.invalidate();
      +
      5811 tester::invalidate();
      +
      5812 }
      +
      5813
      +
      5814 public:
      +
      5815 http_token name;
      +
      5816 http_value value;
      +
      5817
      +
      5818 protected:
      +
      5819 http_space m_space;
      +
      5820 };
      +
      5821
      +
      5825 class http_cookie : public tester
      +
      5826 {
      +
      5827 public:
      +
      5828 virtual bool match(
      +
      5829 _In_reads_or_z_(end) const char* text,
      +
      5830 _In_ size_t start = 0,
      +
      5831 _In_ size_t end = (size_t)-1,
      +
      5832 _In_ int flags = match_default)
      +
      5833 {
      +
      5834 assert(text || start >= end);
      +
      5835 interval.end = start;
      +
      5836 if (name.match(text, interval.end, end, flags))
      +
      5837 interval.end = name.interval.end;
      +
      5838 else
      +
      5839 goto error;
      +
      5840 while (m_space.match(text, interval.end, end, flags))
      +
      5841 interval.end = m_space.interval.end;
      +
      5842 if (interval.end < end && text[interval.end] == '=')
      +
      5843 interval.end++;
      +
      5844 else
      +
      5845 goto error;
      +
      5846 while (m_space.match(text, interval.end, end, flags))
      +
      5847 interval.end = m_space.interval.end;
      +
      5848 if (value.match(text, interval.end, end, flags))
      +
      5849 interval.end = value.interval.end;
      +
      5850 else
      +
      5851 goto error;
      +
      5852 params.clear();
      +
      5853 for (;;) {
      +
      5854 if (interval.end < end && text[interval.end]) {
      +
      5855 if (m_space.match(text, interval.end, end, flags))
      +
      5856 interval.end = m_space.interval.end;
      +
      5857 else if (text[interval.end] == ';') {
      +
      5858 interval.end++;
      +
      5859 while (m_space.match(text, interval.end, end, flags))
      +
      5860 interval.end = m_space.interval.end;
      + +
      5862 if (param.match(text, interval.end, end, flags)) {
      +
      5863 interval.end = param.interval.end;
      +
      5864 params.push_back(std::move(param));
      +
      5865 }
      +
      5866 else
      +
      5867 break;
      +
      5868 }
      +
      5869 else
      +
      5870 break;
      +
      5871 }
      +
      5872 else
      +
      5873 break;
      +
      5874 }
      +
      5875 interval.start = start;
      +
      5876 interval.end = params.empty() ? value.interval.end : params.back().interval.end;
      +
      5877 return true;
      +
      5878
      +
      5879 error:
      +
      5880 name.invalidate();
      +
      5881 value.invalidate();
      +
      5882 params.clear();
      +
      5883 interval.start = (interval.end = start) + 1;
      +
      5884 return false;
      +
      5885 }
      +
      5886
      +
      5887 virtual void invalidate()
      +
      5888 {
      +
      5889 name.invalidate();
      +
      5890 value.invalidate();
      +
      5891 params.clear();
      +
      5892 tester::invalidate();
      +
      5893 }
      +
      5894
      +
      5895 public:
      + + +
      5898 std::list<http_cookie_parameter> params;
      +
      5899
      +
      5900 protected:
      +
      5901 http_space m_space;
      +
      5902 };
      +
      5903
      +
      5907 class http_agent : public tester
      +
      5908 {
      +
      5909 public:
      +
      5910 virtual bool match(
      +
      5911 _In_reads_or_z_(end) const char* text,
      +
      5912 _In_ size_t start = 0,
      +
      5913 _In_ size_t end = (size_t)-1,
      +
      5914 _In_ int flags = match_default)
      +
      5915 {
      +
      5916 assert(text || start >= end);
      +
      5917 interval.end = start;
      +
      5918 type.start = interval.end;
      +
      5919 for (;;) {
      +
      5920 if (interval.end < end && text[interval.end]) {
      +
      5921 if (text[interval.end] == '/') {
      +
      5922 type.end = interval.end;
      +
      5923 interval.end++;
      +
      5924 version.start = interval.end;
      +
      5925 for (;;) {
      +
      5926 if (interval.end < end && text[interval.end]) {
      +
      5927 if (isspace(text[interval.end])) {
      +
      5928 version.end = interval.end;
      +
      5929 break;
      +
      5930 }
      +
      5931 else
      +
      5932 interval.end++;
      +
      5933 }
      +
      5934 else {
      +
      5935 version.end = interval.end;
      +
      5936 break;
      +
      5937 }
      +
      5938 }
      +
      5939 break;
      +
      5940 }
      +
      5941 else if (isspace(text[interval.end])) {
      +
      5942 type.end = interval.end;
      +
      5943 break;
      +
      5944 }
      +
      5945 else
      +
      5946 interval.end++;
      +
      5947 }
      +
      5948 else {
      +
      5949 type.end = interval.end;
      +
      5950 break;
      +
      5951 }
      +
      5952 }
      +
      5953 if (start < interval.end) {
      +
      5954 interval.start = start;
      +
      5955 return true;
      +
      5956 }
      +
      5957 type.start = 1;
      +
      5958 type.end = 0;
      +
      5959 version.start = 1;
      +
      5960 version.end = 0;
      +
      5961 interval.start = 1;
      +
      5962 interval.end = 0;
      +
      5963 return false;
      +
      5964 }
      +
      5965
      +
      5966 virtual void invalidate()
      +
      5967 {
      +
      5968 type.start = 1;
      +
      5969 type.end = 0;
      +
      5970 version.start = 1;
      +
      5971 version.end = 0;
      +
      5972 tester::invalidate();
      +
      5973 }
      +
      5974
      +
      5975 public:
      + + +
      5978 };
      +
      5979
      +
      5983 class http_protocol : public tester
      +
      5984 {
      +
      5985 public:
      +
      5986 http_protocol(_In_ const std::locale& locale = std::locale()) :
      +
      5987 tester(locale),
      +
      5988 version(0x009)
      +
      5989 {}
      +
      5990
      +
      5991 virtual bool match(
      +
      5992 _In_reads_or_z_(end) const char* text,
      +
      5993 _In_ size_t start = 0,
      +
      5994 _In_ size_t end = (size_t)-1,
      +
      5995 _In_ int flags = match_default)
      +
      5996 {
      +
      5997 assert(text || start >= end);
      +
      5998 interval.end = start;
      +
      5999 type.start = interval.end;
      +
      6000 for (;;) {
      +
      6001 if (interval.end < end && text[interval.end]) {
      +
      6002 if (text[interval.end] == '/') {
      +
      6003 type.end = interval.end;
      +
      6004 interval.end++;
      +
      6005 break;
      +
      6006 }
      +
      6007 else if (isspace(text[interval.end]))
      +
      6008 goto error;
      +
      6009 else
      +
      6010 interval.end++;
      +
      6011 }
      +
      6012 else {
      +
      6013 type.end = interval.end;
      +
      6014 goto error;
      +
      6015 }
      +
      6016 }
      +
      6017 version_maj.start = interval.end;
      +
      6018 for (;;) {
      +
      6019 if (interval.end < end && text[interval.end]) {
      +
      6020 if (text[interval.end] == '.') {
      +
      6021 version_maj.end = interval.end;
      +
      6022 interval.end++;
      +
      6023 version_min.start = interval.end;
      +
      6024 for (;;) {
      +
      6025 if (interval.end < end && text[interval.end]) {
      +
      6026 if (isspace(text[interval.end])) {
      +
      6027 version_min.end = interval.end;
      +
      6028 version =
      +
      6029 (uint16_t)strtoui(text + version_maj.start, version_maj.size(), nullptr, 10) * 0x100 +
      +
      6030 (uint16_t)strtoui(text + version_min.start, version_min.size(), nullptr, 10);
      +
      6031 break;
      +
      6032 }
      +
      6033 else
      +
      6034 interval.end++;
      +
      6035 }
      +
      6036 else
      +
      6037 goto error;
      +
      6038 }
      +
      6039 break;
      +
      6040 }
      +
      6041 else if (isspace(text[interval.end])) {
      +
      6042 version_maj.end = interval.end;
      +
      6043 version_min.start = 1;
      +
      6044 version_min.end = 0;
      +
      6045 version = (uint16_t)strtoui(text + version_maj.start, version_maj.size(), nullptr, 10) * 0x100;
      +
      6046 break;
      +
      6047 }
      +
      6048 else
      +
      6049 interval.end++;
      +
      6050 }
      +
      6051 else
      +
      6052 goto error;
      +
      6053 }
      +
      6054 interval.start = start;
      +
      6055 return true;
      +
      6056
      +
      6057 error:
      +
      6058 type.start = 1;
      +
      6059 type.end = 0;
      +
      6060 version_maj.start = 1;
      +
      6061 version_maj.end = 0;
      +
      6062 version_min.start = 1;
      +
      6063 version_min.end = 0;
      +
      6064 version = 0x009;
      +
      6065 interval.start = 1;
      +
      6066 interval.end = 0;
      +
      6067 return false;
      +
      6068 }
      +
      6069
      +
      6070 virtual void invalidate()
      +
      6071 {
      +
      6072 type.start = 1;
      +
      6073 type.end = 0;
      +
      6074 version_maj.start = 1;
      +
      6075 version_maj.end = 0;
      +
      6076 version_min.start = 1;
      +
      6077 version_min.end = 0;
      +
      6078 version = 0x009;
      +
      6079 tester::invalidate();
      +
      6080 }
      +
      6081
      +
      6082 public:
      + +
      6084 stdex::interval<size_t> version_maj;
      +
      6085 stdex::interval<size_t> version_min;
      +
      6086 uint16_t version;
      +
      6087 };
      +
      6088
      +
      6092 class http_request : public tester
      +
      6093 {
      +
      6094 public:
      +
      6095 virtual bool match(
      +
      6096 _In_reads_or_z_(end) const char* text,
      +
      6097 _In_ size_t start = 0,
      +
      6098 _In_ size_t end = (size_t)-1,
      +
      6099 _In_ int flags = match_default)
      +
      6100 {
      +
      6101 assert(text || start >= end);
      +
      6102 interval.end = start;
      +
      6103
      +
      6104 for (;;) {
      +
      6105 if (m_line_break.match(text, interval.end, end, flags))
      +
      6106 goto error;
      +
      6107 else if (interval.end < end && text[interval.end]) {
      +
      6108 if (isspace(text[interval.end]))
      +
      6109 interval.end++;
      +
      6110 else
      +
      6111 break;
      +
      6112 }
      +
      6113 else
      +
      6114 goto error;
      +
      6115 }
      +
      6116 verb.start = interval.end;
      +
      6117 for (;;) {
      +
      6118 if (m_line_break.match(text, interval.end, end, flags))
      +
      6119 goto error;
      +
      6120 else if (interval.end < end && text[interval.end]) {
      +
      6121 if (isspace(text[interval.end])) {
      +
      6122 verb.end = interval.end;
      +
      6123 interval.end++;
      +
      6124 break;
      +
      6125 }
      +
      6126 else
      +
      6127 interval.end++;
      +
      6128 }
      +
      6129 else
      +
      6130 goto error;
      +
      6131 }
      +
      6132
      +
      6133 for (;;) {
      +
      6134 if (m_line_break.match(text, interval.end, end, flags))
      +
      6135 goto error;
      +
      6136 else if (interval.end < end && text[interval.end]) {
      +
      6137 if (isspace(text[interval.end]))
      +
      6138 interval.end++;
      +
      6139 else
      +
      6140 break;
      +
      6141 }
      +
      6142 else
      +
      6143 goto error;
      +
      6144 }
      +
      6145 if (url.match(text, interval.end, end, flags))
      + +
      6147 else
      +
      6148 goto error;
      +
      6149
      +
      6150 protocol.invalidate();
      +
      6151 for (;;) {
      +
      6152 if (m_line_break.match(text, interval.end, end, flags)) {
      +
      6153 interval.end = m_line_break.interval.end;
      +
      6154 goto end;
      +
      6155 }
      +
      6156 else if (interval.end < end && text[interval.end]) {
      +
      6157 if (isspace(text[interval.end]))
      +
      6158 interval.end++;
      +
      6159 else
      +
      6160 break;
      +
      6161 }
      +
      6162 else
      +
      6163 goto end;
      +
      6164 }
      +
      6165 for (;;) {
      +
      6166 if (m_line_break.match(text, interval.end, end, flags)) {
      +
      6167 interval.end = m_line_break.interval.end;
      +
      6168 goto end;
      +
      6169 }
      +
      6170 else if (protocol.match(text, interval.end, end, flags)) {
      +
      6171 interval.end = protocol.interval.end;
      +
      6172 break;
      +
      6173 }
      +
      6174 else
      +
      6175 goto end;
      +
      6176 }
      +
      6177
      +
      6178 for (;;) {
      +
      6179 if (m_line_break.match(text, interval.end, end, flags)) {
      +
      6180 interval.end = m_line_break.interval.end;
      +
      6181 break;
      +
      6182 }
      +
      6183 else if (interval.end < end && text[interval.end])
      +
      6184 interval.end++;
      +
      6185 else
      +
      6186 goto end;
      +
      6187 }
      +
      6188
      +
      6189 end:
      +
      6190 interval.start = start;
      +
      6191 return true;
      +
      6192
      +
      6193 error:
      +
      6194 verb.start = 1;
      +
      6195 verb.end = 0;
      +
      6196 url.invalidate();
      +
      6197 protocol.invalidate();
      +
      6198 interval.start = 1;
      +
      6199 interval.end = 0;
      +
      6200 return false;
      +
      6201 }
      +
      6202
      +
      6203 virtual void invalidate()
      +
      6204 {
      +
      6205 verb.start = 1;
      +
      6206 verb.end = 0;
      +
      6207 url.invalidate();
      +
      6208 protocol.invalidate();
      +
      6209 tester::invalidate();
      +
      6210 }
      +
      6211
      +
      6212 public:
      + +
      6214 http_url url;
      +
      6215 http_protocol protocol;
      +
      6216
      +
      6217 protected:
      +
      6218 http_line_break m_line_break;
      +
      6219 };
      +
      6220
      +
      6224 class http_header : public tester
      +
      6225 {
      +
      6226 public:
      +
      6227 virtual bool match(
      +
      6228 _In_reads_or_z_(end) const char* text,
      +
      6229 _In_ size_t start = 0,
      +
      6230 _In_ size_t end = (size_t)-1,
      +
      6231 _In_ int flags = match_default)
      +
      6232 {
      +
      6233 assert(text || start >= end);
      +
      6234 interval.end = start;
      +
      6235
      +
      6236 if (m_line_break.match(text, interval.end, end, flags) ||
      +
      6237 interval.end < end && text[interval.end] && isspace(text[interval.end]))
      +
      6238 goto error;
      +
      6239 name.start = interval.end;
      +
      6240 for (;;) {
      +
      6241 if (m_line_break.match(text, interval.end, end, flags))
      +
      6242 goto error;
      +
      6243 else if (interval.end < end && text[interval.end]) {
      +
      6244 if (isspace(text[interval.end])) {
      +
      6245 name.end = interval.end;
      +
      6246 interval.end++;
      +
      6247 for (;;) {
      +
      6248 if (m_line_break.match(text, interval.end, end, flags))
      +
      6249 goto error;
      +
      6250 else if (interval.end < end && text[interval.end]) {
      +
      6251 if (isspace(text[interval.end]))
      +
      6252 interval.end++;
      +
      6253 else
      +
      6254 break;
      +
      6255 }
      +
      6256 else
      +
      6257 goto error;
      +
      6258 }
      +
      6259 if (interval.end < end && text[interval.end] == ':') {
      +
      6260 interval.end++;
      +
      6261 break;
      +
      6262 }
      +
      6263 else
      +
      6264 goto error;
      +
      6265 break;
      +
      6266 }
      +
      6267 else if (text[interval.end] == ':') {
      +
      6268 name.end = interval.end;
      +
      6269 interval.end++;
      +
      6270 break;
      +
      6271 }
      +
      6272 else
      +
      6273 interval.end++;
      +
      6274 }
      +
      6275 else
      +
      6276 goto error;
      +
      6277 }
      +
      6278 value.start = (size_t)-1;
      +
      6279 value.end = 0;
      +
      6280 for (;;) {
      +
      6281 if (m_line_break.match(text, interval.end, end, flags)) {
      +
      6282 interval.end = m_line_break.interval.end;
      +
      6283 if (!m_line_break.match(text, interval.end, end, flags) &&
      +
      6284 interval.end < end && text[interval.end] && isspace(text[interval.end]))
      +
      6285 interval.end++;
      +
      6286 else
      +
      6287 break;
      +
      6288 }
      +
      6289 else if (interval.end < end && text[interval.end]) {
      +
      6290 if (isspace(text[interval.end]))
      +
      6291 interval.end++;
      +
      6292 else {
      +
      6293 if (value.start == (size_t)-1) value.start = interval.end;
      +
      6294 value.end = ++interval.end;
      +
      6295 }
      +
      6296 }
      +
      6297 else
      +
      6298 break;
      +
      6299 }
      +
      6300 interval.start = start;
      +
      6301 return true;
      +
      6302
      +
      6303 error:
      +
      6304 name.start = 1;
      +
      6305 name.end = 0;
      +
      6306 value.start = 1;
      +
      6307 value.end = 0;
      +
      6308 interval.start = 1;
      +
      6309 interval.end = 0;
      +
      6310 return false;
      +
      6311 }
      +
      6312
      +
      6313 virtual void invalidate()
      +
      6314 {
      +
      6315 name.start = 1;
      +
      6316 name.end = 0;
      +
      6317 value.start = 1;
      +
      6318 value.end = 0;
      +
      6319 tester::invalidate();
      +
      6320 }
      +
      6321
      +
      6322 public:
      +
      6323 stdex::interval<size_t> name; // interval imena glave
      +
      6324 stdex::interval<size_t> value; // interval vrednosti glave
      +
      6325
      +
      6326 protected:
      +
      6327 http_line_break m_line_break;
      +
      6328 };
      +
      6329
      +
      6333 template <class T>
      +
      6334 class http_header_collection : public T
      +
      6335 {
      +
      6336 public:
      +
      6337 void insert(
      +
      6338 _In_reads_or_z_(end) const T* text,
      +
      6339 _In_ size_t start = 0,
      +
      6340 _In_ size_t end = (size_t)-1,
      +
      6341 _In_ int flags = match_default)
      +
      6342 {
      +
      6343 while (start < end) {
      +
      6344 while (start < end && text[start] && isspace(text[start])) start++;
      +
      6345 if (start < end && text[start] == ',') {
      +
      6346 start++;
      +
      6347 while (start < end&& text[start] && isspace(text[start])) start++;
      +
      6348 }
      +
      6349 T::key_type el;
      +
      6350 if (el.match(text, start, end, flags)) {
      +
      6351 start = el.interval.end;
      +
      6352 T::insert(std::move(el));
      +
      6353 }
      +
      6354 else
      +
      6355 break;
      +
      6356 }
      +
      6357 }
      +
      6358 };
      +
      6359
      +
      6360 template <class T>
      + +
      6362 constexpr bool operator()(const T& a, const T& b) const noexcept
      +
      6363 {
      +
      6364 return a.factor.value > b.factor.value;
      +
      6365 }
      +
      6366 };
      +
      6367
      +
      6371 template <class T, class _Pr = http_factor_more<T>, class _Alloc = std::allocator<T>>
      + +
      6373
      +
      6377 template <class T>
      + +
      6379 {
      +
      6380 public:
      + +
      6382 _In_ const std::shared_ptr<basic_tester<T>>& quote,
      +
      6383 _In_ const std::shared_ptr<basic_tester<T>>& chr,
      +
      6384 _In_ const std::shared_ptr<basic_tester<T>>& escape,
      +
      6385 _In_ const std::shared_ptr<basic_tester<T>>& sol,
      +
      6386 _In_ const std::shared_ptr<basic_tester<T>>& bs,
      +
      6387 _In_ const std::shared_ptr<basic_tester<T>>& ff,
      +
      6388 _In_ const std::shared_ptr<basic_tester<T>>& lf,
      +
      6389 _In_ const std::shared_ptr<basic_tester<T>>& cr,
      +
      6390 _In_ const std::shared_ptr<basic_tester<T>>& htab,
      +
      6391 _In_ const std::shared_ptr<basic_tester<T>>& uni,
      +
      6392 _In_ const std::shared_ptr<basic_integer16<T>>& hex,
      +
      6393 _In_ const std::locale& locale = std::locale()) :
      +
      6394 basic_tester<T>(locale),
      +
      6395 m_quote(quote),
      +
      6396 m_chr(chr),
      +
      6397 m_escape(escape),
      +
      6398 m_sol(sol),
      +
      6399 m_bs(bs),
      +
      6400 m_ff(ff),
      +
      6401 m_lf(lf),
      +
      6402 m_cr(cr),
      +
      6403 m_htab(htab),
      +
      6404 m_uni(uni),
      +
      6405 m_hex(hex)
      +
      6406 {}
      +
      6407
      +
      6408 virtual bool match(
      +
      6409 _In_reads_or_z_(end) const T* text,
      +
      6410 _In_ size_t start = 0,
      +
      6411 _In_ size_t end = (size_t)-1,
      +
      6412 _In_ int flags = match_default)
      +
      6413 {
      +
      6414 assert(text || start >= end);
      +
      6415 interval.end = start;
      +
      6416 if (m_quote->match(text, interval.end, end, flags)) {
      +
      6417 interval.end = m_quote->interval.end;
      +
      6418 value.clear();
      +
      6419 for (;;) {
      +
      6420 if (m_quote->match(text, interval.end, end, flags)) {
      +
      6421 interval.start = start;
      +
      6422 interval.end = m_quote->interval.end;
      +
      6423 return true;
      +
      6424 }
      +
      6425 if (m_escape->match(text, interval.end, end, flags)) {
      +
      6426 if (m_quote->match(text, m_escape->interval.end, end, flags)) {
      +
      6427 value += '"'; interval.end = m_quote->interval.end;
      +
      6428 continue;
      +
      6429 }
      +
      6430 if (m_sol->match(text, m_escape->interval.end, end, flags)) {
      +
      6431 value += '/'; interval.end = m_sol->interval.end;
      +
      6432 continue;
      +
      6433 }
      +
      6434 if (m_bs->match(text, m_escape->interval.end, end, flags)) {
      +
      6435 value += '\b'; interval.end = m_bs->interval.end;
      +
      6436 continue;
      +
      6437 }
      +
      6438 if (m_ff->match(text, m_escape->interval.end, end, flags)) {
      +
      6439 value += '\f'; interval.end = m_ff->interval.end;
      +
      6440 continue;
      +
      6441 }
      +
      6442 if (m_lf->match(text, m_escape->interval.end, end, flags)) {
      +
      6443 value += '\n'; interval.end = m_lf->interval.end;
      +
      6444 continue;
      +
      6445 }
      +
      6446 if (m_cr->match(text, m_escape->interval.end, end, flags)) {
      +
      6447 value += '\r'; interval.end = m_cr->interval.end;
      +
      6448 continue;
      +
      6449 }
      +
      6450 if (m_htab->match(text, m_escape->interval.end, end, flags)) {
      +
      6451 value += '\t'; interval.end = m_htab->interval.end;
      +
      6452 continue;
      +
      6453 }
      +
      6454 if (
      +
      6455 m_uni->match(text, m_escape->interval.end, end, flags) &&
      +
      6456 m_hex->match(text, m_uni->interval.end, std::min(m_uni->interval.end + 4, end), flags | match_case_insensitive) &&
      +
      6457 m_hex->interval.size() == 4 /* JSON requests 4-digit Unicode sequneces: \u.... */)
      +
      6458 {
      +
      6459 assert(m_hex->value <= 0xffff);
      +
      6460 if (sizeof(T) == 1) {
      +
      6461 if (m_hex->value > 0x7ff) {
      +
      6462 value += (T)(0xe0 | (m_hex->value >> 12) & 0x0f);
      +
      6463 value += (T)(0x80 | (m_hex->value >> 6) & 0x3f);
      +
      6464 value += (T)(0x80 | m_hex->value & 0x3f);
      +
      6465 }
      +
      6466 else if (m_hex->value > 0x7f) {
      +
      6467 value += (T)(0xc0 | (m_hex->value >> 6) & 0x1f);
      +
      6468 value += (T)(0x80 | m_hex->value & 0x3f);
      +
      6469 }
      +
      6470 else
      +
      6471 value += (T)(m_hex->value & 0x7f);
      +
      6472 }
      +
      6473 else
      +
      6474 value += (T)m_hex->value;
      +
      6475 interval.end = m_hex->interval.end;
      +
      6476 continue;
      +
      6477 }
      +
      6478 if (m_escape->match(text, m_escape->interval.end, end, flags)) {
      +
      6479 value += '\\'; interval.end = m_escape->interval.end;
      +
      6480 continue;
      +
      6481 }
      +
      6482 }
      +
      6483 if (m_chr->match(text, interval.end, end, flags)) {
      +
      6484 value.Prilepi(text + m_chr->interval.start, m_chr->interval.size());
      +
      6485 interval.end = m_chr->interval.end;
      +
      6486 continue;
      +
      6487 }
      +
      6488 break;
      +
      6489 }
      +
      6490 }
      +
      6491 value.clear();
      +
      6492 interval.start = (interval.end = start) + 1;
      +
      6493 return false;
      +
      6494 }
      +
      6495
      +
      6496 virtual void invalidate()
      +
      6497 {
      +
      6498 value.clear();
      + +
      6500 }
      +
      6501
      +
      6502 public:
      +
      6503 std::basic_string<T> value;
      +
      6504
      +
      6505 protected:
      +
      6506 std::shared_ptr<basic_tester<T>> m_quote;
      +
      6507 std::shared_ptr<basic_tester<T>> m_chr;
      +
      6508 std::shared_ptr<basic_tester<T>> m_escape;
      +
      6509 std::shared_ptr<basic_tester<T>> m_sol;
      +
      6510 std::shared_ptr<basic_tester<T>> m_bs;
      +
      6511 std::shared_ptr<basic_tester<T>> m_ff;
      +
      6512 std::shared_ptr<basic_tester<T>> m_lf;
      +
      6513 std::shared_ptr<basic_tester<T>> m_cr;
      +
      6514 std::shared_ptr<basic_tester<T>> m_htab;
      +
      6515 std::shared_ptr<basic_tester<T>> m_uni;
      +
      6516 std::shared_ptr<basic_integer16<T>> m_hex;
      +
      6517 };
      +
      6518
      + + +
      6521#ifdef _UNICODE
      +
      6522 using tjson_string = wjson_string;
      +
      6523#else
      +
      6524 using tjson_string = json_string;
      +
      6525#endif
      +
      6526 }
      +
      6527}
      +
      6528
      +
      6529#ifdef _MSC_VER
      +
      6530#pragma warning(pop)
      +
      6531#endif
      +
      Test for angle in d°mm'ss.dddd form.
      Definition: parser.hpp:4359
      +
      Test for any code unit.
      Definition: parser.hpp:200
      +
      Test for beginning of line.
      Definition: parser.hpp:582
      +
      Test for any.
      Definition: parser.hpp:1024
      +
      Test for chemical formula.
      Definition: parser.hpp:4633
      +
      Test for any code unit from a given string of code units.
      Definition: parser.hpp:687
      +
      Test for specific code unit.
      Definition: parser.hpp:266
      +
      Test for date.
      Definition: parser.hpp:3979
      +
      Test for valid DNS domain character.
      Definition: parser.hpp:2774
      +
      bool allow_on_edge
      Is character allowed at the beginning or an end of a DNS domain?
      Definition: parser.hpp:2812
      +
      Test for DNS domain/hostname.
      Definition: parser.hpp:2874
      +
      bool m_allow_absolute
      May DNS names end with a dot (absolute name)?
      Definition: parser.hpp:2938
      +
      Test for e-mail address.
      Definition: parser.hpp:3762
      +
      Test for emoticon.
      Definition: parser.hpp:3870
      +
      std::shared_ptr< basic_tester< T > > nose
      nose (e.g. -, o)
      Definition: parser.hpp:3961
      +
      std::shared_ptr< basic_set< T > > mouth
      mouth (e.g. ), ), (, (, |, P, D, p, d)
      Definition: parser.hpp:3962
      +
      std::shared_ptr< basic_tester< T > > eyes
      eyes (e.g. :, ;, >, |, B)
      Definition: parser.hpp:3960
      +
      std::shared_ptr< basic_tester< T > > emoticon
      emoticon as a whole (e.g. 😀, 🤔, 😶)
      Definition: parser.hpp:3958
      +
      std::shared_ptr< basic_tester< T > > apex
      apex/eyebrows/halo (e.g. O, 0)
      Definition: parser.hpp:3959
      +
      Test for end of line.
      Definition: parser.hpp:620
      +
      Test for fraction.
      Definition: parser.hpp:1653
      +
      Test for decimal integer.
      Definition: parser.hpp:1262
      +
      Test for decimal integer possibly containing thousand separators.
      Definition: parser.hpp:1347
      +
      bool has_separators
      Did integer have any separators?
      Definition: parser.hpp:1407
      +
      size_t digit_count
      Total number of digits in integer.
      Definition: parser.hpp:1406
      +
      Test for hexadecimal integer.
      Definition: parser.hpp:1428
      +
      Base class for integer testing.
      Definition: parser.hpp:1240
      +
      size_t value
      Calculated value of the numeral.
      Definition: parser.hpp:1254
      +
      Test for IPv4 address.
      Definition: parser.hpp:2312
      +
      Test for IPv6 address.
      Definition: parser.hpp:2533
      +
      std::shared_ptr< basic_tester< T > > scope_id
      Scope ID (e.g. NIC index with link-local addresses)
      Definition: parser.hpp:2737
      +
      Test for valid IPv6 address scope ID character.
      Definition: parser.hpp:2459
      +
      Test for repeating.
      Definition: parser.hpp:877
      +
      bool m_greedy
      try to match as long sequence as possible
      Definition: parser.hpp:916
      +
      size_t m_min_iterations
      minimum number of iterations
      Definition: parser.hpp:914
      +
      size_t m_max_iterations
      maximum number of iterations
      Definition: parser.hpp:915
      +
      std::shared_ptr< basic_tester< T > > m_el
      repeating element
      Definition: parser.hpp:913
      +
      Test for JSON string.
      Definition: parser.hpp:6379
      +
      Test for mixed numeral.
      Definition: parser.hpp:1888
      +
      std::shared_ptr< basic_tester< T > > special_sign
      Special sign (e.g. plus-minus '±')
      Definition: parser.hpp:1992
      +
      std::shared_ptr< basic_tester< T > > fraction
      fraction
      Definition: parser.hpp:1994
      +
      std::shared_ptr< basic_tester< T > > positive_sign
      Positive sign.
      Definition: parser.hpp:1990
      +
      std::shared_ptr< basic_tester< T > > integer
      Integer part.
      Definition: parser.hpp:1993
      +
      std::shared_ptr< basic_tester< T > > negative_sign
      Negative sign.
      Definition: parser.hpp:1991
      +
      Test for monetary numeral.
      Definition: parser.hpp:2183
      +
      std::shared_ptr< basic_tester< T > > decimal_separator
      Decimal separator.
      Definition: parser.hpp:2294
      +
      std::shared_ptr< basic_tester< T > > decimal
      Decimal part.
      Definition: parser.hpp:2295
      +
      std::shared_ptr< basic_tester< T > > currency
      Currency part.
      Definition: parser.hpp:2292
      +
      std::shared_ptr< basic_tester< T > > special_sign
      Special sign (e.g. plus-minus '±')
      Definition: parser.hpp:2291
      +
      std::shared_ptr< basic_tester< T > > positive_sign
      Positive sign.
      Definition: parser.hpp:2289
      +
      std::shared_ptr< basic_tester< T > > integer
      Integer part.
      Definition: parser.hpp:2293
      +
      std::shared_ptr< basic_tester< T > > negative_sign
      Negative sign.
      Definition: parser.hpp:2290
      +
      "No-op" match
      Definition: parser.hpp:168
      +
      Test for permutation.
      Definition: parser.hpp:1164
      +
      Test for phone number.
      Definition: parser.hpp:4482
      +
      std::basic_string< T > value
      Normalized phone number.
      Definition: parser.hpp:4608
      +
      Test for any punctuation code unit.
      Definition: parser.hpp:438
      +
      Test for Roman numeral.
      Definition: parser.hpp:1537
      +
      Test for scientific numeral.
      Definition: parser.hpp:2014
      +
      std::shared_ptr< basic_tester< T > > positive_exp_sign
      Positive exponent sign (e.g. '+')
      Definition: parser.hpp:2163
      +
      std::shared_ptr< basic_tester< T > > negative_exp_sign
      Negative exponent sign (e.g. '-')
      Definition: parser.hpp:2164
      +
      std::shared_ptr< basic_tester< T > > positive_sign
      Positive sign.
      Definition: parser.hpp:2156
      +
      double value
      Calculated value of the numeral.
      Definition: parser.hpp:2166
      +
      std::shared_ptr< basic_integer< T > > decimal
      Decimal part.
      Definition: parser.hpp:2161
      +
      std::shared_ptr< basic_tester< T > > negative_sign
      Negative sign.
      Definition: parser.hpp:2157
      +
      std::shared_ptr< basic_integer< T > > exponent
      Exponent part.
      Definition: parser.hpp:2165
      +
      std::shared_ptr< basic_tester< T > > special_sign
      Special sign (e.g. plus-minus '±')
      Definition: parser.hpp:2158
      +
      std::shared_ptr< basic_tester< T > > decimal_separator
      Decimal separator.
      Definition: parser.hpp:2160
      +
      std::shared_ptr< basic_tester< T > > exponent_symbol
      Exponent symbol (e.g. 'e')
      Definition: parser.hpp:2162
      +
      std::shared_ptr< basic_integer< T > > integer
      Integer part.
      Definition: parser.hpp:2159
      +
      Test for match score.
      Definition: parser.hpp:1716
      +
      Test for sequence.
      Definition: parser.hpp:973
      +
      Definition: parser.hpp:655
      +
      Test for signed numeral.
      Definition: parser.hpp:1802
      +
      std::shared_ptr< basic_tester< T > > positive_sign
      Positive sign.
      Definition: parser.hpp:1868
      +
      std::shared_ptr< basic_tester< T > > number
      Number.
      Definition: parser.hpp:1871
      +
      std::shared_ptr< basic_tester< T > > negative_sign
      Negative sign.
      Definition: parser.hpp:1869
      +
      std::shared_ptr< basic_tester< T > > special_sign
      Special sign (e.g. plus-minus '±')
      Definition: parser.hpp:1870
      +
      Test for any space code unit.
      Definition: parser.hpp:359
      +
      Test for any space or punctuation code unit.
      Definition: parser.hpp:508
      +
      Test for any string.
      Definition: parser.hpp:1092
      +
      Test for given string.
      Definition: parser.hpp:782
      +
      Base template for all testers.
      Definition: parser.hpp:49
      +
      interval< size_t > interval
      Test for interval.
      Definition: parser.hpp:148
      +
      Test for time.
      Definition: parser.hpp:4256
      +
      Test for valid URL password character.
      Definition: parser.hpp:3056
      +
      Test for valid URL path character.
      Definition: parser.hpp:3156
      +
      Test for URL path.
      Definition: parser.hpp:3264
      +
      Test for valid URL username character.
      Definition: parser.hpp:2957
      +
      Test for URL.
      Definition: parser.hpp:3405
      +
      Test for HTTP agent.
      Definition: parser.hpp:5908
      +
      Test for HTTP any type.
      Definition: parser.hpp:5040
      +
      Test for HTTP asterisk.
      Definition: parser.hpp:5677
      + + + + + +
      Collection of HTTP headers.
      Definition: parser.hpp:6335
      +
      Test for HTTP header.
      Definition: parser.hpp:6225
      +
      Test for HTTP language (RFC1766)
      Definition: parser.hpp:5545
      +
      Test for HTTP line break (RFC2616: CRLF | LF)
      Definition: parser.hpp:4714
      +
      Test for HTTP media range (RFC2616: media-range)
      Definition: parser.hpp:5072
      +
      Test for HTTP media type (RFC2616: media-type)
      Definition: parser.hpp:5127
      +
      Test for HTTP parameter (RFC2616: parameter)
      Definition: parser.hpp:4985
      +
      http_token name
      Parameter name.
      Definition: parser.hpp:5029
      +
      http_value value
      Parameter value.
      Definition: parser.hpp:5030
      +
      Test for HTTP protocol.
      Definition: parser.hpp:5984
      +
      uint16_t version
      HTTP protocol version: 0x100 = 1.0, 0x101 = 1.1...
      Definition: parser.hpp:6086
      +
      Test for HTTP quoted string (RFC2616: quoted-string)
      Definition: parser.hpp:4875
      +
      stdex::interval< size_t > content
      String content (without quotes)
      Definition: parser.hpp:4931
      +
      Test for HTTP request.
      Definition: parser.hpp:6093
      +
      Test for HTTP space (RFC2616: LWS)
      Definition: parser.hpp:4750
      +
      Test for HTTP text character (RFC2616: TEXT)
      Definition: parser.hpp:4787
      +
      Test for HTTP token (RFC2616: token - tolerates non-ASCII)
      Definition: parser.hpp:4821
      +
      Test for HTTP URL parameter.
      Definition: parser.hpp:5367
      +
      Test for HTTP URL path segment.
      Definition: parser.hpp:5278
      +
      Test for HTTP URL path segment.
      Definition: parser.hpp:5311
      +
      std::vector< http_url_path_segment > segments
      Path segments.
      Definition: parser.hpp:5360
      +
      Test for HTTP URL port.
      Definition: parser.hpp:5222
      +
      Test for HTTP URL server.
      Definition: parser.hpp:5185
      +
      Test for HTTP URL.
      Definition: parser.hpp:5448
      +
      Test for HTTP value (RFC2616: value)
      Definition: parser.hpp:4941
      +
      http_quoted_string string
      Value when matched as quoted string.
      Definition: parser.hpp:4977
      +
      http_token token
      Value when matched as token.
      Definition: parser.hpp:4978
      +
      Test for HTTP weight factor.
      Definition: parser.hpp:5608
      +
      float value
      Calculated value of the weight factor.
      Definition: parser.hpp:5670
      +
      Test for HTTP weighted value.
      Definition: parser.hpp:5700
      +
      Test for any SGML code point.
      Definition: parser.hpp:230
      +
      Test for any SGML code point from a given string of SGML code points.
      Definition: parser.hpp:739
      +
      Test for specific SGML code point.
      Definition: parser.hpp:315
      +
      Test for valid DNS domain SGML character.
      Definition: parser.hpp:2830
      +
      Test for valid IPv6 address scope ID SGML character.
      Definition: parser.hpp:2498
      +
      Test for any SGML punctuation code point.
      Definition: parser.hpp:479
      +
      Test for any SGML space code point.
      Definition: parser.hpp:402
      +
      Test for any SGML space or punctuation code point.
      Definition: parser.hpp:551
      +
      Test for SGML given string.
      Definition: parser.hpp:829
      +
      Test for valid URL password SGML character.
      Definition: parser.hpp:3108
      +
      Test for valid URL path SGML character.
      Definition: parser.hpp:3212
      +
      Test for valid URL username SGML character.
      Definition: parser.hpp:3008
      +
      Base template for collection-holding testers.
      Definition: parser.hpp:933
      +
      Numerical interval.
      Definition: interval.hpp:17
      +
      T end
      interval end
      Definition: interval.hpp:19
      +
      interval() noexcept
      Constructs an invalid interval.
      Definition: interval.hpp:24
      +
      T start
      interval start
      Definition: interval.hpp:18
      +
      Definition: parser.hpp:6361
      +
      + + + + diff --git a/pch_8h_source.html b/pch_8h_source.html new file mode 100644 index 000000000..7299980cb --- /dev/null +++ b/pch_8h_source.html @@ -0,0 +1,111 @@ + + + + + + + +stdex: UnitTests/pch.h Source File + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      pch.h
      +
      +
      +
      1/*
      +
      2 SPDX-License-Identifier: MIT
      +
      3 Copyright © 2023 Amebis
      +
      4*/
      +
      5
      +
      6#pragma once
      +
      7
      +
      8#define SECURITY_WIN32
      +
      9#define _WINSOCKAPI_ // Prevent inclusion of winsock.h in windows.h
      +
      10
      +
      11#include <stdex/base64.hpp>
      +
      12#include <stdex/errno.hpp>
      +
      13#include <stdex/exception.hpp>
      +
      14#include <stdex/hex.hpp>
      +
      15#include <stdex/idrec.hpp>
      +
      16#include <stdex/interval.hpp>
      +
      17#include <stdex/mapping.hpp>
      +
      18#include <stdex/parser.hpp>
      +
      19#include <stdex/progress.hpp>
      +
      20#include <stdex/sal.hpp>
      +
      21#include <stdex/sgml.hpp>
      +
      22#include <stdex/string.hpp>
      +
      23#include <stdex/vector_queue.hpp>
      +
      24
      +
      25#include <CppUnitTest.h>
      +
      + + + + diff --git a/progress_8h_source.html b/progress_8hpp_source.html similarity index 96% rename from progress_8h_source.html rename to progress_8hpp_source.html index 871367206..fd4e1b8d3 100644 --- a/progress_8h_source.html +++ b/progress_8hpp_source.html @@ -5,7 +5,7 @@ -stdex: include/stdex/progress.h Source File +stdex: include/stdex/progress.hpp Source File @@ -74,7 +74,7 @@ $(function() {
      -
      progress.h
      +
      progress.hpp
      1/*
      @@ -84,8 +84,8 @@ $(function() {
      5
      6#pragma once
      7
      -
      8#include "sal.h"
      -
      9#include "interval.h"
      +
      8#include "sal.hpp"
      +
      9#include "interval.hpp"
      10#include <chrono>
      11
      12namespace stdex
      @@ -234,33 +234,33 @@ $(function() {
      262 interval<T> m_kaz, m_glob, m_odsek;
      263 };
      264}
      -
      Global progress indicator base class.
      Definition: progress.h:144
      -
      global_progress(progress< T > *host=NULL)
      Constructs a progress indicator.
      Definition: progress.h:151
      -
      void set_section_range(T start, T end)
      Set section extend of the progress indicator.
      Definition: progress.h:196
      -
      virtual void show(bool show=true)
      Show or hide progress.
      Definition: progress.h:246
      -
      virtual bool cancel()
      Query whether user requested abort.
      Definition: progress.h:255
      -
      virtual void set(T value)
      Set local current progress.
      Definition: progress.h:230
      -
      virtual void set_text(const char *msg)
      Set progress indicator text.
      Definition: progress.h:207
      -
      progress< T > * detach()
      Detach host progress indicator.
      Definition: progress.h:169
      -
      void set_global_range(T start, T end)
      Set global extend of the progress indicator.
      Definition: progress.h:182
      -
      void attach(progress< T > *host)
      Attach to a host progress indicator.
      Definition: progress.h:159
      -
      virtual void set_range(T start, T end)
      Set local extend of the progress indicator.
      Definition: progress.h:219
      -
      Lazy progress indicator base class.
      Definition: progress.h:78
      -
      virtual void set(T value)
      Set current progress.
      Definition: progress.h:109
      -
      lazy_progress(const std::chrono::nanoseconds &timeout=std::chrono::nanoseconds(500000))
      Constructs a lazy progress indicator.
      Definition: progress.h:85
      -
      virtual void do_set()
      Called when progress reporting is due. Should override this method to implement actual progress refre...
      Definition: progress.h:129
      -
      virtual void set_range(T start, T end)
      Set progress range extent.
      Definition: progress.h:98
      -
      Progress indicator base class.
      Definition: progress.h:19
      -
      virtual bool cancel()
      Query whether user requested abort.
      Definition: progress.h:65
      -
      virtual void set_text(const char *msg)
      Set progress indicator text.
      Definition: progress.h:26
      -
      virtual void show(bool show=true)
      Show or hide progress.
      Definition: progress.h:57
      -
      virtual void set(T value)
      Set current progress.
      Definition: progress.h:47
      -
      virtual void set_range(T start, T end)
      Set progress range extent.
      Definition: progress.h:37
      -
      Numerical interval.
      Definition: interval.h:17
      +
      Global progress indicator base class.
      Definition: progress.hpp:144
      +
      global_progress(progress< T > *host=NULL)
      Constructs a progress indicator.
      Definition: progress.hpp:151
      +
      void set_section_range(T start, T end)
      Set section extend of the progress indicator.
      Definition: progress.hpp:196
      +
      virtual void show(bool show=true)
      Show or hide progress.
      Definition: progress.hpp:246
      +
      virtual bool cancel()
      Query whether user requested abort.
      Definition: progress.hpp:255
      +
      virtual void set(T value)
      Set local current progress.
      Definition: progress.hpp:230
      +
      virtual void set_text(const char *msg)
      Set progress indicator text.
      Definition: progress.hpp:207
      +
      progress< T > * detach()
      Detach host progress indicator.
      Definition: progress.hpp:169
      +
      void set_global_range(T start, T end)
      Set global extend of the progress indicator.
      Definition: progress.hpp:182
      +
      void attach(progress< T > *host)
      Attach to a host progress indicator.
      Definition: progress.hpp:159
      +
      virtual void set_range(T start, T end)
      Set local extend of the progress indicator.
      Definition: progress.hpp:219
      +
      Lazy progress indicator base class.
      Definition: progress.hpp:78
      +
      virtual void set(T value)
      Set current progress.
      Definition: progress.hpp:109
      +
      lazy_progress(const std::chrono::nanoseconds &timeout=std::chrono::nanoseconds(500000))
      Constructs a lazy progress indicator.
      Definition: progress.hpp:85
      +
      virtual void do_set()
      Called when progress reporting is due. Should override this method to implement actual progress refre...
      Definition: progress.hpp:129
      +
      virtual void set_range(T start, T end)
      Set progress range extent.
      Definition: progress.hpp:98
      +
      Progress indicator base class.
      Definition: progress.hpp:19
      +
      virtual bool cancel()
      Query whether user requested abort.
      Definition: progress.hpp:65
      +
      virtual void set_text(const char *msg)
      Set progress indicator text.
      Definition: progress.hpp:26
      +
      virtual void show(bool show=true)
      Show or hide progress.
      Definition: progress.hpp:57
      +
      virtual void set(T value)
      Set current progress.
      Definition: progress.hpp:47
      +
      virtual void set_range(T start, T end)
      Set progress range extent.
      Definition: progress.hpp:37
      +
      Numerical interval.
      Definition: interval.hpp:17
      diff --git a/sal_8h_source.html b/sal_8hpp_source.html similarity index 97% rename from sal_8h_source.html rename to sal_8hpp_source.html index 52e26fa87..cfa90c284 100644 --- a/sal_8h_source.html +++ b/sal_8hpp_source.html @@ -5,7 +5,7 @@ -stdex: include/stdex/sal.h Source File +stdex: include/stdex/sal.hpp Source File @@ -74,7 +74,7 @@ $(function() {
      -
      sal.h
      +
      sal.hpp
      1/*
      @@ -140,7 +140,7 @@ $(function() {
      diff --git a/search/all_0.js b/search/all_0.js index dbda1c5c1..a3b78a9d7 100644 --- a/search/all_0.js +++ b/search/all_0.js @@ -1,7 +1,9 @@ var searchData= [ ['abs_0',['abs',['../classstdex_1_1vector__queue.html#ae31dd1a45546dc1ff91eaa82b97c0e1b',1,'stdex::vector_queue']]], - ['at_1',['at',['../classstdex_1_1vector__queue.html#ae135f77af0deabaa5f2cfe5ca25b9f09',1,'stdex::vector_queue::at(size_type pos)'],['../classstdex_1_1vector__queue.html#ac2b559184798a59ee5fed26f27d92e3c',1,'stdex::vector_queue::at(size_type pos) const']]], - ['at_5fabs_2',['at_abs',['../classstdex_1_1vector__queue.html#a881da485c13dcee1d35245570420877a',1,'stdex::vector_queue::at_abs(size_type pos)'],['../classstdex_1_1vector__queue.html#afee762c3280d33544ce8dd8ad20af40b',1,'stdex::vector_queue::at_abs(size_type pos) const']]], - ['attach_3',['attach',['../classstdex_1_1global__progress.html#aec91532fde2500a5458a397f91c88769',1,'stdex::global_progress']]] + ['allow_5fon_5fedge_1',['allow_on_edge',['../classstdex_1_1parser_1_1basic__dns__domain__char.html#a3307235d495a97c98f9efd1464e8a8a7',1,'stdex::parser::basic_dns_domain_char']]], + ['apex_2',['apex',['../classstdex_1_1parser_1_1basic__emoticon.html#ab6c13f75c157a179893df4716a3a1443',1,'stdex::parser::basic_emoticon']]], + ['at_3',['at',['../classstdex_1_1vector__queue.html#ae135f77af0deabaa5f2cfe5ca25b9f09',1,'stdex::vector_queue::at(size_type pos)'],['../classstdex_1_1vector__queue.html#ac2b559184798a59ee5fed26f27d92e3c',1,'stdex::vector_queue::at(size_type pos) const']]], + ['at_5fabs_4',['at_abs',['../classstdex_1_1vector__queue.html#a881da485c13dcee1d35245570420877a',1,'stdex::vector_queue::at_abs(size_type pos)'],['../classstdex_1_1vector__queue.html#afee762c3280d33544ce8dd8ad20af40b',1,'stdex::vector_queue::at_abs(size_type pos) const']]], + ['attach_5',['attach',['../classstdex_1_1global__progress.html#aec91532fde2500a5458a397f91c88769',1,'stdex::global_progress']]] ]; diff --git a/search/all_1.js b/search/all_1.js index f9d42ab1b..afcd89161 100644 --- a/search/all_1.js +++ b/search/all_1.js @@ -3,5 +3,61 @@ var searchData= ['back_0',['back',['../classstdex_1_1vector__queue.html#a564c31d1a260f9f210541b7fd4803d3e',1,'stdex::vector_queue::back()'],['../classstdex_1_1vector__queue.html#a4a76efc22a2e2b9310b541ba44fd05e9',1,'stdex::vector_queue::back() const']]], ['base64_5fdec_1',['base64_dec',['../classstdex_1_1base64__dec.html#a17d956a883e99d8d884d2cb2edade8c5',1,'stdex::base64_dec::base64_dec()'],['../classstdex_1_1base64__dec.html',1,'stdex::base64_dec']]], ['base64_5fenc_2',['base64_enc',['../classstdex_1_1base64__enc.html#abc6c72530634c3fea8168710ab5b1a28',1,'stdex::base64_enc::base64_enc()'],['../classstdex_1_1base64__enc.html',1,'stdex::base64_enc']]], - ['buf_3',['buf',['../classstdex_1_1base64__enc.html#aea9a31d698c85699d492b095ea569d73',1,'stdex::base64_enc::buf()'],['../classstdex_1_1base64__dec.html#a4080daff84dfd499b3a15fe876ada2ca',1,'stdex::base64_dec::buf()'],['../classstdex_1_1hex__dec.html#a47a6b05d03e3cd075fe74505675b5126',1,'stdex::hex_dec::buf()']]] + ['basic_5fangle_3',['basic_angle',['../classstdex_1_1parser_1_1basic__angle.html',1,'stdex::parser']]], + ['basic_5fany_5fcu_4',['basic_any_cu',['../classstdex_1_1parser_1_1basic__any__cu.html',1,'stdex::parser']]], + ['basic_5fany_5fcu_3c_20char_20_3e_5',['basic_any_cu< char >',['../classstdex_1_1parser_1_1basic__any__cu.html',1,'stdex::parser']]], + ['basic_5fbol_6',['basic_bol',['../classstdex_1_1parser_1_1basic__bol.html',1,'stdex::parser']]], + ['basic_5fbranch_7',['basic_branch',['../classstdex_1_1parser_1_1basic__branch.html',1,'stdex::parser']]], + ['basic_5fchemical_5fformula_8',['basic_chemical_formula',['../classstdex_1_1parser_1_1basic__chemical__formula.html',1,'stdex::parser']]], + ['basic_5fcu_9',['basic_cu',['../classstdex_1_1parser_1_1basic__cu.html',1,'stdex::parser']]], + ['basic_5fcu_5fset_10',['basic_cu_set',['../classstdex_1_1parser_1_1basic__cu__set.html',1,'stdex::parser']]], + ['basic_5fdate_11',['basic_date',['../classstdex_1_1parser_1_1basic__date.html',1,'stdex::parser']]], + ['basic_5fdns_5fdomain_5fchar_12',['basic_dns_domain_char',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], + ['basic_5fdns_5fdomain_5fchar_3c_20char_20_3e_13',['basic_dns_domain_char< char >',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], + ['basic_5fdns_5fname_14',['basic_dns_name',['../classstdex_1_1parser_1_1basic__dns__name.html',1,'stdex::parser']]], + ['basic_5femail_5faddress_15',['basic_email_address',['../classstdex_1_1parser_1_1basic__email__address.html',1,'stdex::parser']]], + ['basic_5femoticon_16',['basic_emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html',1,'stdex::parser']]], + ['basic_5feol_17',['basic_eol',['../classstdex_1_1parser_1_1basic__eol.html',1,'stdex::parser']]], + ['basic_5ffraction_18',['basic_fraction',['../classstdex_1_1parser_1_1basic__fraction.html',1,'stdex::parser']]], + ['basic_5finteger_19',['basic_integer',['../classstdex_1_1parser_1_1basic__integer.html',1,'stdex::parser']]], + ['basic_5finteger10_20',['basic_integer10',['../classstdex_1_1parser_1_1basic__integer10.html',1,'stdex::parser']]], + ['basic_5finteger10ts_21',['basic_integer10ts',['../classstdex_1_1parser_1_1basic__integer10ts.html',1,'stdex::parser']]], + ['basic_5finteger16_22',['basic_integer16',['../classstdex_1_1parser_1_1basic__integer16.html',1,'stdex::parser']]], + ['basic_5fipv4_5faddress_23',['basic_ipv4_address',['../classstdex_1_1parser_1_1basic__ipv4__address.html',1,'stdex::parser']]], + ['basic_5fipv6_5faddress_24',['basic_ipv6_address',['../classstdex_1_1parser_1_1basic__ipv6__address.html',1,'stdex::parser']]], + ['basic_5fipv6_5fscope_5fid_5fchar_25',['basic_ipv6_scope_id_char',['../classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html',1,'stdex::parser']]], + ['basic_5fiterations_26',['basic_iterations',['../classstdex_1_1parser_1_1basic__iterations.html',1,'stdex::parser']]], + ['basic_5fjson_5fstring_27',['basic_json_string',['../classstdex_1_1parser_1_1basic__json__string.html',1,'stdex::parser']]], + ['basic_5fmixed_5fnumeral_28',['basic_mixed_numeral',['../classstdex_1_1parser_1_1basic__mixed__numeral.html',1,'stdex::parser']]], + ['basic_5fmonetary_5fnumeral_29',['basic_monetary_numeral',['../classstdex_1_1parser_1_1basic__monetary__numeral.html',1,'stdex::parser']]], + ['basic_5fnoop_30',['basic_noop',['../classstdex_1_1parser_1_1basic__noop.html',1,'stdex::parser']]], + ['basic_5fpermutation_31',['basic_permutation',['../classstdex_1_1parser_1_1basic__permutation.html',1,'stdex::parser']]], + ['basic_5fphone_5fnumber_32',['basic_phone_number',['../classstdex_1_1parser_1_1basic__phone__number.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_33',['basic_punct_cu',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_3c_20char_20_3e_34',['basic_punct_cu< char >',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5froman_5fnumeral_35',['basic_roman_numeral',['../classstdex_1_1parser_1_1basic__roman__numeral.html',1,'stdex::parser']]], + ['basic_5fscientific_5fnumeral_36',['basic_scientific_numeral',['../classstdex_1_1parser_1_1basic__scientific__numeral.html',1,'stdex::parser']]], + ['basic_5fscore_37',['basic_score',['../classstdex_1_1parser_1_1basic__score.html',1,'stdex::parser']]], + ['basic_5fsequence_38',['basic_sequence',['../classstdex_1_1parser_1_1basic__sequence.html',1,'stdex::parser']]], + ['basic_5fset_39',['basic_set',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fset_3c_20char_20_3e_40',['basic_set< char >',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fsigned_5fnumeral_41',['basic_signed_numeral',['../classstdex_1_1parser_1_1basic__signed__numeral.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_42',['basic_space_cu',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_3c_20char_20_3e_43',['basic_space_cu< char >',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_44',['basic_space_or_punct_cu',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_3c_20char_20_3e_45',['basic_space_or_punct_cu< char >',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fstring_46',['basic_string',['../classstdex_1_1parser_1_1basic__string.html',1,'stdex::parser']]], + ['basic_5fstring_5fbranch_47',['basic_string_branch',['../classstdex_1_1parser_1_1basic__string__branch.html',1,'stdex::parser']]], + ['basic_5ftester_48',['basic_tester',['../classstdex_1_1parser_1_1basic__tester.html',1,'stdex::parser']]], + ['basic_5ftester_3c_20char_20_3e_49',['basic_tester< char >',['../classstdex_1_1parser_1_1basic__tester.html',1,'stdex::parser']]], + ['basic_5ftime_50',['basic_time',['../classstdex_1_1parser_1_1basic__time.html',1,'stdex::parser']]], + ['basic_5furl_51',['basic_url',['../classstdex_1_1parser_1_1basic__url.html',1,'stdex::parser']]], + ['basic_5furl_5fpassword_5fchar_52',['basic_url_password_char',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpassword_5fchar_3c_20char_20_3e_53',['basic_url_password_char< char >',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_54',['basic_url_path',['../classstdex_1_1parser_1_1basic__url__path.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_5fchar_55',['basic_url_path_char',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_5fchar_3c_20char_20_3e_56',['basic_url_path_char< char >',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], + ['basic_5furl_5fusername_5fchar_57',['basic_url_username_char',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]], + ['basic_5furl_5fusername_5fchar_3c_20char_20_3e_58',['basic_url_username_char< char >',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]], + ['buf_59',['buf',['../classstdex_1_1base64__enc.html#aea9a31d698c85699d492b095ea569d73',1,'stdex::base64_enc::buf()'],['../classstdex_1_1base64__dec.html#a4080daff84dfd499b3a15fe876ada2ca',1,'stdex::base64_dec::buf()'],['../classstdex_1_1hex__dec.html#a47a6b05d03e3cd075fe74505675b5126',1,'stdex::hex_dec::buf()']]] ]; diff --git a/search/all_10.js b/search/all_10.js index 48007df8c..551fc44da 100644 --- a/search/all_10.js +++ b/search/all_10.js @@ -1,4 +1,6 @@ var searchData= [ - ['tail_0',['tail',['../classstdex_1_1vector__queue.html#a1b87831a03da17b15d8c330a47708d00',1,'stdex::vector_queue']]] + ['tail_0',['tail',['../classstdex_1_1vector__queue.html#a1b87831a03da17b15d8c330a47708d00',1,'stdex::vector_queue']]], + ['tester_5fcollection_1',['tester_collection',['../classstdex_1_1parser_1_1tester__collection.html',1,'stdex::parser']]], + ['token_2',['token',['../classstdex_1_1parser_1_1http__value.html#aecdecacd265379c1d6e12a75424c5573',1,'stdex::parser::http_value']]] ]; diff --git a/search/all_12.js b/search/all_12.js index 14c318293..d755fa51d 100644 --- a/search/all_12.js +++ b/search/all_12.js @@ -1,5 +1,7 @@ var searchData= [ - ['value_5ftype_0',['value_type',['../classstdex_1_1vector__queue.html#aa1f9e69fd453bc2a2e72cf937a50995e',1,'stdex::vector_queue']]], - ['vector_5fqueue_1',['vector_queue',['../classstdex_1_1vector__queue.html',1,'stdex::vector_queue< T >'],['../classstdex_1_1vector__queue.html#a9cb327539aca0293920c0d436c6ea29b',1,'stdex::vector_queue::vector_queue(size_type size_max)'],['../classstdex_1_1vector__queue.html#a224fc214f514bb6dd333511613d89683',1,'stdex::vector_queue::vector_queue(const vector_queue< value_type > &other)'],['../classstdex_1_1vector__queue.html#a50fcb4c564c100ad02f963969572a7fb',1,'stdex::vector_queue::vector_queue(vector_queue< value_type > &&other)']]] + ['value_0',['value',['../classstdex_1_1parser_1_1basic__integer.html#ac42a57e08e8189c89817bfde6e507c95',1,'stdex::parser::basic_integer::value()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a9aa6f1cbde1efccf75fd0df385f03477',1,'stdex::parser::basic_scientific_numeral::value()'],['../classstdex_1_1parser_1_1basic__ipv4__address.html#ad50e8e52cf16226e57fa25e48bf17deb',1,'stdex::parser::basic_ipv4_address::value()'],['../classstdex_1_1parser_1_1basic__ipv6__address.html#aee9fca8501ba3cd5e5c875ecdb419376',1,'stdex::parser::basic_ipv6_address::value()'],['../classstdex_1_1parser_1_1basic__phone__number.html#aa0650f9f19dfe2d50bcdd79884dd6475',1,'stdex::parser::basic_phone_number::value()'],['../classstdex_1_1parser_1_1http__parameter.html#a616b1cd7f872c3ff453c8d854a7db638',1,'stdex::parser::http_parameter::value()'],['../classstdex_1_1parser_1_1http__weight.html#ac889015ae4b2640eaf067b343f7c05ff',1,'stdex::parser::http_weight::value()'],['../classstdex_1_1parser_1_1http__cookie.html#add653aef947c19d25730adc728089a9f',1,'stdex::parser::http_cookie::value()']]], + ['value_5ftype_1',['value_type',['../classstdex_1_1vector__queue.html#aa1f9e69fd453bc2a2e72cf937a50995e',1,'stdex::vector_queue']]], + ['vector_5fqueue_2',['vector_queue',['../classstdex_1_1vector__queue.html',1,'stdex::vector_queue< T >'],['../classstdex_1_1vector__queue.html#a9cb327539aca0293920c0d436c6ea29b',1,'stdex::vector_queue::vector_queue(size_type size_max)'],['../classstdex_1_1vector__queue.html#a224fc214f514bb6dd333511613d89683',1,'stdex::vector_queue::vector_queue(const vector_queue< value_type > &other)'],['../classstdex_1_1vector__queue.html#a50fcb4c564c100ad02f963969572a7fb',1,'stdex::vector_queue::vector_queue(vector_queue< value_type > &&other)']]], + ['version_3',['version',['../classstdex_1_1parser_1_1http__protocol.html#a49afaa7910baf6092f5042eca86824c7',1,'stdex::parser::http_protocol']]] ]; diff --git a/search/all_2.js b/search/all_2.js index b8f47df28..d63a23b14 100644 --- a/search/all_2.js +++ b/search/all_2.js @@ -4,6 +4,9 @@ var searchData= ['capacity_1',['capacity',['../classstdex_1_1vector__queue.html#add3d6ed93d3c1471b80351c56639bab7',1,'stdex::vector_queue']]], ['clear_2',['clear',['../classstdex_1_1base64__enc.html#afb6a85176589d9ce1f65ce6355592fe7',1,'stdex::base64_enc::clear()'],['../classstdex_1_1base64__dec.html#a94738b63789489022e0c16063b732305',1,'stdex::base64_dec::clear()'],['../classstdex_1_1hex__dec.html#a282bf5db0d16b29b12c71b73d3a33cc4',1,'stdex::hex_dec::clear()'],['../classstdex_1_1vector__queue.html#a93259be5f471580d2f8d7bee41032f9b',1,'stdex::vector_queue::clear()']]], ['close_3',['close',['../classstdex_1_1idrec_1_1record.html#ae63ba9487daaf8ec39dfe7dd04c13cc9',1,'stdex::idrec::record']]], - ['const_5fpointer_4',['const_pointer',['../classstdex_1_1vector__queue.html#a0da411250e23047a37c4ac09abfa109d',1,'stdex::vector_queue']]], - ['const_5freference_5',['const_reference',['../classstdex_1_1vector__queue.html#afc37b516c234d4be0102412b28f46562',1,'stdex::vector_queue']]] + ['components_4',['components',['../classstdex_1_1parser_1_1basic__ipv4__address.html#a0dfb21ee671894048c831edef7257931',1,'stdex::parser::basic_ipv4_address::components()'],['../classstdex_1_1parser_1_1basic__ipv6__address.html#abe14c21fb1d4cb35c0121ca610e6e87e',1,'stdex::parser::basic_ipv6_address::components()']]], + ['const_5fpointer_5',['const_pointer',['../classstdex_1_1vector__queue.html#a0da411250e23047a37c4ac09abfa109d',1,'stdex::vector_queue']]], + ['const_5freference_6',['const_reference',['../classstdex_1_1vector__queue.html#afc37b516c234d4be0102412b28f46562',1,'stdex::vector_queue']]], + ['content_7',['content',['../classstdex_1_1parser_1_1http__quoted__string.html#ab6e413ccf79e9f3dddd35c2a607381dd',1,'stdex::parser::http_quoted_string']]], + ['currency_8',['currency',['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a2f0d25d001827a0e6ebb48b16e4cfec2',1,'stdex::parser::basic_monetary_numeral']]] ]; diff --git a/search/all_3.js b/search/all_3.js index 7ac136039..a5b41774c 100644 --- a/search/all_3.js +++ b/search/all_3.js @@ -2,7 +2,10 @@ var searchData= [ ['data_0',['data',['../classstdex_1_1idrec_1_1record.html#a1ab09fae53142836c958a63137fb37cb',1,'stdex::idrec::record']]], ['dec_5fsize_1',['dec_size',['../classstdex_1_1base64__dec.html#a203f2afa5839242c1230cb22e0a65b25',1,'stdex::base64_dec::dec_size()'],['../classstdex_1_1hex__dec.html#acf3d5adf4766056a630d1ceeab946b55',1,'stdex::hex_dec::dec_size()']]], - ['decode_2',['decode',['../classstdex_1_1base64__dec.html#a1beaf09718d63d49f9d95cf0e75a50bf',1,'stdex::base64_dec::decode(std::vector< _Ty, _Ax > &out, bool &is_last, const _Tchr *data, size_t size)'],['../classstdex_1_1base64__dec.html#a4b5f0334d5d5f85b7d02b6b21db8759e',1,'stdex::base64_dec::decode(std::vector< _Ty, _Ax > &out)'],['../classstdex_1_1hex__dec.html#ab5ac7cfefa8db97c8196d1ef2c327406',1,'stdex::hex_dec::decode()']]], - ['detach_3',['detach',['../classstdex_1_1global__progress.html#aa2c5391aa2f1f30e72a700768bc52f84',1,'stdex::global_progress']]], - ['do_5fset_4',['do_set',['../classstdex_1_1lazy__progress.html#ad0242cb4f3ece8aacfaab8804e7c646e',1,'stdex::lazy_progress']]] + ['decimal_2',['decimal',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ab002d811ce7c7590863492bbc4ac355f',1,'stdex::parser::basic_scientific_numeral::decimal()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a0f32376676fc3f7e4fbad66771e424c4',1,'stdex::parser::basic_monetary_numeral::decimal()']]], + ['decimal_5fseparator_3',['decimal_separator',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ad259d0eaa6e79c7cd6c114f1bb0da6dc',1,'stdex::parser::basic_scientific_numeral::decimal_separator()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a06cdd1cbfc37511990fc61dc3bade76b',1,'stdex::parser::basic_monetary_numeral::decimal_separator()']]], + ['decode_4',['decode',['../classstdex_1_1base64__dec.html#a1beaf09718d63d49f9d95cf0e75a50bf',1,'stdex::base64_dec::decode(std::vector< _Ty, _Ax > &out, bool &is_last, const _Tchr *data, size_t size)'],['../classstdex_1_1base64__dec.html#a4b5f0334d5d5f85b7d02b6b21db8759e',1,'stdex::base64_dec::decode(std::vector< _Ty, _Ax > &out)'],['../classstdex_1_1hex__dec.html#ab5ac7cfefa8db97c8196d1ef2c327406',1,'stdex::hex_dec::decode()']]], + ['detach_5',['detach',['../classstdex_1_1global__progress.html#aa2c5391aa2f1f30e72a700768bc52f84',1,'stdex::global_progress']]], + ['digit_5fcount_6',['digit_count',['../classstdex_1_1parser_1_1basic__integer10ts.html#a3c400d7c6e0edf695e7cf5e9f43ae388',1,'stdex::parser::basic_integer10ts']]], + ['do_5fset_7',['do_set',['../classstdex_1_1lazy__progress.html#ad0242cb4f3ece8aacfaab8804e7c646e',1,'stdex::lazy_progress']]] ]; diff --git a/search/all_4.js b/search/all_4.js index ff2c0e907..2a86ea797 100644 --- a/search/all_4.js +++ b/search/all_4.js @@ -1,8 +1,12 @@ var searchData= [ - ['empty_0',['empty',['../classstdex_1_1vector__queue.html#a1502ae16a184fac7b1be9e1709dd1b5d',1,'stdex::vector_queue']]], - ['enc_5fsize_1',['enc_size',['../classstdex_1_1base64__enc.html#afbae8f49a0948ea7bb23d0faa8f67f21',1,'stdex::base64_enc::enc_size()'],['../classstdex_1_1hex__enc.html#a47db116dcc51daa878d3ecc4c1ab4d8f',1,'stdex::hex_enc::enc_size()']]], - ['encode_2',['encode',['../classstdex_1_1base64__enc.html#a0ee96b5ec63fecc20c44afe1f1df6f04',1,'stdex::base64_enc::encode(std::basic_string< _Elem, _Traits, _Ax > &out, const void *data, size_t size, bool is_last=true)'],['../classstdex_1_1base64__enc.html#a506985ccd54fd95dbc021457881d77c2',1,'stdex::base64_enc::encode(std::basic_string< _Elem, _Traits, _Ax > &out)'],['../classstdex_1_1base64__enc.html#a709172f7120284fcea1d7856d8ff550d',1,'stdex::base64_enc::encode(std::basic_string< _Elem, _Traits, _Ax > &out, size_t size)'],['../classstdex_1_1hex__enc.html#a51554940e79b6192f10a7860ca407191',1,'stdex::hex_enc::encode()']]], - ['end_3',['end',['../structstdex_1_1interval.html#a9b92e2b20290d8ac5a9b00209f25e27a',1,'stdex::interval']]], - ['errno_5ferror_4',['errno_error',['../classstdex_1_1errno__error.html#a3dc5e2df06c563a88b3f8766b5e689fc',1,'stdex::errno_error::errno_error(errno_t num, const std::string &msg)'],['../classstdex_1_1errno__error.html#aecd4c5513593dc5270086aee1e192fb2',1,'stdex::errno_error::errno_error(errno_t num, const char *msg=nullptr)'],['../classstdex_1_1errno__error.html#adca7aeb224bac759d355881bf640a2a4',1,'stdex::errno_error::errno_error(const std::string &msg)'],['../classstdex_1_1errno__error.html#add900d5748b938a3a9a123dfd618cbcc',1,'stdex::errno_error::errno_error(const char *msg=nullptr)'],['../classstdex_1_1errno__error.html',1,'stdex::errno_error']]] + ['emoticon_0',['emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html#a78c5dea0c060b158f41715f3000fcd70',1,'stdex::parser::basic_emoticon']]], + ['empty_1',['empty',['../structstdex_1_1interval.html#a1fa5153f1f7707e21dc41c31197659a4',1,'stdex::interval::empty()'],['../classstdex_1_1vector__queue.html#a1502ae16a184fac7b1be9e1709dd1b5d',1,'stdex::vector_queue::empty()']]], + ['enc_5fsize_2',['enc_size',['../classstdex_1_1base64__enc.html#afbae8f49a0948ea7bb23d0faa8f67f21',1,'stdex::base64_enc::enc_size()'],['../classstdex_1_1hex__enc.html#a47db116dcc51daa878d3ecc4c1ab4d8f',1,'stdex::hex_enc::enc_size(size_t size) const noexcept']]], + ['encode_3',['encode',['../classstdex_1_1hex__enc.html#a51554940e79b6192f10a7860ca407191',1,'stdex::hex_enc::encode()'],['../classstdex_1_1base64__enc.html#a709172f7120284fcea1d7856d8ff550d',1,'stdex::base64_enc::encode(std::basic_string< _Elem, _Traits, _Ax > &out, size_t size)'],['../classstdex_1_1base64__enc.html#a506985ccd54fd95dbc021457881d77c2',1,'stdex::base64_enc::encode(std::basic_string< _Elem, _Traits, _Ax > &out)'],['../classstdex_1_1base64__enc.html#a0ee96b5ec63fecc20c44afe1f1df6f04',1,'stdex::base64_enc::encode(std::basic_string< _Elem, _Traits, _Ax > &out, const void *data, size_t size, bool is_last=true)']]], + ['end_4',['end',['../structstdex_1_1interval.html#a9b92e2b20290d8ac5a9b00209f25e27a',1,'stdex::interval']]], + ['errno_5ferror_5',['errno_error',['../classstdex_1_1errno__error.html#a3dc5e2df06c563a88b3f8766b5e689fc',1,'stdex::errno_error::errno_error(errno_t num, const std::string &msg)'],['../classstdex_1_1errno__error.html#aecd4c5513593dc5270086aee1e192fb2',1,'stdex::errno_error::errno_error(errno_t num, const char *msg=nullptr)'],['../classstdex_1_1errno__error.html#adca7aeb224bac759d355881bf640a2a4',1,'stdex::errno_error::errno_error(const std::string &msg)'],['../classstdex_1_1errno__error.html#add900d5748b938a3a9a123dfd618cbcc',1,'stdex::errno_error::errno_error(const char *msg=nullptr)'],['../classstdex_1_1errno__error.html',1,'stdex::errno_error']]], + ['exponent_6',['exponent',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ac3b886b3334d64811d82d1d47fbafe66',1,'stdex::parser::basic_scientific_numeral']]], + ['exponent_5fsymbol_7',['exponent_symbol',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#af4f32b1e0846e26860217155cde66951',1,'stdex::parser::basic_scientific_numeral']]], + ['eyes_8',['eyes',['../classstdex_1_1parser_1_1basic__emoticon.html#a69b8bf12ee621af8434f00144ce8b414',1,'stdex::parser::basic_emoticon']]] ]; diff --git a/search/all_5.js b/search/all_5.js index beade29f3..fe0b5106d 100644 --- a/search/all_5.js +++ b/search/all_5.js @@ -1,5 +1,6 @@ var searchData= [ ['find_0',['find',['../classstdex_1_1idrec_1_1record.html#a19523040d07119055884a7a2f8ef25fd',1,'stdex::idrec::record']]], - ['front_1',['front',['../classstdex_1_1vector__queue.html#a61df210878f6b8b2c1b213a93b8af581',1,'stdex::vector_queue::front()'],['../classstdex_1_1vector__queue.html#a96ea84ab879a3190beabdbac5ad7e0ab',1,'stdex::vector_queue::front() const']]] + ['fraction_1',['fraction',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a5b9ea33c95fbac28833b77f0ef7dba8f',1,'stdex::parser::basic_mixed_numeral']]], + ['front_2',['front',['../classstdex_1_1vector__queue.html#a61df210878f6b8b2c1b213a93b8af581',1,'stdex::vector_queue::front()'],['../classstdex_1_1vector__queue.html#a96ea84ab879a3190beabdbac5ad7e0ab',1,'stdex::vector_queue::front() const']]] ]; diff --git a/search/all_7.js b/search/all_7.js index 15202ed72..dc839ccbe 100644 --- a/search/all_7.js +++ b/search/all_7.js @@ -1,6 +1,35 @@ var searchData= [ - ['head_0',['head',['../classstdex_1_1vector__queue.html#a5d1e9d77cf329abd9127d2a6dfbd08c4',1,'stdex::vector_queue']]], - ['hex_5fdec_1',['hex_dec',['../classstdex_1_1hex__dec.html#a61bd84f6b79b2b8e9daebfafeb2f17ad',1,'stdex::hex_dec::hex_dec()'],['../classstdex_1_1hex__dec.html',1,'stdex::hex_dec']]], - ['hex_5fenc_2',['hex_enc',['../classstdex_1_1hex__enc.html#a882581bc4798b138de9322d1b0bdd433',1,'stdex::hex_enc::hex_enc()'],['../classstdex_1_1hex__enc.html',1,'stdex::hex_enc']]] + ['has_5fseparators_0',['has_separators',['../classstdex_1_1parser_1_1basic__integer10ts.html#a2ac33bec062d1f6b21d033831a8742a9',1,'stdex::parser::basic_integer10ts']]], + ['head_1',['head',['../classstdex_1_1vector__queue.html#a5d1e9d77cf329abd9127d2a6dfbd08c4',1,'stdex::vector_queue']]], + ['hex_5fdec_2',['hex_dec',['../classstdex_1_1hex__dec.html#a61bd84f6b79b2b8e9daebfafeb2f17ad',1,'stdex::hex_dec::hex_dec()'],['../classstdex_1_1hex__dec.html',1,'stdex::hex_dec']]], + ['hex_5fenc_3',['hex_enc',['../classstdex_1_1hex__enc.html#a882581bc4798b138de9322d1b0bdd433',1,'stdex::hex_enc::hex_enc()'],['../classstdex_1_1hex__enc.html',1,'stdex::hex_enc']]], + ['http_5fagent_4',['http_agent',['../classstdex_1_1parser_1_1http__agent.html',1,'stdex::parser']]], + ['http_5fany_5ftype_5',['http_any_type',['../classstdex_1_1parser_1_1http__any__type.html',1,'stdex::parser']]], + ['http_5fasterisk_6',['http_asterisk',['../classstdex_1_1parser_1_1http__asterisk.html',1,'stdex::parser']]], + ['http_5fcookie_7',['http_cookie',['../classstdex_1_1parser_1_1http__cookie.html',1,'stdex::parser']]], + ['http_5fcookie_5fparameter_8',['http_cookie_parameter',['../classstdex_1_1parser_1_1http__cookie__parameter.html',1,'stdex::parser']]], + ['http_5ffactor_5fmore_9',['http_factor_more',['../structstdex_1_1parser_1_1http__factor__more.html',1,'stdex::parser']]], + ['http_5fheader_10',['http_header',['../classstdex_1_1parser_1_1http__header.html',1,'stdex::parser']]], + ['http_5fheader_5fcollection_11',['http_header_collection',['../classstdex_1_1parser_1_1http__header__collection.html',1,'stdex::parser']]], + ['http_5flanguage_12',['http_language',['../classstdex_1_1parser_1_1http__language.html',1,'stdex::parser']]], + ['http_5fline_5fbreak_13',['http_line_break',['../classstdex_1_1parser_1_1http__line__break.html',1,'stdex::parser']]], + ['http_5fmedia_5frange_14',['http_media_range',['../classstdex_1_1parser_1_1http__media__range.html',1,'stdex::parser']]], + ['http_5fmedia_5ftype_15',['http_media_type',['../classstdex_1_1parser_1_1http__media__type.html',1,'stdex::parser']]], + ['http_5fparameter_16',['http_parameter',['../classstdex_1_1parser_1_1http__parameter.html',1,'stdex::parser']]], + ['http_5fprotocol_17',['http_protocol',['../classstdex_1_1parser_1_1http__protocol.html',1,'stdex::parser']]], + ['http_5fquoted_5fstring_18',['http_quoted_string',['../classstdex_1_1parser_1_1http__quoted__string.html',1,'stdex::parser']]], + ['http_5frequest_19',['http_request',['../classstdex_1_1parser_1_1http__request.html',1,'stdex::parser']]], + ['http_5fspace_20',['http_space',['../classstdex_1_1parser_1_1http__space.html',1,'stdex::parser']]], + ['http_5ftext_5fchar_21',['http_text_char',['../classstdex_1_1parser_1_1http__text__char.html',1,'stdex::parser']]], + ['http_5ftoken_22',['http_token',['../classstdex_1_1parser_1_1http__token.html',1,'stdex::parser']]], + ['http_5furl_23',['http_url',['../classstdex_1_1parser_1_1http__url.html',1,'stdex::parser']]], + ['http_5furl_5fparameter_24',['http_url_parameter',['../classstdex_1_1parser_1_1http__url__parameter.html',1,'stdex::parser']]], + ['http_5furl_5fpath_25',['http_url_path',['../classstdex_1_1parser_1_1http__url__path.html',1,'stdex::parser']]], + ['http_5furl_5fpath_5fsegment_26',['http_url_path_segment',['../classstdex_1_1parser_1_1http__url__path__segment.html',1,'stdex::parser']]], + ['http_5furl_5fport_27',['http_url_port',['../classstdex_1_1parser_1_1http__url__port.html',1,'stdex::parser']]], + ['http_5furl_5fserver_28',['http_url_server',['../classstdex_1_1parser_1_1http__url__server.html',1,'stdex::parser']]], + ['http_5fvalue_29',['http_value',['../classstdex_1_1parser_1_1http__value.html',1,'stdex::parser']]], + ['http_5fweight_30',['http_weight',['../classstdex_1_1parser_1_1http__weight.html',1,'stdex::parser']]], + ['http_5fweighted_5fvalue_31',['http_weighted_value',['../classstdex_1_1parser_1_1http__weighted__value.html',1,'stdex::parser']]] ]; diff --git a/search/all_8.js b/search/all_8.js index 6355eafa8..c300f3928 100644 --- a/search/all_8.js +++ b/search/all_8.js @@ -1,5 +1,7 @@ var searchData= [ ['id_0',['id',['../classstdex_1_1idrec_1_1record.html#a24e54541a476b01e332290c57a495926',1,'stdex::idrec::record']]], - ['interval_1',['interval',['../structstdex_1_1interval.html#a9f6c66e8a3fd15c693011216bb45d6b9',1,'stdex::interval::interval() noexcept'],['../structstdex_1_1interval.html#a100a68cd81867cbf1b275cd5ab5d2160',1,'stdex::interval::interval(T x) noexcept'],['../structstdex_1_1interval.html#a41ac8e9fdb33a2dfaae6113006b792d8',1,'stdex::interval::interval(T _start, T _end) noexcept'],['../structstdex_1_1interval.html',1,'stdex::interval< T >']]] + ['integer_1',['integer',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a6713e07b435f468a6377cbca7e4595ed',1,'stdex::parser::basic_mixed_numeral::integer()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#aff899e847d2b78df90ab367ef824505a',1,'stdex::parser::basic_scientific_numeral::integer()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#ab9b5bc6ba45203904855ac67b59f1671',1,'stdex::parser::basic_monetary_numeral::integer()']]], + ['interval_2',['interval',['../classstdex_1_1parser_1_1basic__tester.html#a30d9834162b56c5c9e464af6c6e607f3',1,'stdex::parser::basic_tester::interval()'],['../structstdex_1_1interval.html#a9f6c66e8a3fd15c693011216bb45d6b9',1,'stdex::interval::interval() noexcept'],['../structstdex_1_1interval.html#a100a68cd81867cbf1b275cd5ab5d2160',1,'stdex::interval::interval(T x) noexcept'],['../structstdex_1_1interval.html#a41ac8e9fdb33a2dfaae6113006b792d8',1,'stdex::interval::interval(T _start, T _end) noexcept'],['../structstdex_1_1interval.html',1,'stdex::interval< T >']]], + ['interval_3c_20size_5ft_20_3e_3',['interval< size_t >',['../structstdex_1_1interval.html',1,'stdex']]] ]; diff --git a/search/all_a.js b/search/all_a.js index 0e353502e..3cdf7103c 100644 --- a/search/all_a.js +++ b/search/all_a.js @@ -1,8 +1,15 @@ var searchData= [ - ['m_5fcount_0',['m_count',['../classstdex_1_1vector__queue.html#a6070ca156773c17c6b75bacc5251c04c',1,'stdex::vector_queue']]], - ['m_5fdata_1',['m_data',['../classstdex_1_1vector__queue.html#a289d86508a91fbe61e0425e318d735cf',1,'stdex::vector_queue']]], - ['m_5fhead_2',['m_head',['../classstdex_1_1vector__queue.html#abd8208a4a9e92ec5c38d3718f383e41e',1,'stdex::vector_queue']]], - ['m_5fnum_3',['m_num',['../classstdex_1_1errno__error.html#a3712510d0659db4ad2ef4082a5980575',1,'stdex::errno_error']]], - ['m_5fsize_5fmax_4',['m_size_max',['../classstdex_1_1vector__queue.html#a7192dc2991d690b04a2fb24dd6fdc325',1,'stdex::vector_queue']]] + ['m_5fallow_5fabsolute_0',['m_allow_absolute',['../classstdex_1_1parser_1_1basic__dns__name.html#abfe3327023b10cb9759c13ec987701ab',1,'stdex::parser::basic_dns_name']]], + ['m_5fcount_1',['m_count',['../classstdex_1_1vector__queue.html#a6070ca156773c17c6b75bacc5251c04c',1,'stdex::vector_queue']]], + ['m_5fdata_2',['m_data',['../classstdex_1_1vector__queue.html#a289d86508a91fbe61e0425e318d735cf',1,'stdex::vector_queue']]], + ['m_5fel_3',['m_el',['../classstdex_1_1parser_1_1basic__iterations.html#acf1bc5a012aaf32ca8997105e28f93d6',1,'stdex::parser::basic_iterations']]], + ['m_5fgreedy_4',['m_greedy',['../classstdex_1_1parser_1_1basic__iterations.html#a2523c18948003ca4726eaed098e6de12',1,'stdex::parser::basic_iterations']]], + ['m_5fhead_5',['m_head',['../classstdex_1_1vector__queue.html#abd8208a4a9e92ec5c38d3718f383e41e',1,'stdex::vector_queue']]], + ['m_5fmax_5fiterations_6',['m_max_iterations',['../classstdex_1_1parser_1_1basic__iterations.html#aca0b8e1f9522a5306db5fe173269e8b1',1,'stdex::parser::basic_iterations']]], + ['m_5fmin_5fiterations_7',['m_min_iterations',['../classstdex_1_1parser_1_1basic__iterations.html#aab86447331f306ff85c49764a5d0d646',1,'stdex::parser::basic_iterations']]], + ['m_5fnum_8',['m_num',['../classstdex_1_1errno__error.html#a3712510d0659db4ad2ef4082a5980575',1,'stdex::errno_error']]], + ['m_5fsize_5fmax_9',['m_size_max',['../classstdex_1_1vector__queue.html#a7192dc2991d690b04a2fb24dd6fdc325',1,'stdex::vector_queue']]], + ['mapping_10',['mapping',['../structstdex_1_1mapping.html',1,'stdex']]], + ['mouth_11',['mouth',['../classstdex_1_1parser_1_1basic__emoticon.html#a43d0de6a54546e509807c7c888bb8dc8',1,'stdex::parser::basic_emoticon']]] ]; diff --git a/search/all_b.js b/search/all_b.js index a32d6cfbe..a7aa52727 100644 --- a/search/all_b.js +++ b/search/all_b.js @@ -1,5 +1,11 @@ var searchData= [ - ['num_0',['num',['../classstdex_1_1base64__enc.html#a58e4759143972065f71ed68f6dbc90d8',1,'stdex::base64_enc::num()'],['../classstdex_1_1base64__dec.html#a08acef30d97e7f8213e0c834b93ee849',1,'stdex::base64_dec::num()'],['../classstdex_1_1hex__dec.html#a99111436d6b30595cd1fee112e3200ae',1,'stdex::hex_dec::num()']]], - ['number_1',['number',['../classstdex_1_1errno__error.html#a6b3c265199470fe39b89f5c9941cc86f',1,'stdex::errno_error']]] + ['name_0',['name',['../classstdex_1_1parser_1_1http__parameter.html#a565c731685b779b2c0a90e8c5b7dbd55',1,'stdex::parser::http_parameter::name()'],['../classstdex_1_1parser_1_1http__cookie.html#aca58f2d8164c41be287a7fe16432ba48',1,'stdex::parser::http_cookie::name()']]], + ['negative_5fexp_5fsign_1',['negative_exp_sign',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a3ebfe6b7950a9ce83c4be5839ddb4c24',1,'stdex::parser::basic_scientific_numeral']]], + ['negative_5fsign_2',['negative_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a770d96b01472df1e7f0afbec48109bbc',1,'stdex::parser::basic_signed_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a9bb5dbea1f562247ee19765caef96cdd',1,'stdex::parser::basic_mixed_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ab1c6e60d52714da56bfa0ecf95b2ae3e',1,'stdex::parser::basic_scientific_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#aeb94b8a1ee947c2b7fbb2f7b1828c98a',1,'stdex::parser::basic_monetary_numeral::negative_sign()']]], + ['no_5fdelete_3',['no_delete',['../structstdex_1_1no__delete.html',1,'stdex']]], + ['no_5fdelete_3c_20t_5b_5d_3e_4',['no_delete< T[]>',['../structstdex_1_1no__delete_3_01_t_0f_0e_4.html',1,'stdex']]], + ['nose_5',['nose',['../classstdex_1_1parser_1_1basic__emoticon.html#a3bcb9a13e7d8933641c36fbb5b76f3a6',1,'stdex::parser::basic_emoticon']]], + ['num_6',['num',['../classstdex_1_1base64__enc.html#a58e4759143972065f71ed68f6dbc90d8',1,'stdex::base64_enc::num()'],['../classstdex_1_1base64__dec.html#a08acef30d97e7f8213e0c834b93ee849',1,'stdex::base64_dec::num()'],['../classstdex_1_1hex__dec.html#a99111436d6b30595cd1fee112e3200ae',1,'stdex::hex_dec::num()']]], + ['number_7',['number',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a602c930105632850a5313314ec57c88c',1,'stdex::parser::basic_signed_numeral::number()'],['../classstdex_1_1errno__error.html#a6b3c265199470fe39b89f5c9941cc86f',1,'stdex::errno_error::number()']]] ]; diff --git a/search/all_d.js b/search/all_d.js index 989f159be..7db2a820a 100644 --- a/search/all_d.js +++ b/search/all_d.js @@ -1,9 +1,12 @@ var searchData= [ - ['pointer_0',['pointer',['../classstdex_1_1vector__queue.html#abf6db5997ee272e03e8db1696a162148',1,'stdex::vector_queue']]], - ['pop_5fback_1',['pop_back',['../classstdex_1_1vector__queue.html#abd0fdb316392da76bac13bdd9d176eb6',1,'stdex::vector_queue']]], - ['pop_5ffront_2',['pop_front',['../classstdex_1_1vector__queue.html#adc05fb6cec951f736337dc340996271f',1,'stdex::vector_queue']]], - ['progress_3',['progress',['../classstdex_1_1progress.html',1,'stdex']]], - ['push_5fback_4',['push_back',['../classstdex_1_1vector__queue.html#ab063bf18b16eed7f4d67e0720bcb8f4f',1,'stdex::vector_queue::push_back(const value_type &v)'],['../classstdex_1_1vector__queue.html#a5b39a88669c8b7e21f1ada2aa8993b2e',1,'stdex::vector_queue::push_back(value_type &&v)']]], - ['push_5ffront_5',['push_front',['../classstdex_1_1vector__queue.html#adfc0d837fa11c1203e9c96a1a5c081b9',1,'stdex::vector_queue::push_front(const value_type &v)'],['../classstdex_1_1vector__queue.html#af307e59213be692f7918c3c541923373',1,'stdex::vector_queue::push_front(value_type &&v)']]] + ['params_0',['params',['../classstdex_1_1parser_1_1http__cookie.html#aa3d227ae38c1f63b445097ca07091616',1,'stdex::parser::http_cookie']]], + ['pointer_1',['pointer',['../classstdex_1_1vector__queue.html#abf6db5997ee272e03e8db1696a162148',1,'stdex::vector_queue']]], + ['pop_5fback_2',['pop_back',['../classstdex_1_1vector__queue.html#abd0fdb316392da76bac13bdd9d176eb6',1,'stdex::vector_queue']]], + ['pop_5ffront_3',['pop_front',['../classstdex_1_1vector__queue.html#adc05fb6cec951f736337dc340996271f',1,'stdex::vector_queue']]], + ['positive_5fexp_5fsign_4',['positive_exp_sign',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a24cfde1e017b814f0afa700d49f6539b',1,'stdex::parser::basic_scientific_numeral']]], + ['positive_5fsign_5',['positive_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a57e249c0f76db49306e36eb3fe82ac61',1,'stdex::parser::basic_signed_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a631af3930323518747179690699bb164',1,'stdex::parser::basic_mixed_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a594018a64fdfb92d1e566cd628bfb181',1,'stdex::parser::basic_scientific_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a3ed967d8bd1cd6f52cdbb9b282518598',1,'stdex::parser::basic_monetary_numeral::positive_sign()']]], + ['progress_6',['progress',['../classstdex_1_1progress.html',1,'stdex']]], + ['push_5fback_7',['push_back',['../classstdex_1_1vector__queue.html#ab063bf18b16eed7f4d67e0720bcb8f4f',1,'stdex::vector_queue::push_back(const value_type &v)'],['../classstdex_1_1vector__queue.html#a5b39a88669c8b7e21f1ada2aa8993b2e',1,'stdex::vector_queue::push_back(value_type &&v)']]], + ['push_5ffront_8',['push_front',['../classstdex_1_1vector__queue.html#adfc0d837fa11c1203e9c96a1a5c081b9',1,'stdex::vector_queue::push_front(const value_type &v)'],['../classstdex_1_1vector__queue.html#af307e59213be692f7918c3c541923373',1,'stdex::vector_queue::push_front(value_type &&v)']]] ]; diff --git a/search/all_f.js b/search/all_f.js index ff0849969..779ed0513 100644 --- a/search/all_f.js +++ b/search/all_f.js @@ -1,12 +1,28 @@ var searchData= [ - ['set_0',['set',['../classstdex_1_1progress.html#acf3a29daf22709bf7e94e864c8be95a1',1,'stdex::progress::set()'],['../classstdex_1_1lazy__progress.html#a4e3e7a80da8cce7ccec69c78fcaaabae',1,'stdex::lazy_progress::set()'],['../classstdex_1_1global__progress.html#a76e66104444c77b89b687b4ad4945e8e',1,'stdex::global_progress::set(T value)']]], - ['set_5fglobal_5frange_1',['set_global_range',['../classstdex_1_1global__progress.html#ac68b491c62861fae1b16abb3477cb9c1',1,'stdex::global_progress']]], - ['set_5frange_2',['set_range',['../classstdex_1_1progress.html#afbb1513bdb20340ebb21bd988f4e424a',1,'stdex::progress::set_range()'],['../classstdex_1_1lazy__progress.html#ada3a0d4f0086823558115a8064ffffb6',1,'stdex::lazy_progress::set_range()'],['../classstdex_1_1global__progress.html#afb204b820637c19b494976af4a284704',1,'stdex::global_progress::set_range(T start, T end)']]], - ['set_5fsection_5frange_3',['set_section_range',['../classstdex_1_1global__progress.html#a242009bce7ac595975bbfd703ec58c3b',1,'stdex::global_progress']]], - ['set_5ftext_4',['set_text',['../classstdex_1_1progress.html#a2cab8b5ac137d16fced31ee205264b01',1,'stdex::progress::set_text()'],['../classstdex_1_1global__progress.html#a89b7116003ab3b6344d90f130c14933e',1,'stdex::global_progress::set_text()']]], - ['show_5',['show',['../classstdex_1_1progress.html#ab6e57aed9e7a18a501e8a63cef199d8e',1,'stdex::progress::show()'],['../classstdex_1_1global__progress.html#a32350e02d5904867402187e81a3c4a26',1,'stdex::global_progress::show()']]], - ['size_6',['size',['../structstdex_1_1interval.html#a8c5222bc73fc66ba78bfabc1b985c864',1,'stdex::interval::size()'],['../classstdex_1_1vector__queue.html#ad704df8c3664a6d3f3e0977d87162114',1,'stdex::vector_queue::size() const']]], - ['size_5ftype_7',['size_type',['../classstdex_1_1vector__queue.html#a2a044b4eb0242a00568d08b4d8b6343a',1,'stdex::vector_queue']]], - ['start_8',['start',['../structstdex_1_1interval.html#ab6a104de0f15b29bea77fe181b49c40b',1,'stdex::interval']]] + ['scope_5fid_0',['scope_id',['../classstdex_1_1parser_1_1basic__ipv6__address.html#a2d16cb04a8b0ca4e1c55b9d681b2e417',1,'stdex::parser::basic_ipv6_address']]], + ['segments_1',['segments',['../classstdex_1_1parser_1_1http__url__path.html#a9a5f4002c55cb4500ce43536512b02b9',1,'stdex::parser::http_url_path']]], + ['set_2',['set',['../classstdex_1_1global__progress.html#a76e66104444c77b89b687b4ad4945e8e',1,'stdex::global_progress::set()'],['../classstdex_1_1lazy__progress.html#a4e3e7a80da8cce7ccec69c78fcaaabae',1,'stdex::lazy_progress::set()'],['../classstdex_1_1progress.html#acf3a29daf22709bf7e94e864c8be95a1',1,'stdex::progress::set()']]], + ['set_5fglobal_5frange_3',['set_global_range',['../classstdex_1_1global__progress.html#ac68b491c62861fae1b16abb3477cb9c1',1,'stdex::global_progress']]], + ['set_5frange_4',['set_range',['../classstdex_1_1global__progress.html#afb204b820637c19b494976af4a284704',1,'stdex::global_progress::set_range()'],['../classstdex_1_1lazy__progress.html#ada3a0d4f0086823558115a8064ffffb6',1,'stdex::lazy_progress::set_range()'],['../classstdex_1_1progress.html#afbb1513bdb20340ebb21bd988f4e424a',1,'stdex::progress::set_range()']]], + ['set_5fsection_5frange_5',['set_section_range',['../classstdex_1_1global__progress.html#a242009bce7ac595975bbfd703ec58c3b',1,'stdex::global_progress']]], + ['set_5ftext_6',['set_text',['../classstdex_1_1global__progress.html#a89b7116003ab3b6344d90f130c14933e',1,'stdex::global_progress::set_text()'],['../classstdex_1_1progress.html#a2cab8b5ac137d16fced31ee205264b01',1,'stdex::progress::set_text()']]], + ['sgml_5fany_5fcp_7',['sgml_any_cp',['../classstdex_1_1parser_1_1sgml__any__cp.html',1,'stdex::parser']]], + ['sgml_5fcp_8',['sgml_cp',['../classstdex_1_1parser_1_1sgml__cp.html',1,'stdex::parser']]], + ['sgml_5fcp_5fset_9',['sgml_cp_set',['../classstdex_1_1parser_1_1sgml__cp__set.html',1,'stdex::parser']]], + ['sgml_5fdns_5fdomain_5fchar_10',['sgml_dns_domain_char',['../classstdex_1_1parser_1_1sgml__dns__domain__char.html',1,'stdex::parser']]], + ['sgml_5fipv6_5fscope_5fid_5fchar_11',['sgml_ipv6_scope_id_char',['../classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html',1,'stdex::parser']]], + ['sgml_5fpunct_5fcp_12',['sgml_punct_cp',['../classstdex_1_1parser_1_1sgml__punct__cp.html',1,'stdex::parser']]], + ['sgml_5fspace_5fcp_13',['sgml_space_cp',['../classstdex_1_1parser_1_1sgml__space__cp.html',1,'stdex::parser']]], + ['sgml_5fspace_5for_5fpunct_5fcp_14',['sgml_space_or_punct_cp',['../classstdex_1_1parser_1_1sgml__space__or__punct__cp.html',1,'stdex::parser']]], + ['sgml_5fstring_15',['sgml_string',['../classstdex_1_1parser_1_1sgml__string.html',1,'stdex::parser']]], + ['sgml_5furl_5fpassword_5fchar_16',['sgml_url_password_char',['../classstdex_1_1parser_1_1sgml__url__password__char.html',1,'stdex::parser']]], + ['sgml_5furl_5fpath_5fchar_17',['sgml_url_path_char',['../classstdex_1_1parser_1_1sgml__url__path__char.html',1,'stdex::parser']]], + ['sgml_5furl_5fusername_5fchar_18',['sgml_url_username_char',['../classstdex_1_1parser_1_1sgml__url__username__char.html',1,'stdex::parser']]], + ['show_19',['show',['../classstdex_1_1progress.html#ab6e57aed9e7a18a501e8a63cef199d8e',1,'stdex::progress::show()'],['../classstdex_1_1global__progress.html#a32350e02d5904867402187e81a3c4a26',1,'stdex::global_progress::show()']]], + ['size_20',['size',['../structstdex_1_1interval.html#a8c5222bc73fc66ba78bfabc1b985c864',1,'stdex::interval::size()'],['../classstdex_1_1vector__queue.html#ad704df8c3664a6d3f3e0977d87162114',1,'stdex::vector_queue::size() const']]], + ['size_5ftype_21',['size_type',['../classstdex_1_1vector__queue.html#a2a044b4eb0242a00568d08b4d8b6343a',1,'stdex::vector_queue']]], + ['special_5fsign_22',['special_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a786ab72c92b1a665b922bb30037d5e93',1,'stdex::parser::basic_signed_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a2dab20189aee22c9deb10615bfc6c2f0',1,'stdex::parser::basic_mixed_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#acdd1250c2bd8c496f638d374c4cbf716',1,'stdex::parser::basic_scientific_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a3b87d54d42d77f28b5692bc5f85af97a',1,'stdex::parser::basic_monetary_numeral::special_sign()']]], + ['start_23',['start',['../structstdex_1_1interval.html#ab6a104de0f15b29bea77fe181b49c40b',1,'stdex::interval']]], + ['string_24',['string',['../classstdex_1_1parser_1_1http__value.html#a808ed411ff6816162a54b99fb7307315',1,'stdex::parser::http_value']]] ]; diff --git a/search/classes_0.js b/search/classes_0.js index e9cfb19e8..c5c8d1196 100644 --- a/search/classes_0.js +++ b/search/classes_0.js @@ -1,5 +1,61 @@ var searchData= [ ['base64_5fdec_0',['base64_dec',['../classstdex_1_1base64__dec.html',1,'stdex']]], - ['base64_5fenc_1',['base64_enc',['../classstdex_1_1base64__enc.html',1,'stdex']]] + ['base64_5fenc_1',['base64_enc',['../classstdex_1_1base64__enc.html',1,'stdex']]], + ['basic_5fangle_2',['basic_angle',['../classstdex_1_1parser_1_1basic__angle.html',1,'stdex::parser']]], + ['basic_5fany_5fcu_3',['basic_any_cu',['../classstdex_1_1parser_1_1basic__any__cu.html',1,'stdex::parser']]], + ['basic_5fany_5fcu_3c_20char_20_3e_4',['basic_any_cu< char >',['../classstdex_1_1parser_1_1basic__any__cu.html',1,'stdex::parser']]], + ['basic_5fbol_5',['basic_bol',['../classstdex_1_1parser_1_1basic__bol.html',1,'stdex::parser']]], + ['basic_5fbranch_6',['basic_branch',['../classstdex_1_1parser_1_1basic__branch.html',1,'stdex::parser']]], + ['basic_5fchemical_5fformula_7',['basic_chemical_formula',['../classstdex_1_1parser_1_1basic__chemical__formula.html',1,'stdex::parser']]], + ['basic_5fcu_8',['basic_cu',['../classstdex_1_1parser_1_1basic__cu.html',1,'stdex::parser']]], + ['basic_5fcu_5fset_9',['basic_cu_set',['../classstdex_1_1parser_1_1basic__cu__set.html',1,'stdex::parser']]], + ['basic_5fdate_10',['basic_date',['../classstdex_1_1parser_1_1basic__date.html',1,'stdex::parser']]], + ['basic_5fdns_5fdomain_5fchar_11',['basic_dns_domain_char',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], + ['basic_5fdns_5fdomain_5fchar_3c_20char_20_3e_12',['basic_dns_domain_char< char >',['../classstdex_1_1parser_1_1basic__dns__domain__char.html',1,'stdex::parser']]], + ['basic_5fdns_5fname_13',['basic_dns_name',['../classstdex_1_1parser_1_1basic__dns__name.html',1,'stdex::parser']]], + ['basic_5femail_5faddress_14',['basic_email_address',['../classstdex_1_1parser_1_1basic__email__address.html',1,'stdex::parser']]], + ['basic_5femoticon_15',['basic_emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html',1,'stdex::parser']]], + ['basic_5feol_16',['basic_eol',['../classstdex_1_1parser_1_1basic__eol.html',1,'stdex::parser']]], + ['basic_5ffraction_17',['basic_fraction',['../classstdex_1_1parser_1_1basic__fraction.html',1,'stdex::parser']]], + ['basic_5finteger_18',['basic_integer',['../classstdex_1_1parser_1_1basic__integer.html',1,'stdex::parser']]], + ['basic_5finteger10_19',['basic_integer10',['../classstdex_1_1parser_1_1basic__integer10.html',1,'stdex::parser']]], + ['basic_5finteger10ts_20',['basic_integer10ts',['../classstdex_1_1parser_1_1basic__integer10ts.html',1,'stdex::parser']]], + ['basic_5finteger16_21',['basic_integer16',['../classstdex_1_1parser_1_1basic__integer16.html',1,'stdex::parser']]], + ['basic_5fipv4_5faddress_22',['basic_ipv4_address',['../classstdex_1_1parser_1_1basic__ipv4__address.html',1,'stdex::parser']]], + ['basic_5fipv6_5faddress_23',['basic_ipv6_address',['../classstdex_1_1parser_1_1basic__ipv6__address.html',1,'stdex::parser']]], + ['basic_5fipv6_5fscope_5fid_5fchar_24',['basic_ipv6_scope_id_char',['../classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html',1,'stdex::parser']]], + ['basic_5fiterations_25',['basic_iterations',['../classstdex_1_1parser_1_1basic__iterations.html',1,'stdex::parser']]], + ['basic_5fjson_5fstring_26',['basic_json_string',['../classstdex_1_1parser_1_1basic__json__string.html',1,'stdex::parser']]], + ['basic_5fmixed_5fnumeral_27',['basic_mixed_numeral',['../classstdex_1_1parser_1_1basic__mixed__numeral.html',1,'stdex::parser']]], + ['basic_5fmonetary_5fnumeral_28',['basic_monetary_numeral',['../classstdex_1_1parser_1_1basic__monetary__numeral.html',1,'stdex::parser']]], + ['basic_5fnoop_29',['basic_noop',['../classstdex_1_1parser_1_1basic__noop.html',1,'stdex::parser']]], + ['basic_5fpermutation_30',['basic_permutation',['../classstdex_1_1parser_1_1basic__permutation.html',1,'stdex::parser']]], + ['basic_5fphone_5fnumber_31',['basic_phone_number',['../classstdex_1_1parser_1_1basic__phone__number.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_32',['basic_punct_cu',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_3c_20char_20_3e_33',['basic_punct_cu< char >',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5froman_5fnumeral_34',['basic_roman_numeral',['../classstdex_1_1parser_1_1basic__roman__numeral.html',1,'stdex::parser']]], + ['basic_5fscientific_5fnumeral_35',['basic_scientific_numeral',['../classstdex_1_1parser_1_1basic__scientific__numeral.html',1,'stdex::parser']]], + ['basic_5fscore_36',['basic_score',['../classstdex_1_1parser_1_1basic__score.html',1,'stdex::parser']]], + ['basic_5fsequence_37',['basic_sequence',['../classstdex_1_1parser_1_1basic__sequence.html',1,'stdex::parser']]], + ['basic_5fset_38',['basic_set',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fset_3c_20char_20_3e_39',['basic_set< char >',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fsigned_5fnumeral_40',['basic_signed_numeral',['../classstdex_1_1parser_1_1basic__signed__numeral.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_41',['basic_space_cu',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_3c_20char_20_3e_42',['basic_space_cu< char >',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_43',['basic_space_or_punct_cu',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_3c_20char_20_3e_44',['basic_space_or_punct_cu< char >',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fstring_45',['basic_string',['../classstdex_1_1parser_1_1basic__string.html',1,'stdex::parser']]], + ['basic_5fstring_5fbranch_46',['basic_string_branch',['../classstdex_1_1parser_1_1basic__string__branch.html',1,'stdex::parser']]], + ['basic_5ftester_47',['basic_tester',['../classstdex_1_1parser_1_1basic__tester.html',1,'stdex::parser']]], + ['basic_5ftester_3c_20char_20_3e_48',['basic_tester< char >',['../classstdex_1_1parser_1_1basic__tester.html',1,'stdex::parser']]], + ['basic_5ftime_49',['basic_time',['../classstdex_1_1parser_1_1basic__time.html',1,'stdex::parser']]], + ['basic_5furl_50',['basic_url',['../classstdex_1_1parser_1_1basic__url.html',1,'stdex::parser']]], + ['basic_5furl_5fpassword_5fchar_51',['basic_url_password_char',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpassword_5fchar_3c_20char_20_3e_52',['basic_url_password_char< char >',['../classstdex_1_1parser_1_1basic__url__password__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_53',['basic_url_path',['../classstdex_1_1parser_1_1basic__url__path.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_5fchar_54',['basic_url_path_char',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], + ['basic_5furl_5fpath_5fchar_3c_20char_20_3e_55',['basic_url_path_char< char >',['../classstdex_1_1parser_1_1basic__url__path__char.html',1,'stdex::parser']]], + ['basic_5furl_5fusername_5fchar_56',['basic_url_username_char',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]], + ['basic_5furl_5fusername_5fchar_3c_20char_20_3e_57',['basic_url_username_char< char >',['../classstdex_1_1parser_1_1basic__url__username__char.html',1,'stdex::parser']]] ]; diff --git a/search/classes_3.js b/search/classes_3.js index 8264c9f26..204b3744b 100644 --- a/search/classes_3.js +++ b/search/classes_3.js @@ -1,5 +1,33 @@ var searchData= [ ['hex_5fdec_0',['hex_dec',['../classstdex_1_1hex__dec.html',1,'stdex']]], - ['hex_5fenc_1',['hex_enc',['../classstdex_1_1hex__enc.html',1,'stdex']]] + ['hex_5fenc_1',['hex_enc',['../classstdex_1_1hex__enc.html',1,'stdex']]], + ['http_5fagent_2',['http_agent',['../classstdex_1_1parser_1_1http__agent.html',1,'stdex::parser']]], + ['http_5fany_5ftype_3',['http_any_type',['../classstdex_1_1parser_1_1http__any__type.html',1,'stdex::parser']]], + ['http_5fasterisk_4',['http_asterisk',['../classstdex_1_1parser_1_1http__asterisk.html',1,'stdex::parser']]], + ['http_5fcookie_5',['http_cookie',['../classstdex_1_1parser_1_1http__cookie.html',1,'stdex::parser']]], + ['http_5fcookie_5fparameter_6',['http_cookie_parameter',['../classstdex_1_1parser_1_1http__cookie__parameter.html',1,'stdex::parser']]], + ['http_5ffactor_5fmore_7',['http_factor_more',['../structstdex_1_1parser_1_1http__factor__more.html',1,'stdex::parser']]], + ['http_5fheader_8',['http_header',['../classstdex_1_1parser_1_1http__header.html',1,'stdex::parser']]], + ['http_5fheader_5fcollection_9',['http_header_collection',['../classstdex_1_1parser_1_1http__header__collection.html',1,'stdex::parser']]], + ['http_5flanguage_10',['http_language',['../classstdex_1_1parser_1_1http__language.html',1,'stdex::parser']]], + ['http_5fline_5fbreak_11',['http_line_break',['../classstdex_1_1parser_1_1http__line__break.html',1,'stdex::parser']]], + ['http_5fmedia_5frange_12',['http_media_range',['../classstdex_1_1parser_1_1http__media__range.html',1,'stdex::parser']]], + ['http_5fmedia_5ftype_13',['http_media_type',['../classstdex_1_1parser_1_1http__media__type.html',1,'stdex::parser']]], + ['http_5fparameter_14',['http_parameter',['../classstdex_1_1parser_1_1http__parameter.html',1,'stdex::parser']]], + ['http_5fprotocol_15',['http_protocol',['../classstdex_1_1parser_1_1http__protocol.html',1,'stdex::parser']]], + ['http_5fquoted_5fstring_16',['http_quoted_string',['../classstdex_1_1parser_1_1http__quoted__string.html',1,'stdex::parser']]], + ['http_5frequest_17',['http_request',['../classstdex_1_1parser_1_1http__request.html',1,'stdex::parser']]], + ['http_5fspace_18',['http_space',['../classstdex_1_1parser_1_1http__space.html',1,'stdex::parser']]], + ['http_5ftext_5fchar_19',['http_text_char',['../classstdex_1_1parser_1_1http__text__char.html',1,'stdex::parser']]], + ['http_5ftoken_20',['http_token',['../classstdex_1_1parser_1_1http__token.html',1,'stdex::parser']]], + ['http_5furl_21',['http_url',['../classstdex_1_1parser_1_1http__url.html',1,'stdex::parser']]], + ['http_5furl_5fparameter_22',['http_url_parameter',['../classstdex_1_1parser_1_1http__url__parameter.html',1,'stdex::parser']]], + ['http_5furl_5fpath_23',['http_url_path',['../classstdex_1_1parser_1_1http__url__path.html',1,'stdex::parser']]], + ['http_5furl_5fpath_5fsegment_24',['http_url_path_segment',['../classstdex_1_1parser_1_1http__url__path__segment.html',1,'stdex::parser']]], + ['http_5furl_5fport_25',['http_url_port',['../classstdex_1_1parser_1_1http__url__port.html',1,'stdex::parser']]], + ['http_5furl_5fserver_26',['http_url_server',['../classstdex_1_1parser_1_1http__url__server.html',1,'stdex::parser']]], + ['http_5fvalue_27',['http_value',['../classstdex_1_1parser_1_1http__value.html',1,'stdex::parser']]], + ['http_5fweight_28',['http_weight',['../classstdex_1_1parser_1_1http__weight.html',1,'stdex::parser']]], + ['http_5fweighted_5fvalue_29',['http_weighted_value',['../classstdex_1_1parser_1_1http__weighted__value.html',1,'stdex::parser']]] ]; diff --git a/search/classes_4.js b/search/classes_4.js index d3f8dfc0e..a9ad3560e 100644 --- a/search/classes_4.js +++ b/search/classes_4.js @@ -1,4 +1,5 @@ var searchData= [ - ['interval_0',['interval',['../structstdex_1_1interval.html',1,'stdex']]] + ['interval_0',['interval',['../structstdex_1_1interval.html',1,'stdex']]], + ['interval_3c_20size_5ft_20_3e_1',['interval< size_t >',['../structstdex_1_1interval.html',1,'stdex']]] ]; diff --git a/search/classes_6.js b/search/classes_6.js index 28b4850ba..edb3a8af9 100644 --- a/search/classes_6.js +++ b/search/classes_6.js @@ -1,4 +1,4 @@ var searchData= [ - ['progress_0',['progress',['../classstdex_1_1progress.html',1,'stdex']]] + ['mapping_0',['mapping',['../structstdex_1_1mapping.html',1,'stdex']]] ]; diff --git a/search/classes_7.js b/search/classes_7.js index e52d7c67e..44e87a729 100644 --- a/search/classes_7.js +++ b/search/classes_7.js @@ -1,4 +1,5 @@ var searchData= [ - ['record_0',['record',['../classstdex_1_1idrec_1_1record.html',1,'stdex::idrec']]] + ['no_5fdelete_0',['no_delete',['../structstdex_1_1no__delete.html',1,'stdex']]], + ['no_5fdelete_3c_20t_5b_5d_3e_1',['no_delete< T[]>',['../structstdex_1_1no__delete_3_01_t_0f_0e_4.html',1,'stdex']]] ]; diff --git a/search/classes_8.js b/search/classes_8.js index a27d9a257..28b4850ba 100644 --- a/search/classes_8.js +++ b/search/classes_8.js @@ -1,4 +1,4 @@ var searchData= [ - ['user_5fcancelled_0',['user_cancelled',['../classstdex_1_1user__cancelled.html',1,'stdex']]] + ['progress_0',['progress',['../classstdex_1_1progress.html',1,'stdex']]] ]; diff --git a/search/classes_9.js b/search/classes_9.js index 3c6b76703..e52d7c67e 100644 --- a/search/classes_9.js +++ b/search/classes_9.js @@ -1,4 +1,4 @@ var searchData= [ - ['vector_5fqueue_0',['vector_queue',['../classstdex_1_1vector__queue.html',1,'stdex']]] + ['record_0',['record',['../classstdex_1_1idrec_1_1record.html',1,'stdex::idrec']]] ]; diff --git a/search/classes_a.js b/search/classes_a.js new file mode 100644 index 000000000..5dfa2cc87 --- /dev/null +++ b/search/classes_a.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['sgml_5fany_5fcp_0',['sgml_any_cp',['../classstdex_1_1parser_1_1sgml__any__cp.html',1,'stdex::parser']]], + ['sgml_5fcp_1',['sgml_cp',['../classstdex_1_1parser_1_1sgml__cp.html',1,'stdex::parser']]], + ['sgml_5fcp_5fset_2',['sgml_cp_set',['../classstdex_1_1parser_1_1sgml__cp__set.html',1,'stdex::parser']]], + ['sgml_5fdns_5fdomain_5fchar_3',['sgml_dns_domain_char',['../classstdex_1_1parser_1_1sgml__dns__domain__char.html',1,'stdex::parser']]], + ['sgml_5fipv6_5fscope_5fid_5fchar_4',['sgml_ipv6_scope_id_char',['../classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html',1,'stdex::parser']]], + ['sgml_5fpunct_5fcp_5',['sgml_punct_cp',['../classstdex_1_1parser_1_1sgml__punct__cp.html',1,'stdex::parser']]], + ['sgml_5fspace_5fcp_6',['sgml_space_cp',['../classstdex_1_1parser_1_1sgml__space__cp.html',1,'stdex::parser']]], + ['sgml_5fspace_5for_5fpunct_5fcp_7',['sgml_space_or_punct_cp',['../classstdex_1_1parser_1_1sgml__space__or__punct__cp.html',1,'stdex::parser']]], + ['sgml_5fstring_8',['sgml_string',['../classstdex_1_1parser_1_1sgml__string.html',1,'stdex::parser']]], + ['sgml_5furl_5fpassword_5fchar_9',['sgml_url_password_char',['../classstdex_1_1parser_1_1sgml__url__password__char.html',1,'stdex::parser']]], + ['sgml_5furl_5fpath_5fchar_10',['sgml_url_path_char',['../classstdex_1_1parser_1_1sgml__url__path__char.html',1,'stdex::parser']]], + ['sgml_5furl_5fusername_5fchar_11',['sgml_url_username_char',['../classstdex_1_1parser_1_1sgml__url__username__char.html',1,'stdex::parser']]] +]; diff --git a/search/classes_b.js b/search/classes_b.js new file mode 100644 index 000000000..29d41be92 --- /dev/null +++ b/search/classes_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tester_5fcollection_0',['tester_collection',['../classstdex_1_1parser_1_1tester__collection.html',1,'stdex::parser']]] +]; diff --git a/search/classes_c.js b/search/classes_c.js new file mode 100644 index 000000000..a27d9a257 --- /dev/null +++ b/search/classes_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['user_5fcancelled_0',['user_cancelled',['../classstdex_1_1user__cancelled.html',1,'stdex']]] +]; diff --git a/search/classes_d.js b/search/classes_d.js new file mode 100644 index 000000000..3c6b76703 --- /dev/null +++ b/search/classes_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vector_5fqueue_0',['vector_queue',['../classstdex_1_1vector__queue.html',1,'stdex']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js index d73ca339a..1f5f5c54d 100644 --- a/search/functions_4.js +++ b/search/functions_4.js @@ -1,6 +1,6 @@ var searchData= [ - ['empty_0',['empty',['../classstdex_1_1vector__queue.html#a1502ae16a184fac7b1be9e1709dd1b5d',1,'stdex::vector_queue']]], + ['empty_0',['empty',['../structstdex_1_1interval.html#a1fa5153f1f7707e21dc41c31197659a4',1,'stdex::interval::empty()'],['../classstdex_1_1vector__queue.html#a1502ae16a184fac7b1be9e1709dd1b5d',1,'stdex::vector_queue::empty()']]], ['enc_5fsize_1',['enc_size',['../classstdex_1_1base64__enc.html#afbae8f49a0948ea7bb23d0faa8f67f21',1,'stdex::base64_enc::enc_size()'],['../classstdex_1_1hex__enc.html#a47db116dcc51daa878d3ecc4c1ab4d8f',1,'stdex::hex_enc::enc_size()']]], ['encode_2',['encode',['../classstdex_1_1base64__enc.html#a0ee96b5ec63fecc20c44afe1f1df6f04',1,'stdex::base64_enc::encode(std::basic_string< _Elem, _Traits, _Ax > &out, const void *data, size_t size, bool is_last=true)'],['../classstdex_1_1base64__enc.html#a506985ccd54fd95dbc021457881d77c2',1,'stdex::base64_enc::encode(std::basic_string< _Elem, _Traits, _Ax > &out)'],['../classstdex_1_1base64__enc.html#a709172f7120284fcea1d7856d8ff550d',1,'stdex::base64_enc::encode(std::basic_string< _Elem, _Traits, _Ax > &out, size_t size)'],['../classstdex_1_1hex__enc.html#a51554940e79b6192f10a7860ca407191',1,'stdex::hex_enc::encode()']]], ['errno_5ferror_3',['errno_error',['../classstdex_1_1errno__error.html#a3dc5e2df06c563a88b3f8766b5e689fc',1,'stdex::errno_error::errno_error(errno_t num, const std::string &msg)'],['../classstdex_1_1errno__error.html#aecd4c5513593dc5270086aee1e192fb2',1,'stdex::errno_error::errno_error(errno_t num, const char *msg=nullptr)'],['../classstdex_1_1errno__error.html#adca7aeb224bac759d355881bf640a2a4',1,'stdex::errno_error::errno_error(const std::string &msg)'],['../classstdex_1_1errno__error.html#add900d5748b938a3a9a123dfd618cbcc',1,'stdex::errno_error::errno_error(const char *msg=nullptr)']]] diff --git a/search/searchdata.js b/search/searchdata.js index 4c04d2c85..b65ca6dfd 100644 --- a/search/searchdata.js +++ b/search/searchdata.js @@ -1,9 +1,9 @@ var indexSectionsWithContent = { 0: "abcdefghilmnoprstuv~", - 1: "beghilpruv", + 1: "beghilmnprstuv", 2: "abcdefghilnoprstuv~", - 3: "bdemns", + 3: "abcdefhimnpstv", 4: "cprsv" }; diff --git a/search/variables_0.js b/search/variables_0.js index 6fbbd142e..dbafa9c7e 100644 --- a/search/variables_0.js +++ b/search/variables_0.js @@ -1,4 +1,5 @@ var searchData= [ - ['buf_0',['buf',['../classstdex_1_1base64__enc.html#aea9a31d698c85699d492b095ea569d73',1,'stdex::base64_enc::buf()'],['../classstdex_1_1base64__dec.html#a4080daff84dfd499b3a15fe876ada2ca',1,'stdex::base64_dec::buf()'],['../classstdex_1_1hex__dec.html#a47a6b05d03e3cd075fe74505675b5126',1,'stdex::hex_dec::buf()']]] + ['allow_5fon_5fedge_0',['allow_on_edge',['../classstdex_1_1parser_1_1basic__dns__domain__char.html#a3307235d495a97c98f9efd1464e8a8a7',1,'stdex::parser::basic_dns_domain_char']]], + ['apex_1',['apex',['../classstdex_1_1parser_1_1basic__emoticon.html#ab6c13f75c157a179893df4716a3a1443',1,'stdex::parser::basic_emoticon']]] ]; diff --git a/search/variables_1.js b/search/variables_1.js index 4b898a473..6fbbd142e 100644 --- a/search/variables_1.js +++ b/search/variables_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['data_0',['data',['../classstdex_1_1idrec_1_1record.html#a1ab09fae53142836c958a63137fb37cb',1,'stdex::idrec::record']]] + ['buf_0',['buf',['../classstdex_1_1base64__enc.html#aea9a31d698c85699d492b095ea569d73',1,'stdex::base64_enc::buf()'],['../classstdex_1_1base64__dec.html#a4080daff84dfd499b3a15fe876ada2ca',1,'stdex::base64_dec::buf()'],['../classstdex_1_1hex__dec.html#a47a6b05d03e3cd075fe74505675b5126',1,'stdex::hex_dec::buf()']]] ]; diff --git a/search/variables_2.js b/search/variables_2.js index 086700096..7025570bf 100644 --- a/search/variables_2.js +++ b/search/variables_2.js @@ -1,4 +1,6 @@ var searchData= [ - ['end_0',['end',['../structstdex_1_1interval.html#a9b92e2b20290d8ac5a9b00209f25e27a',1,'stdex::interval']]] + ['components_0',['components',['../classstdex_1_1parser_1_1basic__ipv4__address.html#a0dfb21ee671894048c831edef7257931',1,'stdex::parser::basic_ipv4_address::components()'],['../classstdex_1_1parser_1_1basic__ipv6__address.html#abe14c21fb1d4cb35c0121ca610e6e87e',1,'stdex::parser::basic_ipv6_address::components()']]], + ['content_1',['content',['../classstdex_1_1parser_1_1http__quoted__string.html#ab6e413ccf79e9f3dddd35c2a607381dd',1,'stdex::parser::http_quoted_string']]], + ['currency_2',['currency',['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a2f0d25d001827a0e6ebb48b16e4cfec2',1,'stdex::parser::basic_monetary_numeral']]] ]; diff --git a/search/variables_3.js b/search/variables_3.js index 0e353502e..647967580 100644 --- a/search/variables_3.js +++ b/search/variables_3.js @@ -1,8 +1,7 @@ var searchData= [ - ['m_5fcount_0',['m_count',['../classstdex_1_1vector__queue.html#a6070ca156773c17c6b75bacc5251c04c',1,'stdex::vector_queue']]], - ['m_5fdata_1',['m_data',['../classstdex_1_1vector__queue.html#a289d86508a91fbe61e0425e318d735cf',1,'stdex::vector_queue']]], - ['m_5fhead_2',['m_head',['../classstdex_1_1vector__queue.html#abd8208a4a9e92ec5c38d3718f383e41e',1,'stdex::vector_queue']]], - ['m_5fnum_3',['m_num',['../classstdex_1_1errno__error.html#a3712510d0659db4ad2ef4082a5980575',1,'stdex::errno_error']]], - ['m_5fsize_5fmax_4',['m_size_max',['../classstdex_1_1vector__queue.html#a7192dc2991d690b04a2fb24dd6fdc325',1,'stdex::vector_queue']]] + ['data_0',['data',['../classstdex_1_1idrec_1_1record.html#a1ab09fae53142836c958a63137fb37cb',1,'stdex::idrec::record']]], + ['decimal_1',['decimal',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ab002d811ce7c7590863492bbc4ac355f',1,'stdex::parser::basic_scientific_numeral::decimal()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a0f32376676fc3f7e4fbad66771e424c4',1,'stdex::parser::basic_monetary_numeral::decimal()']]], + ['decimal_5fseparator_2',['decimal_separator',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ad259d0eaa6e79c7cd6c114f1bb0da6dc',1,'stdex::parser::basic_scientific_numeral::decimal_separator()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a06cdd1cbfc37511990fc61dc3bade76b',1,'stdex::parser::basic_monetary_numeral::decimal_separator()']]], + ['digit_5fcount_3',['digit_count',['../classstdex_1_1parser_1_1basic__integer10ts.html#a3c400d7c6e0edf695e7cf5e9f43ae388',1,'stdex::parser::basic_integer10ts']]] ]; diff --git a/search/variables_4.js b/search/variables_4.js index b75adff4c..ee52170cf 100644 --- a/search/variables_4.js +++ b/search/variables_4.js @@ -1,4 +1,8 @@ var searchData= [ - ['num_0',['num',['../classstdex_1_1base64__enc.html#a58e4759143972065f71ed68f6dbc90d8',1,'stdex::base64_enc::num()'],['../classstdex_1_1base64__dec.html#a08acef30d97e7f8213e0c834b93ee849',1,'stdex::base64_dec::num()'],['../classstdex_1_1hex__dec.html#a99111436d6b30595cd1fee112e3200ae',1,'stdex::hex_dec::num()']]] + ['emoticon_0',['emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html#a78c5dea0c060b158f41715f3000fcd70',1,'stdex::parser::basic_emoticon']]], + ['end_1',['end',['../structstdex_1_1interval.html#a9b92e2b20290d8ac5a9b00209f25e27a',1,'stdex::interval']]], + ['exponent_2',['exponent',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ac3b886b3334d64811d82d1d47fbafe66',1,'stdex::parser::basic_scientific_numeral']]], + ['exponent_5fsymbol_3',['exponent_symbol',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#af4f32b1e0846e26860217155cde66951',1,'stdex::parser::basic_scientific_numeral']]], + ['eyes_4',['eyes',['../classstdex_1_1parser_1_1basic__emoticon.html#a69b8bf12ee621af8434f00144ce8b414',1,'stdex::parser::basic_emoticon']]] ]; diff --git a/search/variables_5.js b/search/variables_5.js index 76aa89b47..c8e9f077c 100644 --- a/search/variables_5.js +++ b/search/variables_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['start_0',['start',['../structstdex_1_1interval.html#ab6a104de0f15b29bea77fe181b49c40b',1,'stdex::interval']]] + ['fraction_0',['fraction',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a5b9ea33c95fbac28833b77f0ef7dba8f',1,'stdex::parser::basic_mixed_numeral']]] ]; diff --git a/search/variables_6.js b/search/variables_6.js new file mode 100644 index 000000000..9634053d2 --- /dev/null +++ b/search/variables_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['has_5fseparators_0',['has_separators',['../classstdex_1_1parser_1_1basic__integer10ts.html#a2ac33bec062d1f6b21d033831a8742a9',1,'stdex::parser::basic_integer10ts']]] +]; diff --git a/search/variables_7.js b/search/variables_7.js new file mode 100644 index 000000000..cf7363647 --- /dev/null +++ b/search/variables_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['integer_0',['integer',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a6713e07b435f468a6377cbca7e4595ed',1,'stdex::parser::basic_mixed_numeral::integer()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#aff899e847d2b78df90ab367ef824505a',1,'stdex::parser::basic_scientific_numeral::integer()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#ab9b5bc6ba45203904855ac67b59f1671',1,'stdex::parser::basic_monetary_numeral::integer()']]], + ['interval_1',['interval',['../classstdex_1_1parser_1_1basic__tester.html#a30d9834162b56c5c9e464af6c6e607f3',1,'stdex::parser::basic_tester']]] +]; diff --git a/search/variables_8.js b/search/variables_8.js new file mode 100644 index 000000000..26683fa4a --- /dev/null +++ b/search/variables_8.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['m_5fallow_5fabsolute_0',['m_allow_absolute',['../classstdex_1_1parser_1_1basic__dns__name.html#abfe3327023b10cb9759c13ec987701ab',1,'stdex::parser::basic_dns_name']]], + ['m_5fcount_1',['m_count',['../classstdex_1_1vector__queue.html#a6070ca156773c17c6b75bacc5251c04c',1,'stdex::vector_queue']]], + ['m_5fdata_2',['m_data',['../classstdex_1_1vector__queue.html#a289d86508a91fbe61e0425e318d735cf',1,'stdex::vector_queue']]], + ['m_5fel_3',['m_el',['../classstdex_1_1parser_1_1basic__iterations.html#acf1bc5a012aaf32ca8997105e28f93d6',1,'stdex::parser::basic_iterations']]], + ['m_5fgreedy_4',['m_greedy',['../classstdex_1_1parser_1_1basic__iterations.html#a2523c18948003ca4726eaed098e6de12',1,'stdex::parser::basic_iterations']]], + ['m_5fhead_5',['m_head',['../classstdex_1_1vector__queue.html#abd8208a4a9e92ec5c38d3718f383e41e',1,'stdex::vector_queue']]], + ['m_5fmax_5fiterations_6',['m_max_iterations',['../classstdex_1_1parser_1_1basic__iterations.html#aca0b8e1f9522a5306db5fe173269e8b1',1,'stdex::parser::basic_iterations']]], + ['m_5fmin_5fiterations_7',['m_min_iterations',['../classstdex_1_1parser_1_1basic__iterations.html#aab86447331f306ff85c49764a5d0d646',1,'stdex::parser::basic_iterations']]], + ['m_5fnum_8',['m_num',['../classstdex_1_1errno__error.html#a3712510d0659db4ad2ef4082a5980575',1,'stdex::errno_error']]], + ['m_5fsize_5fmax_9',['m_size_max',['../classstdex_1_1vector__queue.html#a7192dc2991d690b04a2fb24dd6fdc325',1,'stdex::vector_queue']]], + ['mouth_10',['mouth',['../classstdex_1_1parser_1_1basic__emoticon.html#a43d0de6a54546e509807c7c888bb8dc8',1,'stdex::parser::basic_emoticon']]] +]; diff --git a/search/variables_9.js b/search/variables_9.js new file mode 100644 index 000000000..6584e909b --- /dev/null +++ b/search/variables_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['name_0',['name',['../classstdex_1_1parser_1_1http__parameter.html#a565c731685b779b2c0a90e8c5b7dbd55',1,'stdex::parser::http_parameter::name()'],['../classstdex_1_1parser_1_1http__cookie.html#aca58f2d8164c41be287a7fe16432ba48',1,'stdex::parser::http_cookie::name()']]], + ['negative_5fexp_5fsign_1',['negative_exp_sign',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a3ebfe6b7950a9ce83c4be5839ddb4c24',1,'stdex::parser::basic_scientific_numeral']]], + ['negative_5fsign_2',['negative_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a770d96b01472df1e7f0afbec48109bbc',1,'stdex::parser::basic_signed_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a9bb5dbea1f562247ee19765caef96cdd',1,'stdex::parser::basic_mixed_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ab1c6e60d52714da56bfa0ecf95b2ae3e',1,'stdex::parser::basic_scientific_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#aeb94b8a1ee947c2b7fbb2f7b1828c98a',1,'stdex::parser::basic_monetary_numeral::negative_sign()']]], + ['nose_3',['nose',['../classstdex_1_1parser_1_1basic__emoticon.html#a3bcb9a13e7d8933641c36fbb5b76f3a6',1,'stdex::parser::basic_emoticon']]], + ['num_4',['num',['../classstdex_1_1base64__enc.html#a58e4759143972065f71ed68f6dbc90d8',1,'stdex::base64_enc::num()'],['../classstdex_1_1base64__dec.html#a08acef30d97e7f8213e0c834b93ee849',1,'stdex::base64_dec::num()'],['../classstdex_1_1hex__dec.html#a99111436d6b30595cd1fee112e3200ae',1,'stdex::hex_dec::num()']]], + ['number_5',['number',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a602c930105632850a5313314ec57c88c',1,'stdex::parser::basic_signed_numeral']]] +]; diff --git a/search/variables_a.js b/search/variables_a.js new file mode 100644 index 000000000..3ec2825e8 --- /dev/null +++ b/search/variables_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['params_0',['params',['../classstdex_1_1parser_1_1http__cookie.html#aa3d227ae38c1f63b445097ca07091616',1,'stdex::parser::http_cookie']]], + ['positive_5fexp_5fsign_1',['positive_exp_sign',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a24cfde1e017b814f0afa700d49f6539b',1,'stdex::parser::basic_scientific_numeral']]], + ['positive_5fsign_2',['positive_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a57e249c0f76db49306e36eb3fe82ac61',1,'stdex::parser::basic_signed_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a631af3930323518747179690699bb164',1,'stdex::parser::basic_mixed_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a594018a64fdfb92d1e566cd628bfb181',1,'stdex::parser::basic_scientific_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a3ed967d8bd1cd6f52cdbb9b282518598',1,'stdex::parser::basic_monetary_numeral::positive_sign()']]] +]; diff --git a/search/variables_b.js b/search/variables_b.js new file mode 100644 index 000000000..caa979bbc --- /dev/null +++ b/search/variables_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['scope_5fid_0',['scope_id',['../classstdex_1_1parser_1_1basic__ipv6__address.html#a2d16cb04a8b0ca4e1c55b9d681b2e417',1,'stdex::parser::basic_ipv6_address']]], + ['segments_1',['segments',['../classstdex_1_1parser_1_1http__url__path.html#a9a5f4002c55cb4500ce43536512b02b9',1,'stdex::parser::http_url_path']]], + ['special_5fsign_2',['special_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a786ab72c92b1a665b922bb30037d5e93',1,'stdex::parser::basic_signed_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a2dab20189aee22c9deb10615bfc6c2f0',1,'stdex::parser::basic_mixed_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#acdd1250c2bd8c496f638d374c4cbf716',1,'stdex::parser::basic_scientific_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a3b87d54d42d77f28b5692bc5f85af97a',1,'stdex::parser::basic_monetary_numeral::special_sign()']]], + ['start_3',['start',['../structstdex_1_1interval.html#ab6a104de0f15b29bea77fe181b49c40b',1,'stdex::interval']]], + ['string_4',['string',['../classstdex_1_1parser_1_1http__value.html#a808ed411ff6816162a54b99fb7307315',1,'stdex::parser::http_value']]] +]; diff --git a/search/variables_c.js b/search/variables_c.js new file mode 100644 index 000000000..86dea09c5 --- /dev/null +++ b/search/variables_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['token_0',['token',['../classstdex_1_1parser_1_1http__value.html#aecdecacd265379c1d6e12a75424c5573',1,'stdex::parser::http_value']]] +]; diff --git a/search/variables_d.js b/search/variables_d.js new file mode 100644 index 000000000..99d4a3985 --- /dev/null +++ b/search/variables_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['value_0',['value',['../classstdex_1_1parser_1_1basic__integer.html#ac42a57e08e8189c89817bfde6e507c95',1,'stdex::parser::basic_integer::value()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a9aa6f1cbde1efccf75fd0df385f03477',1,'stdex::parser::basic_scientific_numeral::value()'],['../classstdex_1_1parser_1_1basic__ipv4__address.html#ad50e8e52cf16226e57fa25e48bf17deb',1,'stdex::parser::basic_ipv4_address::value()'],['../classstdex_1_1parser_1_1basic__ipv6__address.html#aee9fca8501ba3cd5e5c875ecdb419376',1,'stdex::parser::basic_ipv6_address::value()'],['../classstdex_1_1parser_1_1basic__phone__number.html#aa0650f9f19dfe2d50bcdd79884dd6475',1,'stdex::parser::basic_phone_number::value()'],['../classstdex_1_1parser_1_1http__parameter.html#a616b1cd7f872c3ff453c8d854a7db638',1,'stdex::parser::http_parameter::value()'],['../classstdex_1_1parser_1_1http__weight.html#ac889015ae4b2640eaf067b343f7c05ff',1,'stdex::parser::http_weight::value()'],['../classstdex_1_1parser_1_1http__cookie.html#add653aef947c19d25730adc728089a9f',1,'stdex::parser::http_cookie::value()']]], + ['version_1',['version',['../classstdex_1_1parser_1_1http__protocol.html#a49afaa7910baf6092f5042eca86824c7',1,'stdex::parser::http_protocol']]] +]; diff --git a/sgml_8hpp_source.html b/sgml_8hpp_source.html new file mode 100644 index 000000000..faa915ad0 --- /dev/null +++ b/sgml_8hpp_source.html @@ -0,0 +1,370 @@ + + + + + + + +stdex: include/stdex/sgml.hpp Source File + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      sgml.hpp
      +
      +
      +
      1/*
      +
      2 SPDX-License-Identifier: MIT
      +
      3 Copyright © 2023 Amebis
      +
      4*/
      +
      5
      +
      6#pragma once
      +
      7
      +
      8#include "mapping.hpp"
      +
      9#include "sal.hpp"
      +
      10#include "sgml_unicode.hpp"
      +
      11#include "string.hpp"
      +
      12#include <assert.h>
      +
      13
      +
      14namespace stdex
      +
      15{
      +
      17 template <class T>
      +
      18 inline const wchar_t* sgml2uni(_In_reads_or_z_(count) const T* entity, _In_ size_t count)
      +
      19 {
      +
      20 assert(entity && count);
      +
      21 assert(count < 2 || entity[0] != '#'); // No numeric entities
      +
      22
      +
      23 for (size_t i = 0, j = _countof(sgml_unicode); i < j; ) {
      +
      24 size_t m = (i + j) / 2;
      +
      25 if (sgml_unicode[m].sgml[0] < entity[0])
      +
      26 i = m + 1;
      +
      27 else if (sgml_unicode[m].sgml[0] > entity[0])
      +
      28 j = m;
      +
      29 else {
      +
      30 auto r = strncmp<char, T>(sgml_unicode[m].sgml + 1, _countof(sgml_unicode[0].sgml) - 1, entity + 1, count - 1);
      +
      31 if (r < 0)
      +
      32 i = m + 1;
      +
      33 else if (r > 0)
      +
      34 j = m;
      +
      35 else {
      +
      36 for (; i < m && strncmp<char, T>(sgml_unicode[m - 1].sgml, _countof(sgml_unicode[0].sgml), entity, count) == 0; m--);
      +
      37 return sgml_unicode[m].unicode;
      +
      38 }
      +
      39 }
      +
      40 }
      +
      41 return nullptr;
      +
      42 }
      +
      43
      +
      44 template <class T>
      +
      45 inline const T* sgmlend(
      +
      46 _In_reads_or_z_(count) const T* str,
      +
      47 _In_ size_t count)
      +
      48 {
      +
      49 assert(str || !count);
      +
      50 for (size_t i = 0; i < count; i++) {
      +
      51 if (str[i] == ';')
      +
      52 return str + i;
      +
      53 if (!str[i] || str[i] == '&' || isspace(str[i]))
      +
      54 break;
      +
      55 }
      +
      56 return nullptr;
      +
      57 }
      +
      59
      +
      60 constexpr int sgml_full = 0x80000000;
      +
      61 constexpr int sgml_quot = 0x00000001;
      +
      62 constexpr int sgml_apos = 0x00000002;
      +
      63 constexpr int sgml_quot_apos = sgml_quot | sgml_apos;
      +
      64 constexpr int sgml_amp = 0x00000004;
      +
      65 constexpr int sgml_lt_gt = 0x00000008;
      +
      66 constexpr int sgml_bsol = 0x00000010;
      +
      67 constexpr int sgml_dollar = 0x00000020;
      +
      68 constexpr int sgml_percnt = 0x00000040;
      +
      69 constexpr int sgml_commat = 0x00000080;
      +
      70 constexpr int sgml_num = 0x00000100;
      +
      71 constexpr int sgml_lpar_rpar = 0x00000200;
      +
      72 constexpr int sgml_lcub_rcub = 0x00000400;
      +
      73 constexpr int sgml_lsqb_rsqb = 0x00000800;
      +
      74 constexpr int sgml_sgml = sgml_amp | sgml_lt_gt;
      +
      75 constexpr int sgml_ml_attrib = sgml_amp | sgml_quot_apos;
      +
      76 constexpr int sgml_c = sgml_amp | sgml_bsol | sgml_quot_apos;
      +
      77 // constexpr int sgml_ajt_lemma = sgml_amp | sgml_quot | sgml_dollar | sgml_percnt;
      +
      78 // constexpr int sgml_ajt_form = sgml_ajt_lemma;
      +
      79 // constexpr int sgml_kolos = sgml_amp | sgml_quot | sgml_dollar | sgml_percnt | sgml_lt_gt | sgml_bsol/* | sgml_commat | sgml_num*/ | sgml_lpar_rpar | sgml_lcub_rcub | sgml_lsqb_rsqb;
      +
      80
      +
      92 template <class T>
      +
      93 inline std::wstring sgml2str(
      +
      94 _In_reads_or_z_(count_src) const T* src, _In_ size_t count_src,
      +
      95 _In_ int skip = 0,
      +
      96 _In_ const mapping<size_t>& offset = mapping<size_t>(0, 0),
      +
      97 _Inout_opt_ mapping_vector<size_t>* map = nullptr)
      +
      98 {
      +
      99 assert(src || !count_src);
      +
      100
      +
      101 const bool
      +
      102 skip_quot = (skip & sgml_quot) == 0,
      +
      103 skip_apos = (skip & sgml_apos) == 0,
      +
      104 skip_amp = (skip & sgml_amp) == 0,
      +
      105 skip_lt_gt = (skip & sgml_lt_gt) == 0,
      +
      106 skip_bsol = (skip & sgml_bsol) == 0,
      +
      107 skip_dollar = (skip & sgml_dollar) == 0,
      +
      108 skip_percnt = (skip & sgml_percnt) == 0,
      +
      109 skip_commat = (skip & sgml_commat) == 0,
      +
      110 skip_num = (skip & sgml_num) == 0,
      +
      111 skip_lpar_rpar = (skip & sgml_lpar_rpar) == 0,
      +
      112 skip_lcub_rcub = (skip & sgml_lcub_rcub) == 0,
      +
      113 skip_lsqb_rsqb = (skip & sgml_lsqb_rsqb) == 0;
      +
      114
      +
      115 count_src = strnlen(src, count_src);
      +
      116 std::wstring dst;
      +
      117 dst.reserve(count_src);
      +
      118 for (size_t i = 0; i < count_src;) {
      +
      119 if (src[i] == '&') {
      +
      120 auto end = sgmlend(src + i + 1, count_src - i - 1);
      +
      121 if (end) {
      +
      122 const wchar_t* entity_w;
      +
      123 wchar_t chr[3];
      +
      124 size_t n = end - src - i - 1;
      +
      125 if (n >= 2 && src[i + 1] == '#') {
      +
      126 uint32_t unicode;
      +
      127 if (src[i + 2] == 'x' || src[i + 2] == 'X')
      +
      128 unicode = strtou32(src + i + 3, n - 2, nullptr, 16);
      +
      129 else
      +
      130 unicode = strtou32(src + i + 2, n - 1, nullptr, 10);
      +
      131#ifdef _WIN32
      +
      132 if (unicode < 0x10000) {
      +
      133 chr[0] = (wchar_t)unicode;
      +
      134 chr[1] = 0;
      +
      135 } else {
      +
      136 ucs4_to_surrogate_pair(chr, unicode);
      +
      137 chr[2] = 0;
      +
      138 }
      +
      139#else
      +
      140 chr[0] = (wchar_t)unicode;
      +
      141 chr[1] = 0;
      +
      142#endif
      +
      143 entity_w = chr;
      +
      144 }
      +
      145 else
      +
      146 entity_w = sgml2uni(src + i + 1, n);
      +
      147
      +
      148 if (entity_w &&
      +
      149 (skip_quot || (entity_w[0] != L'"')) &&
      +
      150 (skip_apos || (entity_w[0] != L'\'')) &&
      +
      151 (skip_amp || (entity_w[0] != L'&')) &&
      +
      152 (skip_lt_gt || (entity_w[0] != L'<' && entity_w[0] != L'>')) &&
      +
      153 (skip_bsol || (entity_w[0] != L'\\')) &&
      +
      154 (skip_dollar || (entity_w[0] != L'$')) &&
      +
      155 (skip_percnt || (entity_w[0] != L'%')) &&
      +
      156 (skip_commat || (entity_w[0] != L'@')) &&
      +
      157 (skip_num || (entity_w[0] != L'#')) &&
      +
      158 (skip_lpar_rpar || (entity_w[0] != L'(' && entity_w[0] != L')')) &&
      +
      159 (skip_lcub_rcub || (entity_w[0] != L'{' && entity_w[0] != L'}')) &&
      +
      160 (skip_lsqb_rsqb || (entity_w[0] != L'[' && entity_w[0] != L']')))
      +
      161 {
      +
      162 if (map) map->push_back(mapping<size_t>(offset.from + i, offset.to + dst.size()));
      +
      163 dst.append(entity_w);
      +
      164 i = end - src + 1;
      +
      165 if (map) map->push_back(mapping<size_t>(offset.from + i, offset.to + dst.size()));
      +
      166 continue;
      +
      167 }
      +
      168 }
      +
      169 }
      +
      170 dst.append(1, src[i++]);
      +
      171 }
      +
      172 return dst;
      +
      173 }
      +
      174
      +
      176 inline const char* chr2sgml(_In_reads_or_z_(count) const wchar_t* entity, _In_ size_t count)
      +
      177 {
      +
      178 assert(entity && count);
      +
      179
      +
      180 const wchar_t e2 = entity[0];
      +
      181 for (size_t i = 0, j = _countof(unicode_sgml); i < j; ) {
      +
      182 size_t m = (i + j) / 2;
      +
      183 wchar_t e1 = sgml_unicode[unicode_sgml[m]].unicode[0];
      +
      184 if (e1 < e2)
      +
      185 i = m + 1;
      +
      186 else if (e1 > e2)
      +
      187 j = m;
      +
      188 else {
      +
      189 auto r = strncmp(sgml_unicode[unicode_sgml[m]].unicode + 1, _countof(sgml_unicode[0].unicode) - 1, entity + 1, count - 1);
      +
      190 if (r < 0)
      +
      191 i = m + 1;
      +
      192 else if (r > 0)
      +
      193 j = m;
      +
      194 else {
      +
      195 for (; i < m && sgml_unicode[unicode_sgml[m - 1]].unicode[0] == e2 && strncmp(sgml_unicode[unicode_sgml[m - 1]].unicode + 1, _countof(sgml_unicode[0].unicode) - 1, entity + 1, count - 1) == 0; m--);
      +
      196 return sgml_unicode[unicode_sgml[m]].sgml;
      +
      197 }
      +
      198 }
      +
      199 }
      +
      200 return nullptr;
      +
      201 }
      +
      203
      +
      213 inline std::string str2sgml(
      +
      214 _In_reads_or_z_(count_src) const wchar_t* src,
      +
      215 _In_ size_t count_src,
      +
      216 _In_ size_t what = 0)
      +
      217 {
      +
      218 assert(src || !count_src);
      +
      219
      +
      220 const bool
      +
      221 do_ascii = (what & sgml_full) == 0,
      +
      222 do_quot = (what & sgml_quot) == 0,
      +
      223 do_apos = (what & sgml_apos) == 0,
      +
      224 do_lt_gt = (what & sgml_lt_gt) == 0,
      +
      225 do_bsol = (what & sgml_bsol) == 0,
      +
      226 do_dollar = (what & sgml_dollar) == 0,
      +
      227 do_percnt = (what & sgml_percnt) == 0,
      +
      228 do_commat = (what & sgml_commat) == 0,
      +
      229 do_num = (what & sgml_num) == 0,
      +
      230 do_lpar_rpar = (what & sgml_lpar_rpar) == 0,
      +
      231 do_lcub_rcub = (what & sgml_lcub_rcub) == 0,
      +
      232 do_lsqb_rsqb = (what & sgml_lsqb_rsqb) == 0;
      +
      233
      +
      234 count_src = wcsnlen(src, count_src);
      +
      235 std::string dst;
      +
      236 dst.reserve(count_src);
      +
      237 for (size_t i = 0; i < count_src;) {
      +
      238 size_t n = glyphlen(src + i, count_src - i);
      +
      239 if (n == 1 &&
      +
      240 do_ascii && (unsigned int)src[i] < 128 &&
      +
      241 src[i] != L'&' &&
      +
      242 (do_quot || (src[i] != L'"')) &&
      +
      243 (do_apos || (src[i] != L'\'')) &&
      +
      244 (do_lt_gt || (src[i] != L'<' && src[i] != L'>')) &&
      +
      245 (do_bsol || (src[i] != L'\\')) &&
      +
      246 (do_dollar || (src[i] != L'$')) &&
      +
      247 (do_percnt || (src[i] != L'%')) &&
      +
      248 (do_commat || (src[i] != L'@')) &&
      +
      249 (do_num || (src[i] != L'#')) &&
      +
      250 (do_lpar_rpar || (src[i] != L'(' && src[i] != L')')) &&
      +
      251 (do_lcub_rcub || (src[i] != L'{' && src[i] != L'}')) &&
      +
      252 (do_lsqb_rsqb || (src[i] != L'[' && src[i] != L']')))
      +
      253 {
      +
      254 // 7-bit ASCII and no desire to encode it as an SGML entity.
      +
      255 dst.append(1, (char)src[i++]);
      +
      256 }
      +
      257 else {
      +
      258 const char* entity = chr2sgml(src + i, n);
      +
      259 if (entity) {
      +
      260 dst.append(1, '&');
      +
      261 dst.append(entity);
      +
      262 dst.append(1, ';');
      +
      263 i += n;
      +
      264 }
      +
      265 else if (n == 1) {
      +
      266 // Trivial character (1 code unit, 1 glyph), no entity available.
      +
      267 if ((unsigned int)src[i] < 128)
      +
      268 dst.append(1, (char)src[i++]);
      +
      269 else {
      +
      270 char tmp[3 + 8 + 1 + 1];
      +
      271 snprintf(tmp, _countof(tmp), "&#x%x;", src[i++]);
      +
      272 dst.append(tmp);
      +
      273 }
      +
      274 }
      +
      275 else {
      +
      276 // Non-trivial character. Decompose.
      +
      277 const size_t end = i + n;
      +
      278 while (i < end) {
      +
      279 if ((entity = chr2sgml(src + i, 1)) != nullptr) {
      +
      280 dst.append(1, '&');
      +
      281 dst.append(entity);
      +
      282 dst.append(1, ';');
      +
      283 i++;
      +
      284 }
      +
      285 else if ((unsigned int)src[i] < 128)
      +
      286 dst.append(1, (char)src[i++]);
      +
      287 else {
      +
      288 uint32_t unicode;
      +
      289#ifdef _WIN32
      +
      290 if (i + 1 < end && is_surrogate_pair(src + i)) {
      +
      291 unicode = surrogate_pair_to_ucs4(src + i);
      +
      292 i += 2;
      +
      293 } else
      +
      294#endif
      +
      295 {
      +
      296 unicode = src[i++];
      +
      297 }
      +
      298 char tmp[3 + 8 + 1 + 1];
      +
      299 snprintf(tmp, _countof(tmp), "&#x%x;", unicode);
      +
      300 dst.append(tmp);
      +
      301 }
      +
      302 }
      +
      303 }
      +
      304 }
      +
      305 }
      +
      306 return dst;
      +
      307 }
      +
      308}
      +
      + + + + diff --git a/sgml__unicode_8hpp_source.html b/sgml__unicode_8hpp_source.html new file mode 100644 index 000000000..f326f02ac --- /dev/null +++ b/sgml__unicode_8hpp_source.html @@ -0,0 +1,3176 @@ + + + + + + + +stdex: include/stdex/sgml_unicode.hpp Source File + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      sgml_unicode.hpp
      +
      +
      +
      1/*
      +
      2 SPDX-License-Identifier: MIT
      +
      3 Copyright © 2023 Amebis
      +
      4*/
      +
      5
      +
      6#pragma once
      +
      7
      +
      8namespace stdex
      +
      9{
      +
      11 struct sgml_unicode_pair {
      +
      12 char sgml[12];
      +
      13 wchar_t unicode[3];
      +
      14 };
      +
      15
      +
      16 static const sgml_unicode_pair sgml_unicode[] = {
      +
      17 { "AElig", L"\u00c6" },
      +
      18 { "Aacgr", L"\u0386" },
      +
      19 { "Aacute", L"\u00c1" },
      +
      20 { "Aacute", L"\u0041\u0301" },
      +
      21 { "Abreve", L"\u0102" },
      +
      22 { "Abreve", L"\u0041\u0306" },
      +
      23 { "Abring", L"\u0041\u032f" },
      +
      24 { "Acaron", L"\u0041\u030c" },
      +
      25 { "Acirc", L"\u00c2" },
      +
      26 { "Acirc", L"\u0041\u0302" },
      +
      27 { "Acy", L"\u0410" },
      +
      28 { "Adot", L"\u0041\u0307" },
      +
      29 { "Agr", L"\u0391" },
      +
      30 { "Agrave", L"\u00c0" },
      +
      31 { "Agrave", L"\u0041\u0300" },
      +
      32 { "Alpha", L"\u0391" },
      +
      33 { "Amacr", L"\u0100" },
      +
      34 { "Amacr", L"\u0041\u0304" },
      +
      35 { "Aogon", L"\u0104" },
      +
      36 { "Aring", L"\u00c5" },
      +
      37 { "Atilde", L"\u00c3" },
      +
      38 { "Atilde", L"\u0041\u0303" },
      +
      39 { "Auml", L"\u00c4" },
      +
      40 { "Auml", L"\u0041\u0308" },
      +
      41 { "Bacute", L"\u0042\u0301" },
      +
      42 { "Barwed", L"\u2306" },
      +
      43 { "Bbreve", L"\u0042\u0306" },
      +
      44 { "Bbring", L"\u0042\u032f" },
      +
      45 { "Bcaron", L"\u0042\u030c" },
      +
      46 { "Bcirc", L"\u0042\u0302" },
      +
      47 { "Bcy", L"\u0411" },
      +
      48 { "Bdot", L"\u0042\u0307" },
      +
      49 { "Beta", L"\u0392" },
      +
      50 { "Bgr", L"\u0392" },
      +
      51 { "Bgrave", L"\u0042\u0300" },
      +
      52 { "Bmacr", L"\u0042\u0304" },
      +
      53 { "Btilde", L"\u0042\u0303" },
      +
      54 { "Buml", L"\u0042\u0308" },
      +
      55 { "CHcy", L"\u0427" },
      +
      56 { "Cacute", L"\u0106" },
      +
      57 { "Cacute", L"\u0043\u0301" },
      +
      58 { "Cap", L"\u22d2" },
      +
      59 { "Cbreve", L"\u0043\u0306" },
      +
      60 { "Cbring", L"\u0043\u032f" },
      +
      61 { "Ccaron", L"\u010c" },
      +
      62 { "Ccaron", L"\u0043\u030c" },
      +
      63 { "Ccedil", L"\u00c7" },
      +
      64 { "Ccirc", L"\u0108" },
      +
      65 { "Ccirc", L"\u0043\u0302" },
      +
      66 { "Cdot", L"\u010a" },
      +
      67 { "Cdot", L"\u0043\u0307" },
      +
      68 { "Cgrave", L"\u0043\u0300" },
      +
      69 { "Chi", L"\u03a7" },
      +
      70 { "Cmacr", L"\u0043\u0304" },
      +
      71 { "Ctilde", L"\u0043\u0303" },
      +
      72 { "Cuml", L"\u0043\u0308" },
      +
      73 { "Cup", L"\u22d3" },
      +
      74 { "DJcy", L"\u0402" },
      +
      75 { "DScy", L"\u0405" },
      +
      76 { "DZcy", L"\u040f" },
      +
      77 { "Dacute", L"\u0044\u0301" },
      +
      78 { "Dagger", L"\u2021" },
      +
      79 { "Dbreve", L"\u0044\u0306" },
      +
      80 { "Dbring", L"\u0044\u032f" },
      +
      81 { "Dcaron", L"\u010e" },
      +
      82 { "Dcaron", L"\u0044\u030c" },
      +
      83 { "Dcirc", L"\u0044\u0302" },
      +
      84 { "Dcy", L"\u0414" },
      +
      85 { "Ddot", L"\u0044\u0307" },
      +
      86 { "Delta", L"\u0394" },
      +
      87 { "Dgr", L"\u0394" },
      +
      88 { "Dgrave", L"\u0044\u0300" },
      +
      89 { "Dmacr", L"\u0044\u0304" },
      +
      90 { "Dot", L"\u00a8" },
      +
      91 { "DotDot", L"\u20dc" },
      +
      92 { "Dstrok", L"\u0110" },
      +
      93 { "Dtilde", L"\u0044\u0303" },
      +
      94 { "Duml", L"\u0044\u0308" },
      +
      95 { "EEacgr", L"\u0389" },
      +
      96 { "EEgr", L"\u0397" },
      +
      97 { "ENG", L"\u014a" },
      +
      98 { "ETH", L"\u00d0" },
      +
      99 { "Eacgr", L"\u0388" },
      +
      100 { "Eacute", L"\u00c9" },
      +
      101 { "Eacute", L"\u0045\u0301" },
      +
      102 { "Ebreve", L"\u0045\u0306" },
      +
      103 { "Ebring", L"\u0045\u032f" },
      +
      104 { "Ecaron", L"\u011a" },
      +
      105 { "Ecaron", L"\u0045\u030c" },
      +
      106 { "Ecirc", L"\u00ca" },
      +
      107 { "Ecirc", L"\u0045\u0302" },
      +
      108 { "Ecy", L"\u042d" },
      +
      109 { "Edot", L"\u0116" },
      +
      110 { "Edot", L"\u0045\u0307" },
      +
      111 { "Edotb", L"\u1eb8" },
      +
      112 { "Egr", L"\u0395" },
      +
      113 { "Egrave", L"\u00c8" },
      +
      114 { "Egrave", L"\u0045\u0300" },
      +
      115 { "Emacr", L"\u0112" },
      +
      116 { "Emacr", L"\u0045\u0304" },
      +
      117 { "Eogon", L"\u0118" },
      +
      118 { "Epsilon", L"\u0395" },
      +
      119 { "Eta", L"\u0397" },
      +
      120 { "Etilde", L"\u0045\u0303" },
      +
      121 { "Euml", L"\u00cb" },
      +
      122 { "Euml", L"\u0045\u0308" },
      +
      123 { "Facute", L"\u0046\u0301" },
      +
      124 { "Fbreve", L"\u0046\u0306" },
      +
      125 { "Fbring", L"\u0046\u032f" },
      +
      126 { "Fcaron", L"\u0046\u030c" },
      +
      127 { "Fcirc", L"\u0046\u0302" },
      +
      128 { "Fcy", L"\u0424" },
      +
      129 { "Fdot", L"\u0046\u0307" },
      +
      130 { "Fgrave", L"\u0046\u0300" },
      +
      131 { "Fmacr", L"\u0046\u0304" },
      +
      132 { "Ftilde", L"\u0046\u0303" },
      +
      133 { "Fuml", L"\u0046\u0308" },
      +
      134 { "GJcy", L"\u0403" },
      +
      135 { "Gacute", L"\u0047\u0301" },
      +
      136 { "Gamma", L"\u0393" },
      +
      137 { "Gbreve", L"\u011e" },
      +
      138 { "Gbreve", L"\u0047\u0306" },
      +
      139 { "Gbring", L"\u0047\u032f" },
      +
      140 { "Gcaron", L"\u0047\u030c" },
      +
      141 { "Gcedil", L"\u0122" },
      +
      142 { "Gcirc", L"\u011c" },
      +
      143 { "Gcirc", L"\u0047\u0302" },
      +
      144 { "Gcy", L"\u0413" },
      +
      145 { "Gdot", L"\u0120" },
      +
      146 { "Gdot", L"\u0047\u0307" },
      +
      147 { "Gg", L"\u22d9" },
      +
      148 { "Ggr", L"\u0393" },
      +
      149 { "Ggrave", L"\u0047\u0300" },
      +
      150 { "Gmacr", L"\u0047\u0304" },
      +
      151 { "Gt", L"\u226b" },
      +
      152 { "Gtilde", L"\u0047\u0303" },
      +
      153 { "Guml", L"\u0047\u0308" },
      +
      154 { "HARDcy", L"\u042a" },
      +
      155 { "Hacute", L"\u0048\u0301" },
      +
      156 { "Hbreve", L"\u0048\u0306" },
      +
      157 { "Hbring", L"\u0048\u032f" },
      +
      158 { "Hcaron", L"\u0048\u030c" },
      +
      159 { "Hcirc", L"\u0124" },
      +
      160 { "Hcirc", L"\u0048\u0302" },
      +
      161 { "Hdot", L"\u0048\u0307" },
      +
      162 { "Hgrave", L"\u0048\u0300" },
      +
      163 { "Hmacr", L"\u0048\u0304" },
      +
      164 { "Hstrok", L"\u0126" },
      +
      165 { "Htilde", L"\u0048\u0303" },
      +
      166 { "Huml", L"\u0048\u0308" },
      +
      167 { "IEcy", L"\u0415" },
      +
      168 { "IJlig", L"\u0132" },
      +
      169 { "IOcy", L"\u0401" },
      +
      170 { "Iacgr", L"\u038a" },
      +
      171 { "Iacute", L"\u00cd" },
      +
      172 { "Iacute", L"\u0049\u0301" },
      +
      173 { "Ibreve", L"\u0049\u0306" },
      +
      174 { "Ibring", L"\u0049\u032f" },
      +
      175 { "Icaron", L"\u0049\u030c" },
      +
      176 { "Icirc", L"\u00ce" },
      +
      177 { "Icirc", L"\u0049\u0302" },
      +
      178 { "Icy", L"\u0418" },
      +
      179 { "Idigr", L"\u03aa" },
      +
      180 { "Idot", L"\u0130" },
      +
      181 { "Idot", L"\u0049\u0307" },
      +
      182 { "Igr", L"\u0399" },
      +
      183 { "Igrave", L"\u00cc" },
      +
      184 { "Igrave", L"\u0049\u0300" },
      +
      185 { "Imacr", L"\u012a" },
      +
      186 { "Imacr", L"\u0049\u0304" },
      +
      187 { "Iogon", L"\u012e" },
      +
      188 { "Iota", L"\u0399" },
      +
      189 { "Itilde", L"\u0128" },
      +
      190 { "Itilde", L"\u0049\u0303" },
      +
      191 { "Iukcy", L"\u0406" },
      +
      192 { "Iuml", L"\u00cf" },
      +
      193 { "Iuml", L"\u0049\u0308" },
      +
      194 { "Jacute", L"\u004a\u0301" },
      +
      195 { "Jbreve", L"\u004a\u0306" },
      +
      196 { "Jbring", L"\u004a\u032f" },
      +
      197 { "Jcaron", L"\u004a\u030c" },
      +
      198 { "Jcirc", L"\u0134" },
      +
      199 { "Jcirc", L"\u004a\u0302" },
      +
      200 { "Jcy", L"\u0419" },
      +
      201 { "Jdot", L"\u004a\u0307" },
      +
      202 { "Jgrave", L"\u004a\u0300" },
      +
      203 { "Jmacr", L"\u004a\u0304" },
      +
      204 { "Jsercy", L"\u0408" },
      +
      205 { "Jtilde", L"\u004a\u0303" },
      +
      206 { "Jukcy", L"\u0404" },
      +
      207 { "Juml", L"\u004a\u0308" },
      +
      208 { "KHcy", L"\u0425" },
      +
      209 { "KHgr", L"\u03a7" },
      +
      210 { "KJcy", L"\u040c" },
      +
      211 { "Kacute", L"\u004b\u0301" },
      +
      212 { "Kappa", L"\u039a" },
      +
      213 { "Kbreve", L"\u004b\u0306" },
      +
      214 { "Kbring", L"\u004b\u032f" },
      +
      215 { "Kcaron", L"\u004b\u030c" },
      +
      216 { "Kcedil", L"\u0136" },
      +
      217 { "Kcirc", L"\u004b\u0302" },
      +
      218 { "Kcy", L"\u041a" },
      +
      219 { "Kdot", L"\u004b\u0307" },
      +
      220 { "Kgr", L"\u039a" },
      +
      221 { "Kgrave", L"\u004b\u0300" },
      +
      222 { "Kmacr", L"\u004b\u0304" },
      +
      223 { "Ktilde", L"\u004b\u0303" },
      +
      224 { "Kuml", L"\u004b\u0308" },
      +
      225 { "LJcy", L"\u0409" },
      +
      226 { "Lacute", L"\u0139" },
      +
      227 { "Lacute", L"\u004c\u0301" },
      +
      228 { "Lambda", L"\u039b" },
      +
      229 { "Larr", L"\u219e" },
      +
      230 { "Lbreve", L"\u004c\u0306" },
      +
      231 { "Lbring", L"\u004c\u032f" },
      +
      232 { "Lcaron", L"\u013d" },
      +
      233 { "Lcaron", L"\u004c\u030c" },
      +
      234 { "Lcedil", L"\u013b" },
      +
      235 { "Lcirc", L"\u004c\u0302" },
      +
      236 { "Lcy", L"\u041b" },
      +
      237 { "Ldot", L"\u004c\u0307" },
      +
      238 { "Lgr", L"\u039b" },
      +
      239 { "Lgrave", L"\u004c\u0300" },
      +
      240 { "Ll", L"\u22d8" },
      +
      241 { "Lmacr", L"\u004c\u0304" },
      +
      242 { "Lmidot", L"\u013f" },
      +
      243 { "Lstrok", L"\u0141" },
      +
      244 { "Lt", L"\u226a" },
      +
      245 { "Ltilde", L"\u004c\u0303" },
      +
      246 { "Luml", L"\u004c\u0308" },
      +
      247 { "Macute", L"\u004d\u0301" },
      +
      248 { "Mbreve", L"\u004d\u0306" },
      +
      249 { "Mbring", L"\u004d\u032f" },
      +
      250 { "Mcaron", L"\u004d\u030c" },
      +
      251 { "Mcirc", L"\u004d\u0302" },
      +
      252 { "Mcy", L"\u041c" },
      +
      253 { "Mdot", L"\u004d\u0307" },
      +
      254 { "Mgr", L"\u039c" },
      +
      255 { "Mgrave", L"\u004d\u0300" },
      +
      256 { "Mmacr", L"\u004d\u0304" },
      +
      257 { "Mtilde", L"\u004d\u0303" },
      +
      258 { "Mu", L"\u039c" },
      +
      259 { "Muml", L"\u004d\u0308" },
      +
      260 { "NJcy", L"\u040a" },
      +
      261 { "Nacute", L"\u0143" },
      +
      262 { "Nacute", L"\u004e\u0301" },
      +
      263 { "Nbreve", L"\u004e\u0306" },
      +
      264 { "Nbring", L"\u004e\u032f" },
      +
      265 { "Ncaron", L"\u0147" },
      +
      266 { "Ncaron", L"\u004e\u030c" },
      +
      267 { "Ncedil", L"\u0145" },
      +
      268 { "Ncirc", L"\u004e\u0302" },
      +
      269 { "Ncy", L"\u041d" },
      +
      270 { "Ndot", L"\u004e\u0307" },
      +
      271 { "Ngr", L"\u039d" },
      +
      272 { "Ngrave", L"\u004e\u0300" },
      +
      273 { "Nmacr", L"\u004e\u0304" },
      +
      274 { "Ntilde", L"\u00d1" },
      +
      275 { "Ntilde", L"\u004e\u0303" },
      +
      276 { "Nu", L"\u039d" },
      +
      277 { "Numl", L"\u004e\u0308" },
      +
      278 { "OElig", L"\u0152" },
      +
      279 { "OHacgr", L"\u038f" },
      +
      280 { "OHgr", L"\u03a9" },
      +
      281 { "Oacgr", L"\u038c" },
      +
      282 { "Oacute", L"\u00d3" },
      +
      283 { "Oacute", L"\u004f\u0301" },
      +
      284 { "Obreve", L"\u004f\u0306" },
      +
      285 { "Obring", L"\u004f\u032f" },
      +
      286 { "Ocaron", L"\u01d1" },
      +
      287 { "Ocaron", L"\u004f\u030c" },
      +
      288 { "Ocirc", L"\u00d4" },
      +
      289 { "Ocirc", L"\u004f\u0302" },
      +
      290 { "Ocy", L"\u041e" },
      +
      291 { "Odblac", L"\u0150" },
      +
      292 { "Odot", L"\u004f\u0307" },
      +
      293 { "Odotb", L"\u1ecc" },
      +
      294 { "Ogr", L"\u039f" },
      +
      295 { "Ograve", L"\u00d2" },
      +
      296 { "Ograve", L"\u004f\u0300" },
      +
      297 { "Omacr", L"\u014c" },
      +
      298 { "Omacr", L"\u004f\u0304" },
      +
      299 { "Omega", L"\u03a9" },
      +
      300 { "Omicron", L"\u039f" },
      +
      301 { "Oslash", L"\u00d8" },
      +
      302 { "Otilde", L"\u00d5" },
      +
      303 { "Otilde", L"\u004f\u0303" },
      +
      304 { "Ouml", L"\u00d6" },
      +
      305 { "Ouml", L"\u004f\u0308" },
      +
      306 { "PHgr", L"\u03a6" },
      +
      307 { "PSgr", L"\u03a8" },
      +
      308 { "Pacute", L"\u0050\u0301" },
      +
      309 { "Pbreve", L"\u0050\u0306" },
      +
      310 { "Pbring", L"\u0050\u032f" },
      +
      311 { "Pcaron", L"\u0050\u030c" },
      +
      312 { "Pcirc", L"\u0050\u0302" },
      +
      313 { "Pcy", L"\u041f" },
      +
      314 { "Pdot", L"\u0050\u0307" },
      +
      315 { "Pgr", L"\u03a0" },
      +
      316 { "Pgrave", L"\u0050\u0300" },
      +
      317 { "Phi", L"\u03a6" },
      +
      318 { "Pi", L"\u03a0" },
      +
      319 { "Pmacr", L"\u0050\u0304" },
      +
      320 { "Prime", L"\u2033" },
      +
      321 { "Psi", L"\u03a8" },
      +
      322 { "Ptilde", L"\u0050\u0303" },
      +
      323 { "Puml", L"\u0050\u0308" },
      +
      324 { "Qacute", L"\u0051\u0301" },
      +
      325 { "Qbreve", L"\u0051\u0306" },
      +
      326 { "Qbring", L"\u0051\u032f" },
      +
      327 { "Qcaron", L"\u0051\u030c" },
      +
      328 { "Qcirc", L"\u0051\u0302" },
      +
      329 { "Qdot", L"\u0051\u0307" },
      +
      330 { "Qgrave", L"\u0051\u0300" },
      +
      331 { "Qmacr", L"\u0051\u0304" },
      +
      332 { "Qtilde", L"\u0051\u0303" },
      +
      333 { "Quml", L"\u0051\u0308" },
      +
      334 { "Racute", L"\u0154" },
      +
      335 { "Racute", L"\u0052\u0301" },
      +
      336 { "Rarr", L"\u21a0" },
      +
      337 { "Rbreve", L"\u0052\u0306" },
      +
      338 { "Rbring", L"\u0052\u032f" },
      +
      339 { "Rcaron", L"\u0158" },
      +
      340 { "Rcaron", L"\u0052\u030c" },
      +
      341 { "Rcedil", L"\u0156" },
      +
      342 { "Rcirc", L"\u0052\u0302" },
      +
      343 { "Rcy", L"\u0420" },
      +
      344 { "Rdot", L"\u0052\u0307" },
      +
      345 { "Rgr", L"\u03a1" },
      +
      346 { "Rgrave", L"\u0052\u0300" },
      +
      347 { "Rho", L"\u03a1" },
      +
      348 { "Rmacr", L"\u0052\u0304" },
      +
      349 { "Rtilde", L"\u0052\u0303" },
      +
      350 { "Ruml", L"\u0052\u0308" },
      +
      351 { "SHCHcy", L"\u0429" },
      +
      352 { "SHcy", L"\u0428" },
      +
      353 { "SOFTcy", L"\u042c" },
      +
      354 { "Sacute", L"\u015a" },
      +
      355 { "Sacute", L"\u0053\u0301" },
      +
      356 { "Sbreve", L"\u0053\u0306" },
      +
      357 { "Sbring", L"\u0053\u032f" },
      +
      358 { "Scaron", L"\u0160" },
      +
      359 { "Scaron", L"\u0053\u030c" },
      +
      360 { "Scedil", L"\u015e" },
      +
      361 { "Scirc", L"\u015c" },
      +
      362 { "Scirc", L"\u0053\u0302" },
      +
      363 { "Scy", L"\u0421" },
      +
      364 { "Sdot", L"\u0053\u0307" },
      +
      365 { "Sgr", L"\u03a3" },
      +
      366 { "Sgrave", L"\u0053\u0300" },
      +
      367 { "Sigma", L"\u03a3" },
      +
      368 { "Smacr", L"\u0053\u0304" },
      +
      369 { "Stilde", L"\u0053\u0303" },
      +
      370 { "Sub", L"\u22d0" },
      +
      371 { "Suml", L"\u0053\u0308" },
      +
      372 { "Sup", L"\u22d1" },
      +
      373 { "THORN", L"\u00de" },
      +
      374 { "THgr", L"\u0398" },
      +
      375 { "TSHcy", L"\u040b" },
      +
      376 { "TScy", L"\u0426" },
      +
      377 { "Tacute", L"\u0054\u0301" },
      +
      378 { "Tau", L"\u03a4" },
      +
      379 { "Tbreve", L"\u0054\u0306" },
      +
      380 { "Tbring", L"\u0054\u032f" },
      +
      381 { "Tcaron", L"\u0164" },
      +
      382 { "Tcaron", L"\u0054\u030c" },
      +
      383 { "Tcedil", L"\u0162" },
      +
      384 { "Tcirc", L"\u0054\u0302" },
      +
      385 { "Tcy", L"\u0422" },
      +
      386 { "Tdot", L"\u0054\u0307" },
      +
      387 { "Tgr", L"\u03a4" },
      +
      388 { "Tgrave", L"\u0054\u0300" },
      +
      389 { "Theta", L"\u0398" },
      +
      390 { "Tmacr", L"\u0054\u0304" },
      +
      391 { "Tstrok", L"\u0166" },
      +
      392 { "Ttilde", L"\u0054\u0303" },
      +
      393 { "Tuml", L"\u0054\u0308" },
      +
      394 { "Uacgr", L"\u038e" },
      +
      395 { "Uacute", L"\u00da" },
      +
      396 { "Uacute", L"\u0055\u0301" },
      +
      397 { "Ubrcy", L"\u040e" },
      +
      398 { "Ubreve", L"\u016c" },
      +
      399 { "Ubreve", L"\u0055\u0306" },
      +
      400 { "Ubring", L"\u0055\u032f" },
      +
      401 { "Ucaron", L"\u0055\u030c" },
      +
      402 { "Ucirc", L"\u00db" },
      +
      403 { "Ucirc", L"\u0055\u0302" },
      +
      404 { "Ucy", L"\u0423" },
      +
      405 { "Udblac", L"\u0170" },
      +
      406 { "Udigr", L"\u03ab" },
      +
      407 { "Udot", L"\u0055\u0307" },
      +
      408 { "Ugr", L"\u03a5" },
      +
      409 { "Ugrave", L"\u00d9" },
      +
      410 { "Ugrave", L"\u0055\u0300" },
      +
      411 { "Umacr", L"\u016a" },
      +
      412 { "Umacr", L"\u0055\u0304" },
      +
      413 { "Uogon", L"\u0172" },
      +
      414 { "Upsi", L"\u03a5" },
      +
      415 { "Upsilon", L"\u03a5" },
      +
      416 { "Uring", L"\u016e" },
      +
      417 { "Utilde", L"\u0168" },
      +
      418 { "Utilde", L"\u0055\u0303" },
      +
      419 { "Uuml", L"\u00dc" },
      +
      420 { "Uuml", L"\u0055\u0308" },
      +
      421 { "Vacute", L"\u0056\u0301" },
      +
      422 { "Vbreve", L"\u0056\u0306" },
      +
      423 { "Vbring", L"\u0056\u032f" },
      +
      424 { "Vcaron", L"\u0056\u030c" },
      +
      425 { "Vcirc", L"\u0056\u0302" },
      +
      426 { "Vcy", L"\u0412" },
      +
      427 { "Vdash", L"\u22a9" },
      +
      428 { "Vdot", L"\u0056\u0307" },
      +
      429 { "Verbar", L"\u2016" },
      +
      430 { "Vgrave", L"\u0056\u0300" },
      +
      431 { "Vmacr", L"\u0056\u0304" },
      +
      432 { "Vtilde", L"\u0056\u0303" },
      +
      433 { "Vuml", L"\u0056\u0308" },
      +
      434 { "Vvdash", L"\u22aa" },
      +
      435 { "Wacute", L"\u0057\u0301" },
      +
      436 { "Wbreve", L"\u0057\u0306" },
      +
      437 { "Wbring", L"\u0057\u032f" },
      +
      438 { "Wcaron", L"\u0057\u030c" },
      +
      439 { "Wcirc", L"\u0174" },
      +
      440 { "Wcirc", L"\u0057\u0302" },
      +
      441 { "Wdot", L"\u0057\u0307" },
      +
      442 { "Wgrave", L"\u0057\u0300" },
      +
      443 { "Wmacr", L"\u0057\u0304" },
      +
      444 { "Wtilde", L"\u0057\u0303" },
      +
      445 { "Wuml", L"\u0057\u0308" },
      +
      446 { "Xacute", L"\u0058\u0301" },
      +
      447 { "Xbreve", L"\u0058\u0306" },
      +
      448 { "Xbring", L"\u0058\u032f" },
      +
      449 { "Xcaron", L"\u0058\u030c" },
      +
      450 { "Xcirc", L"\u0058\u0302" },
      +
      451 { "Xdot", L"\u0058\u0307" },
      +
      452 { "Xgr", L"\u039e" },
      +
      453 { "Xgrave", L"\u0058\u0300" },
      +
      454 { "Xi", L"\u039e" },
      +
      455 { "Xmacr", L"\u0058\u0304" },
      +
      456 { "Xtilde", L"\u0058\u0303" },
      +
      457 { "Xuml", L"\u0058\u0308" },
      +
      458 { "YAcy", L"\u042f" },
      +
      459 { "YIcy", L"\u0407" },
      +
      460 { "YUcy", L"\u042e" },
      +
      461 { "Yacute", L"\u00dd" },
      +
      462 { "Yacute", L"\u0059\u0301" },
      +
      463 { "Ybreve", L"\u0059\u0306" },
      +
      464 { "Ybring", L"\u0059\u032f" },
      +
      465 { "Ycaron", L"\u0059\u030c" },
      +
      466 { "Ycirc", L"\u0176" },
      +
      467 { "Ycirc", L"\u0059\u0302" },
      +
      468 { "Ycy", L"\u042b" },
      +
      469 { "Ydot", L"\u0059\u0307" },
      +
      470 { "Ygrave", L"\u0059\u0300" },
      +
      471 { "Ymacr", L"\u0059\u0304" },
      +
      472 { "Ytilde", L"\u0059\u0303" },
      +
      473 { "Yuml", L"\u0178" },
      +
      474 { "Yuml", L"\u0059\u0308" },
      +
      475 { "ZHcy", L"\u0416" },
      +
      476 { "Zacute", L"\u0179" },
      +
      477 { "Zacute", L"\u005a\u0301" },
      +
      478 { "Zbreve", L"\u005a\u0306" },
      +
      479 { "Zbring", L"\u005a\u032f" },
      +
      480 { "Zcaron", L"\u017d" },
      +
      481 { "Zcaron", L"\u005a\u030c" },
      +
      482 { "Zcirc", L"\u005a\u0302" },
      +
      483 { "Zcy", L"\u0417" },
      +
      484 { "Zdot", L"\u017b" },
      +
      485 { "Zdot", L"\u005a\u0307" },
      +
      486 { "Zeta", L"\u0396" },
      +
      487 { "Zgr", L"\u0396" },
      +
      488 { "Zgrave", L"\u005a\u0300" },
      +
      489 { "Zmacr", L"\u005a\u0304" },
      +
      490 { "Ztilde", L"\u005a\u0303" },
      +
      491 { "Zuml", L"\u005a\u0308" },
      +
      492 { "aacgr", L"\u03ac" },
      +
      493 { "aacute", L"\u00e1" },
      +
      494 { "aacute", L"\u0061\u0301" },
      +
      495 { "abreve", L"\u0103" },
      +
      496 { "abreve", L"\u0061\u0306" },
      +
      497 { "abring", L"\u0061\u032f" },
      +
      498 { "acaron", L"\u0061\u030c" },
      +
      499 { "acirc", L"\u00e2" },
      +
      500 { "acirc", L"\u0061\u0302" },
      +
      501 { "acute", L"\u00b4" },
      +
      502 { "acy", L"\u0430" },
      +
      503 { "adot", L"\u0061\u0307" },
      +
      504 { "aelig", L"\u00e6" },
      +
      505 { "agr", L"\u03b1" },
      +
      506 { "agrave", L"\u00e0" },
      +
      507 { "agrave", L"\u0061\u0300" },
      +
      508 { "alefsym", L"\u2135" },
      +
      509 { "aleph", L"\u2135" },
      +
      510 { "alpha", L"\u03b1" },
      +
      511 { "amacr", L"\u0101" },
      +
      512 { "amacr", L"\u0061\u0304" },
      +
      513 { "amalg", L"\u2210" },
      +
      514 { "amp", L"\u0026" },
      +
      515 { "and", L"\u2227" },
      +
      516 { "ang", L"\u2220" },
      +
      517 { "ang90", L"\u221f" },
      +
      518 { "angmsd", L"\u2221" },
      +
      519 { "angsph", L"\u2222" },
      +
      520 { "angst", L"\u212b" },
      +
      521 { "aogon", L"\u0105" },
      +
      522 { "ap", L"\u2248" },
      +
      523 { "ape", L"\u224a" },
      +
      524 { "apos", L"\u0027" },
      +
      525 { "apos", L"\u02bc" },
      +
      526 { "aring", L"\u00e5" },
      +
      527 { "ast", L"\u002a" },
      +
      528 { "asymp", L"\u2248" },
      +
      529 { "atilde", L"\u00e3" },
      +
      530 { "atilde", L"\u0061\u0303" },
      +
      531 { "auml", L"\u00e4" },
      +
      532 { "auml", L"\u0061\u0308" },
      +
      533 { "b.Delta", L"\u0394" },
      +
      534 { "b.Gamma", L"\u0393" },
      +
      535 { "b.Lambda", L"\u039b" },
      +
      536 { "b.Omega", L"\u03a9" },
      +
      537 { "b.Phi", L"\u03a6" },
      +
      538 { "b.Pi", L"\u03a0" },
      +
      539 { "b.Psi", L"\u03a8" },
      +
      540 { "b.Sigma", L"\u03a3" },
      +
      541 { "b.Theta", L"\u0398" },
      +
      542 { "b.Upsi", L"\u03a5" },
      +
      543 { "b.Xi", L"\u039e" },
      +
      544 { "b.alpha", L"\u03b1" },
      +
      545 { "b.beta", L"\u03b2" },
      +
      546 { "b.chi", L"\u03c7" },
      +
      547 { "b.delta", L"\u03b4" },
      +
      548 { "b.epsi", L"\u03b5" },
      +
      549 { "b.epsis", L"\u03b5" },
      +
      550 { "b.epsiv", L"\u03b5" },
      +
      551 { "b.eta", L"\u03b7" },
      +
      552 { "b.gamma", L"\u03b3" },
      +
      553 { "b.gammad", L"\u03dc" },
      +
      554 { "b.iota", L"\u03b9" },
      +
      555 { "b.kappa", L"\u03ba" },
      +
      556 { "b.kappav", L"\u03f0" },
      +
      557 { "b.lambda", L"\u03bb" },
      +
      558 { "b.mu", L"\u03bc" },
      +
      559 { "b.nu", L"\u03bd" },
      +
      560 { "b.omega", L"\u03ce" },
      +
      561 { "b.phis", L"\u03c6" },
      +
      562 { "b.phiv", L"\u03d5" },
      +
      563 { "b.pi", L"\u03c0" },
      +
      564 { "b.piv", L"\u03d6" },
      +
      565 { "b.psi", L"\u03c8" },
      +
      566 { "b.rho", L"\u03c1" },
      +
      567 { "b.rhov", L"\u03f1" },
      +
      568 { "b.sigma", L"\u03c3" },
      +
      569 { "b.sigmav", L"\u03c2" },
      +
      570 { "b.tau", L"\u03c4" },
      +
      571 { "b.thetas", L"\u03b8" },
      +
      572 { "b.thetav", L"\u03d1" },
      +
      573 { "b.upsi", L"\u03c5" },
      +
      574 { "b.xi", L"\u03be" },
      +
      575 { "b.zeta", L"\u03b6" },
      +
      576 { "bacute", L"\u0062\u0301" },
      +
      577 { "barwed", L"\u22bc" },
      +
      578 { "bbreve", L"\u0062\u0306" },
      +
      579 { "bbring", L"\u0062\u032f" },
      +
      580 { "bcaron", L"\u0062\u030c" },
      +
      581 { "bcirc", L"\u0062\u0302" },
      +
      582 { "bcong", L"\u224c" },
      +
      583 { "bcy", L"\u0431" },
      +
      584 { "bdot", L"\u0062\u0307" },
      +
      585 { "bdquo", L"\u201e" },
      +
      586 { "becaus", L"\u2235" },
      +
      587 { "bepsi", L"\u220d" },
      +
      588 { "bernou", L"\u212c" },
      +
      589 { "beta", L"\u03b2" },
      +
      590 { "beth", L"\u2136" },
      +
      591 { "bgr", L"\u03b2" },
      +
      592 { "bgrave", L"\u0062\u0300" },
      +
      593 { "blank", L"\u2423" },
      +
      594 { "blk12", L"\u2592" },
      +
      595 { "blk14", L"\u2591" },
      +
      596 { "blk34", L"\u2593" },
      +
      597 { "block", L"\u2588" },
      +
      598 { "bmacr", L"\u0062\u0304" },
      +
      599 { "bottom", L"\u22a5" },
      +
      600 { "bowtie", L"\u22c8" },
      +
      601 { "boxDL", L"\u2557" },
      +
      602 { "boxDR", L"\u2554" },
      +
      603 { "boxDl", L"\u2556" },
      +
      604 { "boxDr", L"\u2553" },
      +
      605 { "boxH", L"\u2550" },
      +
      606 { "boxHD", L"\u2566" },
      +
      607 { "boxHU", L"\u2569" },
      +
      608 { "boxHd", L"\u2564" },
      +
      609 { "boxHu", L"\u2567" },
      +
      610 { "boxUL", L"\u255d" },
      +
      611 { "boxUR", L"\u255a" },
      +
      612 { "boxUl", L"\u255c" },
      +
      613 { "boxUr", L"\u2559" },
      +
      614 { "boxV", L"\u2551" },
      +
      615 { "boxVH", L"\u256c" },
      +
      616 { "boxVL", L"\u2563" },
      +
      617 { "boxVR", L"\u2560" },
      +
      618 { "boxVh", L"\u256b" },
      +
      619 { "boxVl", L"\u2562" },
      +
      620 { "boxVr", L"\u255f" },
      +
      621 { "boxdL", L"\u2555" },
      +
      622 { "boxdR", L"\u2552" },
      +
      623 { "boxdl", L"\u2510" },
      +
      624 { "boxdr", L"\u250c" },
      +
      625 { "boxh", L"\u2500" },
      +
      626 { "boxhD", L"\u2565" },
      +
      627 { "boxhU", L"\u2568" },
      +
      628 { "boxhd", L"\u252c" },
      +
      629 { "boxhu", L"\u2534" },
      +
      630 { "boxuL", L"\u255b" },
      +
      631 { "boxuR", L"\u2558" },
      +
      632 { "boxul", L"\u2518" },
      +
      633 { "boxur", L"\u2514" },
      +
      634 { "boxv", L"\u2502" },
      +
      635 { "boxvH", L"\u256a" },
      +
      636 { "boxvL", L"\u2561" },
      +
      637 { "boxvR", L"\u255e" },
      +
      638 { "boxvh", L"\u253c" },
      +
      639 { "boxvl", L"\u2524" },
      +
      640 { "boxvr", L"\u251c" },
      +
      641 { "bprime", L"\u2035" },
      +
      642 { "breve", L"\u02d8" },
      +
      643 { "brvbar", L"\u00a6" },
      +
      644 { "bsim", L"\u223d" },
      +
      645 { "bsime", L"\u22cd" },
      +
      646 { "bsol", L"\u005c" },
      +
      647 { "btilde", L"\u0062\u0303" },
      +
      648 { "bull", L"\u2022" },
      +
      649 { "buml", L"\u0062\u0308" },
      +
      650 { "bump", L"\u224e" },
      +
      651 { "bumpe", L"\u224f" },
      +
      652 { "cacute", L"\u0107" },
      +
      653 { "cacute", L"\u0063\u0301" },
      +
      654 { "cap", L"\u2229" },
      +
      655 { "caret", L"\u2041" },
      +
      656 { "caron", L"\u02c7" },
      +
      657 { "cbreve", L"\u0063\u0306" },
      +
      658 { "cbring", L"\u0063\u032f" },
      +
      659 { "ccaron", L"\u010d" },
      +
      660 { "ccaron", L"\u0063\u030c" },
      +
      661 { "ccedil", L"\u00e7" },
      +
      662 { "ccirc", L"\u0109" },
      +
      663 { "ccirc", L"\u0063\u0302" },
      +
      664 { "cdot", L"\u010b" },
      +
      665 { "cdot", L"\u0063\u0307" },
      +
      666 { "cedil", L"\u00b8" },
      +
      667 { "cent", L"\u00a2" },
      +
      668 { "cgrave", L"\u0063\u0300" },
      +
      669 { "chcy", L"\u0447" },
      +
      670 { "check", L"\u2713" },
      +
      671 { "chi", L"\u03c7" },
      +
      672 { "cir", L"\u25cb" },
      +
      673 { "circ", L"\u02c6" },
      +
      674 { "circlef", L"\u25cf" },
      +
      675 { "circlefb", L"\u25d2" },
      +
      676 { "circlefl", L"\u25d0" },
      +
      677 { "circlefr", L"\u25d1" },
      +
      678 { "circleft", L"\u25d3" },
      +
      679 { "cire", L"\u2257" },
      +
      680 { "clubs", L"\u2663" },
      +
      681 { "cmacr", L"\u0063\u0304" },
      +
      682 { "colon", L"\u003a" },
      +
      683 { "colone", L"\u2254" },
      +
      684 { "comma", L"\u002c" },
      +
      685 { "commat", L"\u0040" },
      +
      686 { "comp", L"\u2201" },
      +
      687 { "compfn", L"\u2218" },
      +
      688 { "cong", L"\u2245" },
      +
      689 { "conint", L"\u222e" },
      +
      690 { "coprod", L"\u2210" },
      +
      691 { "copy", L"\u00a9" },
      +
      692 { "copysr", L"\u2117" },
      +
      693 { "crarr", L"\u21b5" },
      +
      694 { "cross", L"\u2717" },
      +
      695 { "ctilde", L"\u0063\u0303" },
      +
      696 { "cuepr", L"\u22de" },
      +
      697 { "cuesc", L"\u22df" },
      +
      698 { "cularr", L"\u21b6" },
      +
      699 { "cuml", L"\u0063\u0308" },
      +
      700 { "cup", L"\u222a" },
      +
      701 { "cupre", L"\u227c" },
      +
      702 { "curarr", L"\u21b7" },
      +
      703 { "curren", L"\u00a4" },
      +
      704 { "cuvee", L"\u22ce" },
      +
      705 { "cuwed", L"\u22cf" },
      +
      706 { "dArr", L"\u21d3" },
      +
      707 { "dacute", L"\u0064\u0301" },
      +
      708 { "dagger", L"\u2020" },
      +
      709 { "daleth", L"\u2138" },
      +
      710 { "darr", L"\u2193" },
      +
      711 { "darr2", L"\u21ca" },
      +
      712 { "dash", L"\u2010" },
      +
      713 { "dashv", L"\u22a3" },
      +
      714 { "dblac", L"\u02dd" },
      +
      715 { "dbreve", L"\u0064\u0306" },
      +
      716 { "dbring", L"\u0064\u032f" },
      +
      717 { "dcaron", L"\u010f" },
      +
      718 { "dcaron", L"\u0064\u030c" },
      +
      719 { "dcirc", L"\u0064\u0302" },
      +
      720 { "dcy", L"\u0434" },
      +
      721 { "ddot", L"\u0064\u0307" },
      +
      722 { "deg", L"\u00b0" },
      +
      723 { "delta", L"\u03b4" },
      +
      724 { "dgr", L"\u03b4" },
      +
      725 { "dgrave", L"\u0064\u0300" },
      +
      726 { "dharl", L"\u21c3" },
      +
      727 { "dharr", L"\u21c2" },
      +
      728 { "diam", L"\u22c4" },
      +
      729 { "diamondf", L"\u25c6" },
      +
      730 { "diams", L"\u2666" },
      +
      731 { "die", L"\u00a8" },
      +
      732 { "divide", L"\u00f7" },
      +
      733 { "divonx", L"\u22c7" },
      +
      734 { "djcy", L"\u0452" },
      +
      735 { "dlarr", L"\u2199" },
      +
      736 { "dlcorn", L"\u231e" },
      +
      737 { "dlcrop", L"\u230d" },
      +
      738 { "dmacr", L"\u0064\u0304" },
      +
      739 { "dollar", L"\u0024" },
      +
      740 { "dot", L"\u02d9" },
      +
      741 { "drarr", L"\u2198" },
      +
      742 { "drcorn", L"\u231f" },
      +
      743 { "drcrop", L"\u230c" },
      +
      744 { "dscy", L"\u0455" },
      +
      745 { "dstrok", L"\u0111" },
      +
      746 { "dtilde", L"\u0064\u0303" },
      +
      747 { "dtri", L"\u25bf" },
      +
      748 { "dtrif", L"\u25be" },
      +
      749 { "duml", L"\u0064\u0308" },
      +
      750 { "dzcy", L"\u045f" },
      +
      751 { "eDot", L"\u2251" },
      +
      752 { "eacgr", L"\u03ad" },
      +
      753 { "eacute", L"\u00e9" },
      +
      754 { "eacute", L"\u0065\u0301" },
      +
      755 { "ebreve", L"\u0065\u0306" },
      +
      756 { "ebring", L"\u0065\u032f" },
      +
      757 { "ecaron", L"\u011b" },
      +
      758 { "ecaron", L"\u0065\u030c" },
      +
      759 { "ecir", L"\u2256" },
      +
      760 { "ecirc", L"\u00ea" },
      +
      761 { "ecirc", L"\u0065\u0302" },
      +
      762 { "ecolon", L"\u2255" },
      +
      763 { "ecy", L"\u044d" },
      +
      764 { "edot", L"\u0117" },
      +
      765 { "edot", L"\u0065\u0307" },
      +
      766 { "edotb", L"\u1eb9" },
      +
      767 { "eeacgr", L"\u03ae" },
      +
      768 { "eegr", L"\u03b7" },
      +
      769 { "efDot", L"\u2252" },
      +
      770 { "egr", L"\u03b5" },
      +
      771 { "egrave", L"\u00e8" },
      +
      772 { "egrave", L"\u0065\u0300" },
      +
      773 { "egs", L"\u22dd" },
      +
      774 { "ell", L"\u2113" },
      +
      775 { "els", L"\u22dc" },
      +
      776 { "emacr", L"\u0113" },
      +
      777 { "emacr", L"\u0065\u0304" },
      +
      778 { "empty", L"\u2205" },
      +
      779 { "emsp", L"\u2003" },
      +
      780 { "emsp13", L"\u2004" },
      +
      781 { "emsp14", L"\u2005" },
      +
      782 { "eng", L"\u014b" },
      +
      783 { "ensp", L"\u2002" },
      +
      784 { "eogon", L"\u0119" },
      +
      785 { "epsi", L"\u03b5" },
      +
      786 { "epsilon", L"\u03b5" },
      +
      787 { "epsis", L"\u220a" },
      +
      788 { "equals", L"\u003d" },
      +
      789 { "equiv", L"\u2261" },
      +
      790 { "erDot", L"\u2253" },
      +
      791 { "esdot", L"\u2250" },
      +
      792 { "eta", L"\u03b7" },
      +
      793 { "eth", L"\u00f0" },
      +
      794 { "etilde", L"\u0065\u0303" },
      +
      795 { "euml", L"\u00eb" },
      +
      796 { "euml", L"\u0065\u0308" },
      +
      797 { "euro", L"\u20ac" },
      +
      798 { "excl", L"\u0021" },
      +
      799 { "exist", L"\u2203" },
      +
      800 { "facute", L"\u0066\u0301" },
      +
      801 { "fbreve", L"\u0066\u0306" },
      +
      802 { "fbring", L"\u0066\u032f" },
      +
      803 { "fcaron", L"\u0066\u030c" },
      +
      804 { "fcirc", L"\u0066\u0302" },
      +
      805 { "fcy", L"\u0444" },
      +
      806 { "fdot", L"\u0066\u0307" },
      +
      807 { "female", L"\u2640" },
      +
      808 { "ffilig", L"\ufb03" },
      +
      809 { "fflig", L"\ufb00" },
      +
      810 { "ffllig", L"\ufb04" },
      +
      811 { "fgrave", L"\u0066\u0300" },
      +
      812 { "filig", L"\ufb01" },
      +
      813 { "flat", L"\u266d" },
      +
      814 { "fllig", L"\ufb02" },
      +
      815 { "fmacr", L"\u0066\u0304" },
      +
      816 { "fnof", L"\u0192" },
      +
      817 { "forall", L"\u2200" },
      +
      818 { "fork", L"\u22d4" },
      +
      819 { "frac12", L"\u00bd" },
      +
      820 { "frac13", L"\u2153" },
      +
      821 { "frac14", L"\u00bc" },
      +
      822 { "frac15", L"\u2155" },
      +
      823 { "frac16", L"\u2159" },
      +
      824 { "frac18", L"\u215b" },
      +
      825 { "frac23", L"\u2154" },
      +
      826 { "frac25", L"\u2156" },
      +
      827 { "frac34", L"\u00be" },
      +
      828 { "frac35", L"\u2157" },
      +
      829 { "frac38", L"\u215c" },
      +
      830 { "frac45", L"\u2158" },
      +
      831 { "frac56", L"\u215a" },
      +
      832 { "frac58", L"\u215d" },
      +
      833 { "frac78", L"\u215e" },
      +
      834 { "frasl", L"\u2044" },
      +
      835 { "frown", L"\u2322" },
      +
      836 { "ftilde", L"\u0066\u0303" },
      +
      837 { "fuml", L"\u0066\u0308" },
      +
      838 { "gE", L"\u2267" },
      +
      839 { "gacute", L"\u01f5" },
      +
      840 { "gacute", L"\u0067\u0301" },
      +
      841 { "gamma", L"\u03b3" },
      +
      842 { "gammad", L"\u03dc" },
      +
      843 { "gbreve", L"\u011f" },
      +
      844 { "gbreve", L"\u0067\u0306" },
      +
      845 { "gbring", L"\u0067\u032f" },
      +
      846 { "gcaron", L"\u0067\u030c" },
      +
      847 { "gcedil", L"\u0123" },
      +
      848 { "gcirc", L"\u011d" },
      +
      849 { "gcirc", L"\u0067\u0302" },
      +
      850 { "gcy", L"\u0433" },
      +
      851 { "gdot", L"\u0121" },
      +
      852 { "gdot", L"\u0067\u0307" },
      +
      853 { "ge", L"\u2265" },
      +
      854 { "gel", L"\u22db" },
      +
      855 { "ges", L"\u2265" },
      +
      856 { "ggr", L"\u03b3" },
      +
      857 { "ggrave", L"\u0067\u0300" },
      +
      858 { "gimel", L"\u2137" },
      +
      859 { "gjcy", L"\u0453" },
      +
      860 { "gl", L"\u2277" },
      +
      861 { "gmacr", L"\u0067\u0304" },
      +
      862 { "gnE", L"\u2269" },
      +
      863 { "gne", L"\u2269" },
      +
      864 { "gnsim", L"\u22e7" },
      +
      865 { "grave", L"\u0060" },
      +
      866 { "gsdot", L"\u22d7" },
      +
      867 { "gsim", L"\u2273" },
      +
      868 { "gt", L"\u003e" },
      +
      869 { "gtilde", L"\u0067\u0303" },
      +
      870 { "guml", L"\u0067\u0308" },
      +
      871 { "gvnE", L"\u2269" },
      +
      872 { "hArr", L"\u21d4" },
      +
      873 { "hacute", L"\u0068\u0301" },
      +
      874 { "hairsp", L"\u200a" },
      +
      875 { "half", L"\u00bd" },
      +
      876 { "hamilt", L"\u210b" },
      +
      877 { "hardcy", L"\u044a" },
      +
      878 { "harr", L"\u2194" },
      +
      879 { "harrw", L"\u21ad" },
      +
      880 { "hbreve", L"\u0068\u0306" },
      +
      881 { "hbring", L"\u0068\u032f" },
      +
      882 { "hcaron", L"\u0068\u030c" },
      +
      883 { "hcirc", L"\u0125" },
      +
      884 { "hcirc", L"\u0068\u0302" },
      +
      885 { "hdot", L"\u0068\u0307" },
      +
      886 { "hearts", L"\u2665" },
      +
      887 { "hellip", L"\u2026" },
      +
      888 { "hgrave", L"\u0068\u0300" },
      +
      889 { "hmacr", L"\u0068\u0304" },
      +
      890 { "horbar", L"\u2015" },
      +
      891 { "hstrok", L"\u0127" },
      +
      892 { "htilde", L"\u0068\u0303" },
      +
      893 { "huml", L"\u0068\u0308" },
      +
      894 { "hybull", L"\u2043" },
      +
      895 { "hyphen", L"\u002d" },
      +
      896 { "iacgr", L"\u03af" },
      +
      897 { "iacute", L"\u00ed" },
      +
      898 { "iacute", L"\u0069\u0301" },
      +
      899 { "ibreve", L"\u0069\u0306" },
      +
      900 { "ibring", L"\u0069\u032f" },
      +
      901 { "icaron", L"\u0069\u030c" },
      +
      902 { "icirc", L"\u00ee" },
      +
      903 { "icirc", L"\u0069\u0302" },
      +
      904 { "icy", L"\u0438" },
      +
      905 { "idiagr", L"\u0390" },
      +
      906 { "idigr", L"\u03ca" },
      +
      907 { "idot", L"\u0069\u0307" },
      +
      908 { "iecy", L"\u0435" },
      +
      909 { "iexcl", L"\u00a1" },
      +
      910 { "iff", L"\u21d4" },
      +
      911 { "igr", L"\u03b9" },
      +
      912 { "igrave", L"\u00ec" },
      +
      913 { "igrave", L"\u0069\u0300" },
      +
      914 { "ijlig", L"\u0133" },
      +
      915 { "imacr", L"\u012b" },
      +
      916 { "imacr", L"\u0069\u0304" },
      +
      917 { "image", L"\u2111" },
      +
      918 { "incare", L"\u2105" },
      +
      919 { "infin", L"\u221e" },
      +
      920 { "inodot", L"\u0131" },
      +
      921 { "inodot", L"\u0131" },
      +
      922 { "int", L"\u222b" },
      +
      923 { "intcal", L"\u22ba" },
      +
      924 { "iocy", L"\u0451" },
      +
      925 { "iogon", L"\u012f" },
      +
      926 { "iota", L"\u03b9" },
      +
      927 { "iquest", L"\u00bf" },
      +
      928 { "isin", L"\u2208" },
      +
      929 { "itilde", L"\u0129" },
      +
      930 { "itilde", L"\u0069\u0303" },
      +
      931 { "iukcy", L"\u0456" },
      +
      932 { "iuml", L"\u00ef" },
      +
      933 { "iuml", L"\u0069\u0308" },
      +
      934 { "jacute", L"\u006a\u0301" },
      +
      935 { "jbreve", L"\u006a\u0306" },
      +
      936 { "jbring", L"\u006a\u032f" },
      +
      937 { "jcaron", L"\u006a\u030c" },
      +
      938 { "jcirc", L"\u0135" },
      +
      939 { "jcirc", L"\u006a\u0302" },
      +
      940 { "jcy", L"\u0439" },
      +
      941 { "jdot", L"\u006a\u0307" },
      +
      942 { "jgrave", L"\u006a\u0300" },
      +
      943 { "jmacr", L"\u006a\u0304" },
      +
      944 { "jsercy", L"\u0458" },
      +
      945 { "jtilde", L"\u006a\u0303" },
      +
      946 { "jukcy", L"\u0454" },
      +
      947 { "juml", L"\u006a\u0308" },
      +
      948 { "kacute", L"\u006b\u0301" },
      +
      949 { "kappa", L"\u03ba" },
      +
      950 { "kappav", L"\u03f0" },
      +
      951 { "kbreve", L"\u006b\u0306" },
      +
      952 { "kbring", L"\u006b\u032f" },
      +
      953 { "kcaron", L"\u006b\u030c" },
      +
      954 { "kcedil", L"\u0137" },
      +
      955 { "kcirc", L"\u006b\u0302" },
      +
      956 { "kcy", L"\u043a" },
      +
      957 { "kdot", L"\u006b\u0307" },
      +
      958 { "kgr", L"\u03ba" },
      +
      959 { "kgrave", L"\u006b\u0300" },
      +
      960 { "kgreen", L"\u0138" },
      +
      961 { "khcy", L"\u0445" },
      +
      962 { "khgr", L"\u03c7" },
      +
      963 { "kjcy", L"\u045c" },
      +
      964 { "kmacr", L"\u006b\u0304" },
      +
      965 { "ktilde", L"\u006b\u0303" },
      +
      966 { "kuml", L"\u006b\u0308" },
      +
      967 { "lAarr", L"\u21da" },
      +
      968 { "lArr", L"\u21d0" },
      +
      969 { "lE", L"\u2266" },
      +
      970 { "lacute", L"\u013a" },
      +
      971 { "lacute", L"\u006c\u0301" },
      +
      972 { "lagran", L"\u2112" },
      +
      973 { "lambda", L"\u03bb" },
      +
      974 { "lang", L"\u2329" },
      +
      975 { "laquo", L"\u00ab" },
      +
      976 { "larr", L"\u2190" },
      +
      977 { "larr2", L"\u21c7" },
      +
      978 { "larrhk", L"\u21a9" },
      +
      979 { "larrlp", L"\u21ab" },
      +
      980 { "larrtl", L"\u21a2" },
      +
      981 { "lbreve", L"\u006c\u0306" },
      +
      982 { "lbring", L"\u006c\u032f" },
      +
      983 { "lcaron", L"\u013e" },
      +
      984 { "lcaron", L"\u006c\u030c" },
      +
      985 { "lcedil", L"\u013c" },
      +
      986 { "lceil", L"\u2308" },
      +
      987 { "lcirc", L"\u006c\u0302" },
      +
      988 { "lcub", L"\u007b" },
      +
      989 { "lcy", L"\u043b" },
      +
      990 { "ldot", L"\u22d6" },
      +
      991 { "ldot", L"\u006c\u0307" },
      +
      992 { "ldquo", L"\u201c" },
      +
      993 { "ldquor", L"\u201e" },
      +
      994 { "le", L"\u2264" },
      +
      995 { "leg", L"\u22da" },
      +
      996 { "les", L"\u2264" },
      +
      997 { "lfloor", L"\u230a" },
      +
      998 { "lg", L"\u2276" },
      +
      999 { "lgr", L"\u03bb" },
      +
      1000 { "lgrave", L"\u006c\u0300" },
      +
      1001 { "lhard", L"\u21bd" },
      +
      1002 { "lharu", L"\u21bc" },
      +
      1003 { "lhblk", L"\u2584" },
      +
      1004 { "ljcy", L"\u0459" },
      +
      1005 { "lmacr", L"\u006c\u0304" },
      +
      1006 { "lmidot", L"\u0140" },
      +
      1007 { "lnE", L"\u2268" },
      +
      1008 { "lne", L"\u2268" },
      +
      1009 { "lnsim", L"\u22e6" },
      +
      1010 { "lowast", L"\u2217" },
      +
      1011 { "lowbar", L"\u005f" },
      +
      1012 { "loz", L"\u25ca" },
      +
      1013 { "loz", L"\u2727" },
      +
      1014 { "lozf", L"\u2726" },
      +
      1015 { "lpar", L"\u0028" },
      +
      1016 { "lrarr2", L"\u21c6" },
      +
      1017 { "lrhar2", L"\u21cb" },
      +
      1018 { "lrm", L"\u200e" },
      +
      1019 { "lsaquo", L"\u2039" },
      +
      1020 { "lsh", L"\u21b0" },
      +
      1021 { "lsim", L"\u2272" },
      +
      1022 { "lsqb", L"\u005b" },
      +
      1023 { "lsquo", L"\u2018" },
      +
      1024 { "lsquor", L"\u201a" },
      +
      1025 { "lstrok", L"\u0142" },
      +
      1026 { "lt", L"\u003c" },
      +
      1027 { "lthree", L"\u22cb" },
      +
      1028 { "ltilde", L"\u006c\u0303" },
      +
      1029 { "ltimes", L"\u22c9" },
      +
      1030 { "ltri", L"\u25c3" },
      +
      1031 { "ltrie", L"\u22b4" },
      +
      1032 { "ltrif", L"\u25c2" },
      +
      1033 { "luml", L"\u006c\u0308" },
      +
      1034 { "lvnE", L"\u2268" },
      +
      1035 { "macr", L"\u00af" },
      +
      1036 { "macute", L"\u006d\u0301" },
      +
      1037 { "male", L"\u2642" },
      +
      1038 { "malt", L"\u2720" },
      +
      1039 { "map", L"\u21a6" },
      +
      1040 { "marker", L"\u25ae" },
      +
      1041 { "mbreve", L"\u006d\u0306" },
      +
      1042 { "mbring", L"\u006d\u032f" },
      +
      1043 { "mcaron", L"\u006d\u030c" },
      +
      1044 { "mcirc", L"\u006d\u0302" },
      +
      1045 { "mcy", L"\u043c" },
      +
      1046 { "mdash", L"\u2014" },
      +
      1047 { "mdot", L"\u006d\u0307" },
      +
      1048 { "mgr", L"\u03bc" },
      +
      1049 { "mgrave", L"\u006d\u0300" },
      +
      1050 { "micro", L"\u00b5" },
      +
      1051 { "mid", L"\u2223" },
      +
      1052 { "middot", L"\u00b7" },
      +
      1053 { "minus", L"\u2212" },
      +
      1054 { "minusb", L"\u229f" },
      +
      1055 { "mldr", L"\u2026" },
      +
      1056 { "mmacr", L"\u006d\u0304" },
      +
      1057 { "mnplus", L"\u2213" },
      +
      1058 { "models", L"\u22a7" },
      +
      1059 { "mtilde", L"\u006d\u0303" },
      +
      1060 { "mu", L"\u03bc" },
      +
      1061 { "mumap", L"\u22b8" },
      +
      1062 { "muml", L"\u006d\u0308" },
      +
      1063 { "nVDash", L"\u22af" },
      +
      1064 { "nVdash", L"\u22ae" },
      +
      1065 { "nabla", L"\u2207" },
      +
      1066 { "nacute", L"\u0144" },
      +
      1067 { "nacute", L"\u006e\u0301" },
      +
      1068 { "nap", L"\u2249" },
      +
      1069 { "napos", L"\u0149" },
      +
      1070 { "natur", L"\u266e" },
      +
      1071 { "nbreve", L"\u006e\u0306" },
      +
      1072 { "nbring", L"\u006e\u032f" },
      +
      1073 { "nbsp", L"\u00a0" },
      +
      1074 { "ncaron", L"\u0148" },
      +
      1075 { "ncaron", L"\u006e\u030c" },
      +
      1076 { "ncedil", L"\u0146" },
      +
      1077 { "ncirc", L"\u006e\u0302" },
      +
      1078 { "ncong", L"\u2247" },
      +
      1079 { "ncy", L"\u043d" },
      +
      1080 { "ndash", L"\u2013" },
      +
      1081 { "ndot", L"\u006e\u0307" },
      +
      1082 { "ne", L"\u2260" },
      +
      1083 { "nearr", L"\u2197" },
      +
      1084 { "nequiv", L"\u2262" },
      +
      1085 { "nexist", L"\u2204" },
      +
      1086 { "nge", L"\u2271" },
      +
      1087 { "nges", L"\u2271" },
      +
      1088 { "ngr", L"\u03bd" },
      +
      1089 { "ngrave", L"\u006e\u0300" },
      +
      1090 { "ngt", L"\u226f" },
      +
      1091 { "nhArr", L"\u21ce" },
      +
      1092 { "nharr", L"\u21ae" },
      +
      1093 { "ni", L"\u220b" },
      +
      1094 { "njcy", L"\u045a" },
      +
      1095 { "nlArr", L"\u21cd" },
      +
      1096 { "nlarr", L"\u219a" },
      +
      1097 { "nldr", L"\u2025" },
      +
      1098 { "nle", L"\u2270" },
      +
      1099 { "nles", L"\u2270" },
      +
      1100 { "nlt", L"\u226e" },
      +
      1101 { "nltri", L"\u22ea" },
      +
      1102 { "nltrie", L"\u22ec" },
      +
      1103 { "nmacr", L"\u006e\u0304" },
      +
      1104 { "nmid", L"\u2224" },
      +
      1105 { "not", L"\u00ac" },
      +
      1106 { "notin", L"\u2209" },
      +
      1107 { "npar", L"\u2226" },
      +
      1108 { "npr", L"\u2280" },
      +
      1109 { "npre", L"\u22e0" },
      +
      1110 { "nrArr", L"\u21cf" },
      +
      1111 { "nrarr", L"\u219b" },
      +
      1112 { "nrtri", L"\u22eb" },
      +
      1113 { "nrtrie", L"\u22ed" },
      +
      1114 { "nsc", L"\u2281" },
      +
      1115 { "nsce", L"\u22e1" },
      +
      1116 { "nsim", L"\u2241" },
      +
      1117 { "nsime", L"\u2244" },
      +
      1118 { "nspar", L"\u2226" },
      +
      1119 { "nsub", L"\u2284" },
      +
      1120 { "nsubE", L"\u2288" },
      +
      1121 { "nsube", L"\u2288" },
      +
      1122 { "nsup", L"\u2285" },
      +
      1123 { "nsupE", L"\u2289" },
      +
      1124 { "nsupe", L"\u2289" },
      +
      1125 { "ntilde", L"\u00f1" },
      +
      1126 { "ntilde", L"\u006e\u0303" },
      +
      1127 { "nu", L"\u03bd" },
      +
      1128 { "num", L"\u0023" },
      +
      1129 { "numero", L"\u2116" },
      +
      1130 { "numl", L"\u006e\u0308" },
      +
      1131 { "numsp", L"\u2007" },
      +
      1132 { "nvDash", L"\u22ad" },
      +
      1133 { "nvdash", L"\u22ac" },
      +
      1134 { "nwarr", L"\u2196" },
      +
      1135 { "oS", L"\u24c8" },
      +
      1136 { "oacgr", L"\u03cc" },
      +
      1137 { "oacute", L"\u00f3" },
      +
      1138 { "oacute", L"\u006f\u0301" },
      +
      1139 { "oast", L"\u229b" },
      +
      1140 { "obreve", L"\u006f\u0306" },
      +
      1141 { "obring", L"\u006f\u032f" },
      +
      1142 { "ocaron", L"\u01d2" },
      +
      1143 { "ocaron", L"\u006f\u030c" },
      +
      1144 { "ocir", L"\u229a" },
      +
      1145 { "ocirc", L"\u00f4" },
      +
      1146 { "ocirc", L"\u006f\u0302" },
      +
      1147 { "ocy", L"\u043e" },
      +
      1148 { "odash", L"\u229d" },
      +
      1149 { "odblac", L"\u0151" },
      +
      1150 { "odot", L"\u2299" },
      +
      1151 { "odot", L"\u006f\u0307" },
      +
      1152 { "odotb", L"\u1ecd" },
      +
      1153 { "oelig", L"\u0153" },
      +
      1154 { "ogon", L"\u02db" },
      +
      1155 { "ogr", L"\u03bf" },
      +
      1156 { "ograve", L"\u00f2" },
      +
      1157 { "ograve", L"\u006f\u0300" },
      +
      1158 { "ohacgr", L"\u03ce" },
      +
      1159 { "ohgr", L"\u03c9" },
      +
      1160 { "ohm", L"\u2126" },
      +
      1161 { "olarr", L"\u21ba" },
      +
      1162 { "oline", L"\u203e" },
      +
      1163 { "omacr", L"\u014d" },
      +
      1164 { "omacr", L"\u006f\u0304" },
      +
      1165 { "omega", L"\u03c9" },
      +
      1166 { "omicron", L"\u03bf" },
      +
      1167 { "ominus", L"\u2296" },
      +
      1168 { "oplus", L"\u2295" },
      +
      1169 { "or", L"\u2228" },
      +
      1170 { "orarr", L"\u21bb" },
      +
      1171 { "order", L"\u2134" },
      +
      1172 { "ordf", L"\u00aa" },
      +
      1173 { "ordm", L"\u00ba" },
      +
      1174 { "oslash", L"\u00f8" },
      +
      1175 { "osol", L"\u2298" },
      +
      1176 { "otilde", L"\u00f5" },
      +
      1177 { "otilde", L"\u006f\u0303" },
      +
      1178 { "otimes", L"\u2297" },
      +
      1179 { "ouml", L"\u00f6" },
      +
      1180 { "ouml", L"\u006f\u0308" },
      +
      1181 { "pacute", L"\u0070\u0301" },
      +
      1182 { "page", L"\u000c" },
      +
      1183 { "par", L"\u2225" },
      +
      1184 { "para", L"\u00b6" },
      +
      1185 { "part", L"\u2202" },
      +
      1186 { "pbreve", L"\u0070\u0306" },
      +
      1187 { "pbring", L"\u0070\u032f" },
      +
      1188 { "pcaron", L"\u0070\u030c" },
      +
      1189 { "pcirc", L"\u0070\u0302" },
      +
      1190 { "pcy", L"\u043f" },
      +
      1191 { "pdot", L"\u0070\u0307" },
      +
      1192 { "percnt", L"\u0025" },
      +
      1193 { "period", L"\u002e" },
      +
      1194 { "permil", L"\u2030" },
      +
      1195 { "perp", L"\u22a5" },
      +
      1196 { "pgr", L"\u03c0" },
      +
      1197 { "pgrave", L"\u0070\u0300" },
      +
      1198 { "phgr", L"\u03c6" },
      +
      1199 { "phi", L"\u03c6" },
      +
      1200 { "phis", L"\u03c6" },
      +
      1201 { "phiv", L"\u03d5" },
      +
      1202 { "phmmat", L"\u2133" },
      +
      1203 { "phone", L"\u260e" },
      +
      1204 { "pi", L"\u03c0" },
      +
      1205 { "piv", L"\u03d6" },
      +
      1206 { "planck", L"\u210f" },
      +
      1207 { "plus", L"\u002b" },
      +
      1208 { "plusb", L"\u229e" },
      +
      1209 { "plusdo", L"\u2214" },
      +
      1210 { "plusmn", L"\u00b1" },
      +
      1211 { "pmacr", L"\u0070\u0304" },
      +
      1212 { "pound", L"\u00a3" },
      +
      1213 { "pr", L"\u227a" },
      +
      1214 { "pre", L"\u227c" },
      +
      1215 { "prime", L"\u2032" },
      +
      1216 { "prnsim", L"\u22e8" },
      +
      1217 { "prod", L"\u220f" },
      +
      1218 { "prop", L"\u221d" },
      +
      1219 { "prsim", L"\u227e" },
      +
      1220 { "psgr", L"\u03c8" },
      +
      1221 { "psi", L"\u03c8" },
      +
      1222 { "ptilde", L"\u0070\u0303" },
      +
      1223 { "puml", L"\u0070\u0308" },
      +
      1224 { "puncsp", L"\u2008" },
      +
      1225 { "qacute", L"\u0071\u0301" },
      +
      1226 { "qbreve", L"\u0071\u0306" },
      +
      1227 { "qbring", L"\u0071\u032f" },
      +
      1228 { "qcaron", L"\u0071\u030c" },
      +
      1229 { "qcirc", L"\u0071\u0302" },
      +
      1230 { "qdot", L"\u0071\u0307" },
      +
      1231 { "qgrave", L"\u0071\u0300" },
      +
      1232 { "qmacr", L"\u0071\u0304" },
      +
      1233 { "qtilde", L"\u0071\u0303" },
      +
      1234 { "quest", L"\u003f" },
      +
      1235 { "quml", L"\u0071\u0308" },
      +
      1236 { "quot", L"\u0022" },
      +
      1237 { "rAarr", L"\u21db" },
      +
      1238 { "rArr", L"\u21d2" },
      +
      1239 { "racute", L"\u0155" },
      +
      1240 { "racute", L"\u0072\u0301" },
      +
      1241 { "radic", L"\u221a" },
      +
      1242 { "rang", L"\u232a" },
      +
      1243 { "raquo", L"\u00bb" },
      +
      1244 { "rarr", L"\u2192" },
      +
      1245 { "rarr2", L"\u21c9" },
      +
      1246 { "rarrhk", L"\u21aa" },
      +
      1247 { "rarrlp", L"\u21ac" },
      +
      1248 { "rarrtl", L"\u21a3" },
      +
      1249 { "rarrw", L"\u219d" },
      +
      1250 { "rbreve", L"\u0072\u0306" },
      +
      1251 { "rbring", L"\u0072\u032f" },
      +
      1252 { "rcaron", L"\u0159" },
      +
      1253 { "rcaron", L"\u0072\u030c" },
      +
      1254 { "rcedil", L"\u0157" },
      +
      1255 { "rceil", L"\u2309" },
      +
      1256 { "rcirc", L"\u0072\u0302" },
      +
      1257 { "rcub", L"\u007d" },
      +
      1258 { "rcy", L"\u0440" },
      +
      1259 { "rdot", L"\u0072\u0307" },
      +
      1260 { "rdquo", L"\u201d" },
      +
      1261 { "rdquor", L"\u201c" },
      +
      1262 { "real", L"\u211c" },
      +
      1263 { "rect", L"\u25ad" },
      +
      1264 { "reg", L"\u00ae" },
      +
      1265 { "rfloor", L"\u230b" },
      +
      1266 { "rgr", L"\u03c1" },
      +
      1267 { "rgrave", L"\u0072\u0300" },
      +
      1268 { "rhard", L"\u21c1" },
      +
      1269 { "rharu", L"\u21c0" },
      +
      1270 { "rho", L"\u03c1" },
      +
      1271 { "rhov", L"\u03f1" },
      +
      1272 { "ring", L"\u02da" },
      +
      1273 { "rlarr2", L"\u21c4" },
      +
      1274 { "rlhar2", L"\u21cc" },
      +
      1275 { "rlm", L"\u200f" },
      +
      1276 { "rmacr", L"\u0072\u0304" },
      +
      1277 { "rpar", L"\u0029" },
      +
      1278 { "rsaquo", L"\u203a" },
      +
      1279 { "rsh", L"\u21b1" },
      +
      1280 { "rsqb", L"\u005d" },
      +
      1281 { "rsquo", L"\u2019" },
      +
      1282 { "rsquor", L"\u2018" },
      +
      1283 { "rthree", L"\u22cc" },
      +
      1284 { "rtilde", L"\u0072\u0303" },
      +
      1285 { "rtimes", L"\u22ca" },
      +
      1286 { "rtri", L"\u25b9" },
      +
      1287 { "rtrie", L"\u22b5" },
      +
      1288 { "rtrif", L"\u25b8" },
      +
      1289 { "ruml", L"\u0072\u0308" },
      +
      1290 { "rx", L"\u211e" },
      +
      1291 { "sacute", L"\u015b" },
      +
      1292 { "sacute", L"\u0073\u0301" },
      +
      1293 { "samalg", L"\u2210" },
      +
      1294 { "sbquo", L"\u201a" },
      +
      1295 { "sbreve", L"\u0073\u0306" },
      +
      1296 { "sbring", L"\u0073\u032f" },
      +
      1297 { "sbsol", L"\u005c" },
      +
      1298 { "sc", L"\u227b" },
      +
      1299 { "scaron", L"\u0161" },
      +
      1300 { "scaron", L"\u0073\u030c" },
      +
      1301 { "sccue", L"\u227d" },
      +
      1302 { "sce", L"\u227d" },
      +
      1303 { "scedil", L"\u015f" },
      +
      1304 { "schwa", L"\u0259" },
      +
      1305 { "schwaacute", L"\u0259\u0301" },
      +
      1306 { "schwadgrave", L"\u0259\u030f" },
      +
      1307 { "schwagrave", L"\u0259\u0300" },
      +
      1308 { "schwamacr", L"\u0259\u0304" },
      +
      1309 { "scirc", L"\u015d" },
      +
      1310 { "scirc", L"\u0073\u0302" },
      +
      1311 { "scnsim", L"\u22e9" },
      +
      1312 { "scsim", L"\u227f" },
      +
      1313 { "scy", L"\u0441" },
      +
      1314 { "sdot", L"\u22c5" },
      +
      1315 { "sdot", L"\u0073\u0307" },
      +
      1316 { "sdotb", L"\u22a1" },
      +
      1317 { "sect", L"\u00a7" },
      +
      1318 { "semi", L"\u003b" },
      +
      1319 { "setmn", L"\u2216" },
      +
      1320 { "sext", L"\u2736" },
      +
      1321 { "sfgr", L"\u03c2" },
      +
      1322 { "sfrown", L"\u2322" },
      +
      1323 { "sgr", L"\u03c3" },
      +
      1324 { "sgrave", L"\u0073\u0300" },
      +
      1325 { "sharp", L"\u266f" },
      +
      1326 { "shchcy", L"\u0449" },
      +
      1327 { "shcy", L"\u0448" },
      +
      1328 { "shy", L"\u00ad" },
      +
      1329 { "sigma", L"\u03c3" },
      +
      1330 { "sigmaf", L"\u03c2" },
      +
      1331 { "sigmav", L"\u03c2" },
      +
      1332 { "sim", L"\u223c" },
      +
      1333 { "sime", L"\u2243" },
      +
      1334 { "smacr", L"\u0073\u0304" },
      +
      1335 { "smile", L"\u2323" },
      +
      1336 { "softcy", L"\u044c" },
      +
      1337 { "sol", L"\u002f" },
      +
      1338 { "spades", L"\u2660" },
      +
      1339 { "spar", L"\u2225" },
      +
      1340 { "sqcap", L"\u2293" },
      +
      1341 { "sqcup", L"\u2294" },
      +
      1342 { "sqsub", L"\u228f" },
      +
      1343 { "sqsube", L"\u2291" },
      +
      1344 { "sqsup", L"\u2290" },
      +
      1345 { "sqsupe", L"\u2292" },
      +
      1346 { "squ", L"\u25a1" },
      +
      1347 { "square", L"\u25a1" },
      +
      1348 { "squarf", L"\u25a0" },
      +
      1349 { "squf", L"\u25aa" },
      +
      1350 { "ssetmn", L"\u2216" },
      +
      1351 { "ssmile", L"\u2323" },
      +
      1352 { "sstarf", L"\u22c6" },
      +
      1353 { "star", L"\u2606" },
      +
      1354 { "starf", L"\u2605" },
      +
      1355 { "stilde", L"\u0073\u0303" },
      +
      1356 { "sub", L"\u2282" },
      +
      1357 { "subE", L"\u2286" },
      +
      1358 { "sube", L"\u2286" },
      +
      1359 { "subnE", L"\u228a" },
      +
      1360 { "subne", L"\u228a" },
      +
      1361 { "sum", L"\u2211" },
      +
      1362 { "suml", L"\u0073\u0308" },
      +
      1363 { "sung", L"\u266a" },
      +
      1364 { "sup", L"\u2283" },
      +
      1365 { "sup1", L"\u00b9" },
      +
      1366 { "sup2", L"\u00b2" },
      +
      1367 { "sup3", L"\u00b3" },
      +
      1368 { "supE", L"\u2287" },
      +
      1369 { "supe", L"\u2287" },
      +
      1370 { "supnE", L"\u228b" },
      +
      1371 { "supne", L"\u228b" },
      +
      1372 { "szlig", L"\u00df" },
      +
      1373 { "tacute", L"\u0074\u0301" },
      +
      1374 { "target", L"\u2316" },
      +
      1375 { "tau", L"\u03c4" },
      +
      1376 { "tbreve", L"\u0074\u0306" },
      +
      1377 { "tbring", L"\u0074\u032f" },
      +
      1378 { "tcaron", L"\u0165" },
      +
      1379 { "tcaron", L"\u0074\u030c" },
      +
      1380 { "tcedil", L"\u0163" },
      +
      1381 { "tcirc", L"\u0074\u0302" },
      +
      1382 { "tcy", L"\u0442" },
      +
      1383 { "tdot", L"\u20db" },
      +
      1384 { "tdot", L"\u0074\u0307" },
      +
      1385 { "telrec", L"\u2315" },
      +
      1386 { "tgr", L"\u03c4" },
      +
      1387 { "tgrave", L"\u0074\u0300" },
      +
      1388 { "there4", L"\u2234" },
      +
      1389 { "theta", L"\u03b8" },
      +
      1390 { "thetas", L"\u03b8" },
      +
      1391 { "thetasym", L"\u03d1" },
      +
      1392 { "thetav", L"\u03d1" },
      +
      1393 { "thgr", L"\u03b8" },
      +
      1394 { "thinsp", L"\u2009" },
      +
      1395 { "thkap", L"\u2248" },
      +
      1396 { "thksim", L"\u223c" },
      +
      1397 { "thorn", L"\u00fe" },
      +
      1398 { "tilde", L"\u02dc" },
      +
      1399 { "times", L"\u00d7" },
      +
      1400 { "timesb", L"\u22a0" },
      +
      1401 { "tmacr", L"\u0074\u0304" },
      +
      1402 { "top", L"\u22a4" },
      +
      1403 { "tprime", L"\u2034" },
      +
      1404 { "trade", L"\u2122" },
      +
      1405 { "trie", L"\u225c" },
      +
      1406 { "tscy", L"\u0446" },
      +
      1407 { "tshcy", L"\u045b" },
      +
      1408 { "tstrok", L"\u0167" },
      +
      1409 { "ttilde", L"\u0074\u0303" },
      +
      1410 { "tuml", L"\u0074\u0308" },
      +
      1411 { "twixt", L"\u226c" },
      +
      1412 { "uArr", L"\u21d1" },
      +
      1413 { "uacgr", L"\u03cd" },
      +
      1414 { "uacute", L"\u00fa" },
      +
      1415 { "uacute", L"\u0075\u0301" },
      +
      1416 { "uarr", L"\u2191" },
      +
      1417 { "uarr2", L"\u21c8" },
      +
      1418 { "ubrcy", L"\u045e" },
      +
      1419 { "ubreve", L"\u016d" },
      +
      1420 { "ubreve", L"\u0075\u0306" },
      +
      1421 { "ubring", L"\u0075\u032f" },
      +
      1422 { "ucaron", L"\u0075\u030c" },
      +
      1423 { "ucirc", L"\u00fb" },
      +
      1424 { "ucirc", L"\u0075\u0302" },
      +
      1425 { "ucy", L"\u0443" },
      +
      1426 { "udblac", L"\u0171" },
      +
      1427 { "udiagr", L"\u03b0" },
      +
      1428 { "udigr", L"\u03cb" },
      +
      1429 { "udot", L"\u0075\u0307" },
      +
      1430 { "ugr", L"\u03c5" },
      +
      1431 { "ugrave", L"\u00f9" },
      +
      1432 { "ugrave", L"\u0075\u0300" },
      +
      1433 { "uharl", L"\u21bf" },
      +
      1434 { "uharr", L"\u21be" },
      +
      1435 { "uhblk", L"\u2580" },
      +
      1436 { "ulcorn", L"\u231c" },
      +
      1437 { "ulcrop", L"\u230f" },
      +
      1438 { "umacr", L"\u016b" },
      +
      1439 { "umacr", L"\u0075\u0304" },
      +
      1440 { "uml", L"\u00a8" },
      +
      1441 { "uogon", L"\u0173" },
      +
      1442 { "uplus", L"\u228e" },
      +
      1443 { "upsi", L"\u03c5" },
      +
      1444 { "upsih", L"\u03d2" },
      +
      1445 { "upsilon", L"\u03c5" },
      +
      1446 { "urcorn", L"\u231d" },
      +
      1447 { "urcrop", L"\u230e" },
      +
      1448 { "uring", L"\u016f" },
      +
      1449 { "utilde", L"\u0169" },
      +
      1450 { "utilde", L"\u0075\u0303" },
      +
      1451 { "utri", L"\u25b5" },
      +
      1452 { "utrif", L"\u25b4" },
      +
      1453 { "uuml", L"\u00fc" },
      +
      1454 { "uuml", L"\u0075\u0308" },
      +
      1455 { "vArr", L"\u21d5" },
      +
      1456 { "vDash", L"\u22a8" },
      +
      1457 { "vacute", L"\u0076\u0301" },
      +
      1458 { "varr", L"\u2195" },
      +
      1459 { "vbreve", L"\u0076\u0306" },
      +
      1460 { "vbring", L"\u0076\u032f" },
      +
      1461 { "vcaron", L"\u0076\u030c" },
      +
      1462 { "vcirc", L"\u0076\u0302" },
      +
      1463 { "vcy", L"\u0432" },
      +
      1464 { "vdash", L"\u22a2" },
      +
      1465 { "vdot", L"\u0076\u0307" },
      +
      1466 { "veebar", L"\u22bb" },
      +
      1467 { "vellip", L"\u22ee" },
      +
      1468 { "verbar", L"\u007c" },
      +
      1469 { "vgrave", L"\u0076\u0300" },
      +
      1470 { "vltri", L"\u22b2" },
      +
      1471 { "vmacr", L"\u0076\u0304" },
      +
      1472 { "vprime", L"\u2032" },
      +
      1473 { "vprop", L"\u221d" },
      +
      1474 { "vrtri", L"\u22b3" },
      +
      1475 { "vsubnE", L"\u228a" },
      +
      1476 { "vsubne", L"\u228a" },
      +
      1477 { "vsupnE", L"\u228b" },
      +
      1478 { "vsupne", L"\u228b" },
      +
      1479 { "vtab", L"\u000b" },
      +
      1480 { "vtilde", L"\u0076\u0303" },
      +
      1481 { "vuml", L"\u0076\u0308" },
      +
      1482 { "wacute", L"\u0077\u0301" },
      +
      1483 { "wbreve", L"\u0077\u0306" },
      +
      1484 { "wbring", L"\u0077\u032f" },
      +
      1485 { "wcaron", L"\u0077\u030c" },
      +
      1486 { "wcirc", L"\u0175" },
      +
      1487 { "wcirc", L"\u0077\u0302" },
      +
      1488 { "wdot", L"\u0077\u0307" },
      +
      1489 { "wedgeq", L"\u2259" },
      +
      1490 { "weierp", L"\u2118" },
      +
      1491 { "wgrave", L"\u0077\u0300" },
      +
      1492 { "wmacr", L"\u0077\u0304" },
      +
      1493 { "wreath", L"\u2240" },
      +
      1494 { "wtilde", L"\u0077\u0303" },
      +
      1495 { "wuml", L"\u0077\u0308" },
      +
      1496 { "xacute", L"\u0078\u0301" },
      +
      1497 { "xbreve", L"\u0078\u0306" },
      +
      1498 { "xbring", L"\u0078\u032f" },
      +
      1499 { "xcaron", L"\u0078\u030c" },
      +
      1500 { "xcirc", L"\u25cb" },
      +
      1501 { "xcirc", L"\u0078\u0302" },
      +
      1502 { "xdot", L"\u0078\u0307" },
      +
      1503 { "xdtri", L"\u25bd" },
      +
      1504 { "xgr", L"\u03be" },
      +
      1505 { "xgrave", L"\u0078\u0300" },
      +
      1506 { "xhArr", L"\u2194" },
      +
      1507 { "xharr", L"\u2194" },
      +
      1508 { "xi", L"\u03be" },
      +
      1509 { "xlArr", L"\u21d0" },
      +
      1510 { "xmacr", L"\u0078\u0304" },
      +
      1511 { "xrArr", L"\u21d2" },
      +
      1512 { "xtilde", L"\u0078\u0303" },
      +
      1513 { "xuml", L"\u0078\u0308" },
      +
      1514 { "xutri", L"\u25b3" },
      +
      1515 { "yacute", L"\u00fd" },
      +
      1516 { "yacute", L"\u0079\u0301" },
      +
      1517 { "yacy", L"\u044f" },
      +
      1518 { "ybreve", L"\u0079\u0306" },
      +
      1519 { "ybring", L"\u0079\u032f" },
      +
      1520 { "ycaron", L"\u0079\u030c" },
      +
      1521 { "ycirc", L"\u0177" },
      +
      1522 { "ycirc", L"\u0079\u0302" },
      +
      1523 { "ycy", L"\u044b" },
      +
      1524 { "ydot", L"\u0079\u0307" },
      +
      1525 { "yen", L"\u00a5" },
      +
      1526 { "ygrave", L"\u0079\u0300" },
      +
      1527 { "yicy", L"\u0457" },
      +
      1528 { "ymacr", L"\u0079\u0304" },
      +
      1529 { "ytilde", L"\u0079\u0303" },
      +
      1530 { "yucy", L"\u044e" },
      +
      1531 { "yuml", L"\u00ff" },
      +
      1532 { "yuml", L"\u0079\u0308" },
      +
      1533 { "zacute", L"\u017a" },
      +
      1534 { "zacute", L"\u007a\u0301" },
      +
      1535 { "zbreve", L"\u007a\u0306" },
      +
      1536 { "zbring", L"\u007a\u032f" },
      +
      1537 { "zcaron", L"\u017e" },
      +
      1538 { "zcaron", L"\u007a\u030c" },
      +
      1539 { "zcirc", L"\u007a\u0302" },
      +
      1540 { "zcy", L"\u0437" },
      +
      1541 { "zdot", L"\u017c" },
      +
      1542 { "zdot", L"\u007a\u0307" },
      +
      1543 { "zeta", L"\u03b6" },
      +
      1544 { "zgr", L"\u03b6" },
      +
      1545 { "zgrave", L"\u007a\u0300" },
      +
      1546 { "zhcy", L"\u0436" },
      +
      1547 { "zmacr", L"\u007a\u0304" },
      +
      1548 { "ztilde", L"\u007a\u0303" },
      +
      1549 { "zuml", L"\u007a\u0308" },
      +
      1550 { "zwj", L"\u200d" },
      +
      1551 { "zwnj", L"\u200c" },
      +
      1552 };
      +
      1553
      +
      1554 static const size_t unicode_sgml[] = {
      +
      1555 0x5b6,
      +
      1556 0x48d,
      +
      1557 0x30d,
      +
      1558 0x4c3,
      +
      1559 0x457,
      +
      1560 0x2d2,
      +
      1561 0x497,
      +
      1562 0x1f1,
      +
      1563 0x1fb,
      +
      1564 0x3e6,
      +
      1565 0x4ec,
      +
      1566 0x1fe,
      +
      1567 0x4a6,
      +
      1568 0x29b,
      +
      1569 0x36e,
      +
      1570 0x498,
      +
      1571 0x528,
      +
      1572 0x299,
      +
      1573 0x515,
      +
      1574 0x3f1,
      +
      1575 0x303,
      +
      1576 0x353,
      +
      1577 0x4c1,
      +
      1578 0x29c,
      +
      1579 0xe,
      +
      1580 0x3,
      +
      1581 0x9,
      +
      1582 0x15,
      +
      1583 0x11,
      +
      1584 0x5,
      +
      1585 0xb,
      +
      1586 0x17,
      +
      1587 0x7,
      +
      1588 0x6,
      +
      1589 0x22,
      +
      1590 0x18,
      +
      1591 0x1d,
      +
      1592 0x24,
      +
      1593 0x23,
      +
      1594 0x1a,
      +
      1595 0x1f,
      +
      1596 0x25,
      +
      1597 0x1c,
      +
      1598 0x1b,
      +
      1599 0x33,
      +
      1600 0x28,
      +
      1601 0x30,
      +
      1602 0x36,
      +
      1603 0x35,
      +
      1604 0x2a,
      +
      1605 0x32,
      +
      1606 0x37,
      +
      1607 0x2d,
      +
      1608 0x2b,
      +
      1609 0x47,
      +
      1610 0x3c,
      +
      1611 0x42,
      +
      1612 0x4c,
      +
      1613 0x48,
      +
      1614 0x3e,
      +
      1615 0x44,
      +
      1616 0x4d,
      +
      1617 0x41,
      +
      1618 0x3f,
      +
      1619 0x61,
      +
      1620 0x54,
      +
      1621 0x5a,
      +
      1622 0x67,
      +
      1623 0x63,
      +
      1624 0x55,
      +
      1625 0x5d,
      +
      1626 0x69,
      +
      1627 0x58,
      +
      1628 0x56,
      +
      1629 0x71,
      +
      1630 0x6a,
      +
      1631 0x6e,
      +
      1632 0x73,
      +
      1633 0x72,
      +
      1634 0x6b,
      +
      1635 0x70,
      +
      1636 0x74,
      +
      1637 0x6d,
      +
      1638 0x6c,
      +
      1639 0x84,
      +
      1640 0x76,
      +
      1641 0x7e,
      +
      1642 0x87,
      +
      1643 0x85,
      +
      1644 0x79,
      +
      1645 0x81,
      +
      1646 0x88,
      +
      1647 0x7b,
      +
      1648 0x7a,
      +
      1649 0x91,
      +
      1650 0x8a,
      +
      1651 0x8f,
      +
      1652 0x94,
      +
      1653 0x92,
      +
      1654 0x8b,
      +
      1655 0x90,
      +
      1656 0x95,
      +
      1657 0x8d,
      +
      1658 0x8c,
      +
      1659 0xa7,
      +
      1660 0x9b,
      +
      1661 0xa0,
      +
      1662 0xad,
      +
      1663 0xa9,
      +
      1664 0x9c,
      +
      1665 0xa4,
      +
      1666 0xb0,
      +
      1667 0x9e,
      +
      1668 0x9d,
      +
      1669 0xb9,
      +
      1670 0xb1,
      +
      1671 0xb6,
      +
      1672 0xbc,
      +
      1673 0xba,
      +
      1674 0xb2,
      +
      1675 0xb8,
      +
      1676 0xbe,
      +
      1677 0xb4,
      +
      1678 0xb3,
      +
      1679 0xcc,
      +
      1680 0xc2,
      +
      1681 0xc8,
      +
      1682 0xce,
      +
      1683 0xcd,
      +
      1684 0xc4,
      +
      1685 0xca,
      +
      1686 0xcf,
      +
      1687 0xc6,
      +
      1688 0xc5,
      +
      1689 0xde,
      +
      1690 0xd2,
      +
      1691 0xda,
      +
      1692 0xe4,
      +
      1693 0xe0,
      +
      1694 0xd5,
      +
      1695 0xdc,
      +
      1696 0xe5,
      +
      1697 0xd8,
      +
      1698 0xd6,
      +
      1699 0xee,
      +
      1700 0xe6,
      +
      1701 0xea,
      +
      1702 0xf0,
      +
      1703 0xef,
      +
      1704 0xe7,
      +
      1705 0xec,
      +
      1706 0xf2,
      +
      1707 0xe9,
      +
      1708 0xe8,
      +
      1709 0xff,
      +
      1710 0xf5,
      +
      1711 0xfb,
      +
      1712 0x102,
      +
      1713 0x100,
      +
      1714 0xf6,
      +
      1715 0xfd,
      +
      1716 0x104,
      +
      1717 0xf9,
      +
      1718 0xf7,
      +
      1719 0x117,
      +
      1720 0x10a,
      +
      1721 0x110,
      +
      1722 0x11e,
      +
      1723 0x119,
      +
      1724 0x10b,
      +
      1725 0x113,
      +
      1726 0x120,
      +
      1727 0x10e,
      +
      1728 0x10c,
      +
      1729 0x12b,
      +
      1730 0x123,
      +
      1731 0x127,
      +
      1732 0x131,
      +
      1733 0x12e,
      +
      1734 0x124,
      +
      1735 0x129,
      +
      1736 0x132,
      +
      1737 0x126,
      +
      1738 0x125,
      +
      1739 0x139,
      +
      1740 0x133,
      +
      1741 0x137,
      +
      1742 0x13b,
      +
      1743 0x13a,
      +
      1744 0x134,
      +
      1745 0x138,
      +
      1746 0x13c,
      +
      1747 0x136,
      +
      1748 0x135,
      +
      1749 0x149,
      +
      1750 0x13e,
      +
      1751 0x145,
      +
      1752 0x14c,
      +
      1753 0x14b,
      +
      1754 0x140,
      +
      1755 0x147,
      +
      1756 0x14d,
      +
      1757 0x143,
      +
      1758 0x141,
      +
      1759 0x15d,
      +
      1760 0x152,
      +
      1761 0x159,
      +
      1762 0x160,
      +
      1763 0x15f,
      +
      1764 0x153,
      +
      1765 0x15b,
      +
      1766 0x162,
      +
      1767 0x156,
      +
      1768 0x154,
      +
      1769 0x173,
      +
      1770 0x168,
      +
      1771 0x16f,
      +
      1772 0x177,
      +
      1773 0x175,
      +
      1774 0x16a,
      +
      1775 0x171,
      +
      1776 0x178,
      +
      1777 0x16d,
      +
      1778 0x16b,
      +
      1779 0x189,
      +
      1780 0x17b,
      +
      1781 0x182,
      +
      1782 0x191,
      +
      1783 0x18b,
      +
      1784 0x17e,
      +
      1785 0x186,
      +
      1786 0x193,
      +
      1787 0x180,
      +
      1788 0x17f,
      +
      1789 0x19d,
      +
      1790 0x194,
      +
      1791 0x198,
      +
      1792 0x19f,
      +
      1793 0x19e,
      +
      1794 0x195,
      +
      1795 0x19b,
      +
      1796 0x1a0,
      +
      1797 0x197,
      +
      1798 0x196,
      +
      1799 0x1a9,
      +
      1800 0x1a2,
      +
      1801 0x1a7,
      +
      1802 0x1ab,
      +
      1803 0x1aa,
      +
      1804 0x1a3,
      +
      1805 0x1a8,
      +
      1806 0x1ac,
      +
      1807 0x1a5,
      +
      1808 0x1a4,
      +
      1809 0x1b4,
      +
      1810 0x1ad,
      +
      1811 0x1b1,
      +
      1812 0x1b7,
      +
      1813 0x1b6,
      +
      1814 0x1ae,
      +
      1815 0x1b2,
      +
      1816 0x1b8,
      +
      1817 0x1b0,
      +
      1818 0x1af,
      +
      1819 0x1c5,
      +
      1820 0x1bd,
      +
      1821 0x1c2,
      +
      1822 0x1c7,
      +
      1823 0x1c6,
      +
      1824 0x1be,
      +
      1825 0x1c4,
      +
      1826 0x1c9,
      +
      1827 0x1c0,
      +
      1828 0x1bf,
      +
      1829 0x1d7,
      +
      1830 0x1cc,
      +
      1831 0x1d1,
      +
      1832 0x1d9,
      +
      1833 0x1d8,
      +
      1834 0x1cd,
      +
      1835 0x1d4,
      +
      1836 0x1da,
      +
      1837 0x1d0,
      +
      1838 0x1ce,
      +
      1839 0x3ed,
      +
      1840 0x275,
      +
      1841 0x500,
      +
      1842 0x4ef,
      +
      1843 0x3e2,
      +
      1844 0x350,
      +
      1845 0x1ea,
      +
      1846 0x1dd,
      +
      1847 0x1e3,
      +
      1848 0x201,
      +
      1849 0x1ef,
      +
      1850 0x1df,
      +
      1851 0x1e6,
      +
      1852 0x203,
      +
      1853 0x1e1,
      +
      1854 0x1e0,
      +
      1855 0x23f,
      +
      1856 0x22f,
      +
      1857 0x234,
      +
      1858 0x276,
      +
      1859 0x245,
      +
      1860 0x231,
      +
      1861 0x237,
      +
      1862 0x278,
      +
      1863 0x233,
      +
      1864 0x232,
      +
      1865 0x28b,
      +
      1866 0x27c,
      +
      1867 0x286,
      +
      1868 0x2a6,
      +
      1869 0x298,
      +
      1870 0x280,
      +
      1871 0x288,
      +
      1872 0x2aa,
      +
      1873 0x283,
      +
      1874 0x281,
      +
      1875 0x2c4,
      +
      1876 0x2b2,
      +
      1877 0x2be,
      +
      1878 0x2d9,
      +
      1879 0x2d1,
      +
      1880 0x2ba,
      +
      1881 0x2c0,
      +
      1882 0x2dc,
      +
      1883 0x2bd,
      +
      1884 0x2bb,
      +
      1885 0x2f3,
      +
      1886 0x2e1,
      +
      1887 0x2e8,
      +
      1888 0x309,
      +
      1889 0x2f8,
      +
      1890 0x2e2,
      +
      1891 0x2ec,
      +
      1892 0x30b,
      +
      1893 0x2e5,
      +
      1894 0x2e3,
      +
      1895 0x31a,
      +
      1896 0x30f,
      +
      1897 0x313,
      +
      1898 0x333,
      +
      1899 0x31e,
      +
      1900 0x310,
      +
      1901 0x315,
      +
      1902 0x334,
      +
      1903 0x312,
      +
      1904 0x311,
      +
      1905 0x348,
      +
      1906 0x337,
      +
      1907 0x340,
      +
      1908 0x354,
      +
      1909 0x34c,
      +
      1910 0x33b,
      +
      1911 0x343,
      +
      1912 0x355,
      +
      1913 0x33d,
      +
      1914 0x33c,
      +
      1915 0x367,
      +
      1916 0x358,
      +
      1917 0x363,
      +
      1918 0x36b,
      +
      1919 0x368,
      +
      1920 0x35f,
      +
      1921 0x364,
      +
      1922 0x36c,
      +
      1923 0x361,
      +
      1924 0x360,
      +
      1925 0x380,
      +
      1926 0x371,
      +
      1927 0x376,
      +
      1928 0x391,
      +
      1929 0x383,
      +
      1930 0x372,
      +
      1931 0x37a,
      +
      1932 0x394,
      +
      1933 0x374,
      +
      1934 0x373,
      +
      1935 0x39d,
      +
      1936 0x395,
      +
      1937 0x39a,
      +
      1938 0x3a0,
      +
      1939 0x39e,
      +
      1940 0x396,
      +
      1941 0x39c,
      +
      1942 0x3a2,
      +
      1943 0x398,
      +
      1944 0x397,
      +
      1945 0x3ae,
      +
      1946 0x3a3,
      +
      1947 0x3aa,
      +
      1948 0x3b4,
      +
      1949 0x3b3,
      +
      1950 0x3a6,
      +
      1951 0x3ac,
      +
      1952 0x3b5,
      +
      1953 0x3a8,
      +
      1954 0x3a7,
      +
      1955 0x3d7,
      +
      1956 0x3ba,
      +
      1957 0x3ca,
      +
      1958 0x3f3,
      +
      1959 0x3dc,
      +
      1960 0x3c4,
      +
      1961 0x3ce,
      +
      1962 0x3f8,
      +
      1963 0x3c7,
      +
      1964 0x3c5,
      +
      1965 0x408,
      +
      1966 0x3fb,
      +
      1967 0x403,
      +
      1968 0x412,
      +
      1969 0x40f,
      +
      1970 0x400,
      +
      1971 0x406,
      +
      1972 0x415,
      +
      1973 0x402,
      +
      1974 0x401,
      +
      1975 0x430,
      +
      1976 0x41a,
      +
      1977 0x424,
      +
      1978 0x455,
      +
      1979 0x43e,
      +
      1980 0x41e,
      +
      1981 0x428,
      +
      1982 0x459,
      +
      1983 0x422,
      +
      1984 0x41f,
      +
      1985 0x474,
      +
      1986 0x461,
      +
      1987 0x469,
      +
      1988 0x488,
      +
      1989 0x47b,
      +
      1990 0x463,
      +
      1991 0x46e,
      +
      1992 0x48b,
      +
      1993 0x466,
      +
      1994 0x464,
      +
      1995 0x49c,
      +
      1996 0x48c,
      +
      1997 0x494,
      +
      1998 0x4b5,
      +
      1999 0x4aa,
      +
      2000 0x491,
      +
      2001 0x496,
      +
      2002 0x4b6,
      +
      2003 0x493,
      +
      2004 0x492,
      +
      2005 0x4be,
      +
      2006 0x4b8,
      +
      2007 0x4bc,
      +
      2008 0x4c0,
      +
      2009 0x4bf,
      +
      2010 0x4b9,
      +
      2011 0x4bd,
      +
      2012 0x4c2,
      +
      2013 0x4bb,
      +
      2014 0x4ba,
      +
      2015 0x4e2,
      +
      2016 0x4c7,
      +
      2017 0x4d7,
      +
      2018 0x4f3,
      +
      2019 0x4eb,
      +
      2020 0x4d1,
      +
      2021 0x4da,
      +
      2022 0x4f8,
      +
      2023 0x4d4,
      +
      2024 0x4d2,
      +
      2025 0x51b,
      +
      2026 0x4fb,
      +
      2027 0x50d,
      +
      2028 0x53a,
      +
      2029 0x525,
      +
      2030 0x4fe,
      +
      2031 0x512,
      +
      2032 0x541,
      +
      2033 0x503,
      +
      2034 0x4ff,
      +
      2035 0x55a,
      +
      2036 0x54c,
      +
      2037 0x554,
      +
      2038 0x570,
      +
      2039 0x568,
      +
      2040 0x54f,
      +
      2041 0x557,
      +
      2042 0x571,
      +
      2043 0x552,
      +
      2044 0x550,
      +
      2045 0x587,
      +
      2046 0x576,
      +
      2047 0x57f,
      +
      2048 0x599,
      +
      2049 0x58e,
      +
      2050 0x57b,
      +
      2051 0x584,
      +
      2052 0x59d,
      +
      2053 0x57d,
      +
      2054 0x57c,
      +
      2055 0x5ac,
      +
      2056 0x5a0,
      +
      2057 0x5a5,
      +
      2058 0x5b7,
      +
      2059 0x5ae,
      +
      2060 0x5a2,
      +
      2061 0x5a8,
      +
      2062 0x5b8,
      +
      2063 0x5a4,
      +
      2064 0x5a3,
      +
      2065 0x5c2,
      +
      2066 0x5b9,
      +
      2067 0x5be,
      +
      2068 0x5c5,
      +
      2069 0x5c3,
      +
      2070 0x5ba,
      +
      2071 0x5bf,
      +
      2072 0x5c6,
      +
      2073 0x5bc,
      +
      2074 0x5bb,
      +
      2075 0x5d0,
      +
      2076 0x5c7,
      +
      2077 0x5cc,
      +
      2078 0x5d7,
      +
      2079 0x5d5,
      +
      2080 0x5c8,
      +
      2081 0x5cd,
      +
      2082 0x5d8,
      +
      2083 0x5ca,
      +
      2084 0x5c9,
      +
      2085 0x5e5,
      +
      2086 0x5db,
      +
      2087 0x5e1,
      +
      2088 0x5e8,
      +
      2089 0x5e7,
      +
      2090 0x5dd,
      +
      2091 0x5e3,
      +
      2092 0x5eb,
      +
      2093 0x5df,
      +
      2094 0x5de,
      +
      2095 0x5f8,
      +
      2096 0x5ed,
      +
      2097 0x5f2,
      +
      2098 0x5fb,
      +
      2099 0x5fa,
      +
      2100 0x5ee,
      +
      2101 0x5f5,
      +
      2102 0x5fc,
      +
      2103 0x5f1,
      +
      2104 0x5ef,
      +
      2105 0x3cb,
      +
      2106 0x5ab,
      +
      2107 0x4d8,
      +
      2108 0x420,
      +
      2109 0x37c,
      +
      2110 0x28a,
      +
      2111 0x4ab,
      +
      2112 0x2ae,
      +
      2113 0x5e4,
      +
      2114 0x272,
      +
      2115 0x514,
      +
      2116 0x49,
      +
      2117 0x2ca,
      +
      2118 0x58f,
      +
      2119 0x2a2,
      +
      2120 0x483,
      +
      2121 0x3be,
      +
      2122 0x440,
      +
      2123 0x51f,
      +
      2124 0x4df,
      +
      2125 0x3fa,
      +
      2126 0x2c1,
      +
      2127 0x4a9,
      +
      2128 0x545,
      +
      2129 0x546,
      +
      2130 0x1e4,
      +
      2131 0x409,
      +
      2132 0x48f,
      +
      2133 0x40b,
      +
      2134 0x289,
      +
      2135 0x544,
      +
      2136 0x484,
      +
      2137 0x4ca,
      +
      2138 0x324,
      +
      2139 0x322,
      +
      2140 0x35a,
      +
      2141 0x32a,
      +
      2142 0x38e,
      +
      2143 0xd,
      +
      2144 0x2,
      +
      2145 0x8,
      +
      2146 0x14,
      +
      2147 0x16,
      +
      2148 0x13,
      +
      2149 0x0,
      +
      2150 0x2e,
      +
      2151 0x60,
      +
      2152 0x53,
      +
      2153 0x59,
      +
      2154 0x68,
      +
      2155 0xa6,
      +
      2156 0x9a,
      +
      2157 0x9f,
      +
      2158 0xaf,
      +
      2159 0x51,
      +
      2160 0x101,
      +
      2161 0x116,
      +
      2162 0x109,
      +
      2163 0x10f,
      +
      2164 0x11d,
      +
      2165 0x11f,
      +
      2166 0x566,
      +
      2167 0x11c,
      +
      2168 0x188,
      +
      2169 0x17a,
      +
      2170 0x181,
      +
      2171 0x192,
      +
      2172 0x1bc,
      +
      2173 0x164,
      +
      2174 0x54b,
      +
      2175 0x1e9,
      +
      2176 0x1dc,
      +
      2177 0x1e2,
      +
      2178 0x200,
      +
      2179 0x202,
      +
      2180 0x1fd,
      +
      2181 0x1e7,
      +
      2182 0x284,
      +
      2183 0x2f2,
      +
      2184 0x2e0,
      +
      2185 0x2e7,
      +
      2186 0x30a,
      +
      2187 0x37f,
      +
      2188 0x370,
      +
      2189 0x375,
      +
      2190 0x393,
      +
      2191 0x308,
      +
      2192 0x454,
      +
      2193 0x473,
      +
      2194 0x460,
      +
      2195 0x468,
      +
      2196 0x487,
      +
      2197 0x48a,
      +
      2198 0x2cb,
      +
      2199 0x485,
      +
      2200 0x586,
      +
      2201 0x575,
      +
      2202 0x57e,
      +
      2203 0x59c,
      +
      2204 0x5da,
      +
      2205 0x564,
      +
      2206 0x5ea,
      +
      2207 0x10,
      +
      2208 0x1ee,
      +
      2209 0x4,
      +
      2210 0x1de,
      +
      2211 0x12,
      +
      2212 0x1f8,
      +
      2213 0x27,
      +
      2214 0x27b,
      +
      2215 0x2f,
      +
      2216 0x285,
      +
      2217 0x31,
      +
      2218 0x287,
      +
      2219 0x2c,
      +
      2220 0x282,
      +
      2221 0x40,
      +
      2222 0x2bc,
      +
      2223 0x4b,
      +
      2224 0x2d8,
      +
      2225 0x62,
      +
      2226 0x2f7,
      +
      2227 0x5c,
      +
      2228 0x2eb,
      +
      2229 0x64,
      +
      2230 0x2ff,
      +
      2231 0x57,
      +
      2232 0x2e4,
      +
      2233 0x7d,
      +
      2234 0x33f,
      +
      2235 0x78,
      +
      2236 0x33a,
      +
      2237 0x80,
      +
      2238 0x342,
      +
      2239 0x7c,
      +
      2240 0x33e,
      +
      2241 0x8e,
      +
      2242 0x362,
      +
      2243 0x93,
      +
      2244 0x36a,
      +
      2245 0xac,
      +
      2246 0x390,
      +
      2247 0xa8,
      +
      2248 0x382,
      +
      2249 0xaa,
      +
      2250 0x38c,
      +
      2251 0xa3,
      +
      2252 0x387,
      +
      2253 0x388,
      +
      2254 0x97,
      +
      2255 0x381,
      +
      2256 0xb5,
      +
      2257 0x399,
      +
      2258 0xc7,
      +
      2259 0x3a9,
      +
      2260 0x3af,
      +
      2261 0xd1,
      +
      2262 0x3b9,
      +
      2263 0xd9,
      +
      2264 0x3c8,
      +
      2265 0xd7,
      +
      2266 0x3c6,
      +
      2267 0xe1,
      +
      2268 0x3dd,
      +
      2269 0xe2,
      +
      2270 0x3f0,
      +
      2271 0xf4,
      +
      2272 0x419,
      +
      2273 0xfa,
      +
      2274 0x423,
      +
      2275 0xf8,
      +
      2276 0x421,
      +
      2277 0x41c,
      +
      2278 0x50,
      +
      2279 0x2fd,
      +
      2280 0x118,
      +
      2281 0x47a,
      +
      2282 0x112,
      +
      2283 0x46c,
      +
      2284 0x105,
      +
      2285 0x470,
      +
      2286 0x13d,
      +
      2287 0x4c6,
      +
      2288 0x144,
      +
      2289 0x4d5,
      +
      2290 0x142,
      +
      2291 0x4d3,
      +
      2292 0x151,
      +
      2293 0x4fa,
      +
      2294 0x158,
      +
      2295 0x50c,
      +
      2296 0x157,
      +
      2297 0x506,
      +
      2298 0x155,
      +
      2299 0x502,
      +
      2300 0x16e,
      +
      2301 0x553,
      +
      2302 0x16c,
      +
      2303 0x551,
      +
      2304 0x176,
      +
      2305 0x56f,
      +
      2306 0x190,
      +
      2307 0x598,
      +
      2308 0x18a,
      +
      2309 0x58d,
      +
      2310 0x17d,
      +
      2311 0x57a,
      +
      2312 0x18f,
      +
      2313 0x597,
      +
      2314 0x184,
      +
      2315 0x581,
      +
      2316 0x18c,
      +
      2317 0x590,
      +
      2318 0x1a6,
      +
      2319 0x5bd,
      +
      2320 0x1c1,
      +
      2321 0x5e0,
      +
      2322 0x1c8,
      +
      2323 0x1cb,
      +
      2324 0x5ec,
      +
      2325 0x1d3,
      +
      2326 0x5f4,
      +
      2327 0x1cf,
      +
      2328 0x5f0,
      +
      2329 0x31f,
      +
      2330 0x10d,
      +
      2331 0x465,
      +
      2332 0x336,
      +
      2333 0x507,
      +
      2334 0x50a,
      +
      2335 0x508,
      +
      2336 0x50b,
      +
      2337 0x509,
      +
      2338 0x1fc,
      +
      2339 0x290,
      +
      2340 0x27f,
      +
      2341 0x271,
      +
      2342 0x2d3,
      +
      2343 0x4e7,
      +
      2344 0x471,
      +
      2345 0x565,
      +
      2346 0x2b9,
      +
      2347 0x1,
      +
      2348 0x52,
      +
      2349 0x4e,
      +
      2350 0x99,
      +
      2351 0x108,
      +
      2352 0x179,
      +
      2353 0x106,
      +
      2354 0x378,
      +
      2355 0xc,
      +
      2356 0xf,
      +
      2357 0x20,
      +
      2358 0x21,
      +
      2359 0x77,
      +
      2360 0x83,
      +
      2361 0x205,
      +
      2362 0x45,
      +
      2363 0x46,
      +
      2364 0x204,
      +
      2365 0x5f,
      +
      2366 0x65,
      +
      2367 0x1d5,
      +
      2368 0x1d6,
      +
      2369 0x4f,
      +
      2370 0x66,
      +
      2371 0x165,
      +
      2372 0x174,
      +
      2373 0x20c,
      +
      2374 0xa5,
      +
      2375 0xab,
      +
      2376 0xc3,
      +
      2377 0xcb,
      +
      2378 0xd3,
      +
      2379 0xdd,
      +
      2380 0x206,
      +
      2381 0xed,
      +
      2382 0xf1,
      +
      2383 0xfe,
      +
      2384 0x103,
      +
      2385 0x1b3,
      +
      2386 0x1b5,
      +
      2387 0x20e,
      +
      2388 0x115,
      +
      2389 0x11b,
      +
      2390 0x12a,
      +
      2391 0x12d,
      +
      2392 0x209,
      +
      2393 0x148,
      +
      2394 0x14a,
      +
      2395 0x15c,
      +
      2396 0x15e,
      +
      2397 0x20b,
      +
      2398 0x169,
      +
      2399 0x172,
      +
      2400 0x187,
      +
      2401 0x18d,
      +
      2402 0x18e,
      +
      2403 0x20d,
      +
      2404 0x121,
      +
      2405 0x12c,
      +
      2406 0x208,
      +
      2407 0x34,
      +
      2408 0xc0,
      +
      2409 0x122,
      +
      2410 0x130,
      +
      2411 0x20a,
      +
      2412 0x107,
      +
      2413 0x11a,
      +
      2414 0x207,
      +
      2415 0xa2,
      +
      2416 0x185,
      +
      2417 0x1db,
      +
      2418 0x2df,
      +
      2419 0x2ee,
      +
      2420 0x36f,
      +
      2421 0x582,
      +
      2422 0x1e8,
      +
      2423 0x1ed,
      +
      2424 0x20f,
      +
      2425 0x210,
      +
      2426 0x23c,
      +
      2427 0x23e,
      +
      2428 0x217,
      +
      2429 0x338,
      +
      2430 0x347,
      +
      2431 0x212,
      +
      2432 0x2c2,
      +
      2433 0x2c3,
      +
      2434 0x213,
      +
      2435 0x214,
      +
      2436 0x215,
      +
      2437 0x2f1,
      +
      2438 0x300,
      +
      2439 0x301,
      +
      2440 0x22e,
      +
      2441 0x5f6,
      +
      2442 0x5f7,
      +
      2443 0x216,
      +
      2444 0x2ef,
      +
      2445 0x307,
      +
      2446 0x22a,
      +
      2447 0x55c,
      +
      2448 0x55d,
      +
      2449 0x560,
      +
      2450 0x219,
      +
      2451 0x37e,
      +
      2452 0x38d,
      +
      2453 0x21a,
      +
      2454 0x3a4,
      +
      2455 0x3ad,
      +
      2456 0x21c,
      +
      2457 0x3bc,
      +
      2458 0x3d6,
      +
      2459 0x21d,
      +
      2460 0x407,
      +
      2461 0x413,
      +
      2462 0x21e,
      +
      2463 0x42f,
      +
      2464 0x456,
      +
      2465 0x22d,
      +
      2466 0x5cf,
      +
      2467 0x5d3,
      +
      2468 0x472,
      +
      2469 0x47d,
      +
      2470 0x222,
      +
      2471 0x49b,
      +
      2472 0x4a3,
      +
      2473 0x225,
      +
      2474 0x4e1,
      +
      2475 0x4e5,
      +
      2476 0x228,
      +
      2477 0x518,
      +
      2478 0x521,
      +
      2479 0x522,
      +
      2480 0x227,
      +
      2481 0x51a,
      +
      2482 0x520,
      +
      2483 0x229,
      +
      2484 0x54e,
      +
      2485 0x559,
      +
      2486 0x22c,
      +
      2487 0x585,
      +
      2488 0x592,
      +
      2489 0x594,
      +
      2490 0x220,
      +
      2491 0x49d,
      +
      2492 0x49e,
      +
      2493 0x49f,
      +
      2494 0x211,
      +
      2495 0x28e,
      +
      2496 0x3b1,
      +
      2497 0x224,
      +
      2498 0x4b3,
      +
      2499 0x4b4,
      +
      2500 0x476,
      +
      2501 0x47c,
      +
      2502 0x379,
      +
      2503 0x583,
      +
      2504 0x45f,
      +
      2505 0x574,
      +
      2506 0x21f,
      +
      2507 0x475,
      +
      2508 0x22b,
      +
      2509 0x55e,
      +
      2510 0x55f,
      +
      2511 0x593,
      +
      2512 0x221,
      +
      2513 0x4a0,
      +
      2514 0x223,
      +
      2515 0x4a4,
      +
      2516 0x218,
      +
      2517 0x339,
      +
      2518 0x21b,
      +
      2519 0x3a5,
      +
      2520 0x226,
      +
      2521 0x4e6,
      +
      2522 0x98,
      +
      2523 0x39,
      +
      2524 0x75,
      +
      2525 0xbd,
      +
      2526 0x3a,
      +
      2527 0xae,
      +
      2528 0x1ba,
      +
      2529 0xbb,
      +
      2530 0xd0,
      +
      2531 0xf3,
      +
      2532 0x166,
      +
      2533 0xc1,
      +
      2534 0x17c,
      +
      2535 0x3b,
      +
      2536 0xa,
      +
      2537 0x1e,
      +
      2538 0x199,
      +
      2539 0x7f,
      +
      2540 0x43,
      +
      2541 0x96,
      +
      2542 0x1ca,
      +
      2543 0x1d2,
      +
      2544 0xa1,
      +
      2545 0xb7,
      +
      2546 0xc9,
      +
      2547 0xdb,
      +
      2548 0xeb,
      +
      2549 0xfc,
      +
      2550 0x111,
      +
      2551 0x128,
      +
      2552 0x146,
      +
      2553 0x15a,
      +
      2554 0x170,
      +
      2555 0x183,
      +
      2556 0x6f,
      +
      2557 0xbf,
      +
      2558 0x167,
      +
      2559 0x26,
      +
      2560 0x14f,
      +
      2561 0x14e,
      +
      2562 0x89,
      +
      2563 0x1c3,
      +
      2564 0x150,
      +
      2565 0x5b,
      +
      2566 0x1bb,
      +
      2567 0x1b9,
      +
      2568 0x1e5,
      +
      2569 0x236,
      +
      2570 0x5a6,
      +
      2571 0x341,
      +
      2572 0x2bf,
      +
      2573 0x37b,
      +
      2574 0x5f9,
      +
      2575 0x5f3,
      +
      2576 0x377,
      +
      2577 0x39b,
      +
      2578 0x3ab,
      +
      2579 0x3cc,
      +
      2580 0x404,
      +
      2581 0x426,
      +
      2582 0x46a,
      +
      2583 0x495,
      +
      2584 0x4d9,
      +
      2585 0x510,
      +
      2586 0x555,
      +
      2587 0x580,
      +
      2588 0x314,
      +
      2589 0x3b0,
      +
      2590 0x56d,
      +
      2591 0x28c,
      +
      2592 0x51e,
      +
      2593 0x51d,
      +
      2594 0x35c,
      +
      2595 0x5e2,
      +
      2596 0x527,
      +
      2597 0x2ea,
      +
      2598 0x5e9,
      +
      2599 0x5dc,
      +
      2600 0x38b,
      +
      2601 0x2cd,
      +
      2602 0x34a,
      +
      2603 0x3a1,
      +
      2604 0x2d7,
      +
      2605 0x392,
      +
      2606 0x5e6,
      +
      2607 0x39f,
      +
      2608 0x3db,
      +
      2609 0x435,
      +
      2610 0x56e,
      +
      2611 0x3b2,
      +
      2612 0x579,
      +
      2613 0x2dd,
      +
      2614 0x5e,
      +
      2615 0x2ed,
      +
      2616 0x114,
      +
      2617 0x46f,
      +
      2618 0x2fe,
      +
      2619 0x2fa,
      +
      2620 0x2fb,
      +
      2621 0x2fc,
      +
      2622 0x45a,
      +
      2623 0x4b7,
      +
      2624 0x561,
      +
      2625 0x359,
      +
      2626 0x5fe,
      +
      2627 0x5fd,
      +
      2628 0x3e9,
      +
      2629 0x4ea,
      +
      2630 0x2b7,
      +
      2631 0x427,
      +
      2632 0x405,
      +
      2633 0x369,
      +
      2634 0x19c,
      +
      2635 0x3ee,
      +
      2636 0x4f1,
      +
      2637 0x4f0,
      +
      2638 0x3ef,
      +
      2639 0x4fd,
      +
      2640 0x3cf,
      +
      2641 0x4dc,
      +
      2642 0x4db,
      +
      2643 0x238,
      +
      2644 0x3d0,
      +
      2645 0x2b3,
      +
      2646 0x3d,
      +
      2647 0x277,
      +
      2648 0x438,
      +
      2649 0x366,
      +
      2650 0x40e,
      +
      2651 0x499,
      +
      2652 0x4ae,
      +
      2653 0x5af,
      +
      2654 0x12f,
      +
      2655 0x56a,
      +
      2656 0x270,
      +
      2657 0x3ea,
      +
      2658 0x4ed,
      +
      2659 0x479,
      +
      2660 0x27e,
      +
      2661 0x36d,
      +
      2662 0x331,
      +
      2663 0x30c,
      +
      2664 0x556,
      +
      2665 0x4a,
      +
      2666 0x385,
      +
      2667 0x35b,
      +
      2668 0x4a5,
      +
      2669 0x384,
      +
      2670 0x3bb,
      +
      2671 0x2f5,
      +
      2672 0x458,
      +
      2673 0x2a3,
      +
      2674 0x5c1,
      +
      2675 0x4dd,
      +
      2676 0x4f9,
      +
      2677 0x56b,
      +
      2678 0x477,
      +
      2679 0x1f7,
      +
      2680 0x23b,
      +
      2681 0x4a1,
      +
      2682 0x482,
      +
      2683 0x1eb,
      +
      2684 0x1ec,
      +
      2685 0x23d,
      +
      2686 0x349,
      +
      2687 0x2b4,
      +
      2688 0x323,
      +
      2689 0x328,
      +
      2690 0x325,
      +
      2691 0x329,
      +
      2692 0x32b,
      +
      2693 0x32d,
      +
      2694 0x326,
      +
      2695 0x32e,
      +
      2696 0x327,
      +
      2697 0x32c,
      +
      2698 0x32f,
      +
      2699 0x330,
      +
      2700 0x3bf,
      +
      2701 0x577,
      +
      2702 0x4cb,
      +
      2703 0x2b5,
      +
      2704 0x35d,
      +
      2705 0x5d1,
      +
      2706 0x5d2,
      +
      2707 0x5a1,
      +
      2708 0x45d,
      +
      2709 0x42a,
      +
      2710 0x2d4,
      +
      2711 0x2ce,
      +
      2712 0x437,
      +
      2713 0x446,
      +
      2714 0x4d0,
      +
      2715 0xd4,
      +
      2716 0x13f,
      +
      2717 0x3c3,
      +
      2718 0x4cf,
      +
      2719 0x3fe,
      +
      2720 0x3c1,
      +
      2721 0x4cd,
      +
      2722 0x3c2,
      +
      2723 0x4ce,
      +
      2724 0x35e,
      +
      2725 0x433,
      +
      2726 0x3eb,
      +
      2727 0x4ee,
      +
      2728 0x2a4,
      +
      2729 0x2a9,
      +
      2730 0x2ad,
      +
      2731 0x478,
      +
      2732 0x481,
      +
      2733 0x3d9,
      +
      2734 0x3d8,
      +
      2735 0x589,
      +
      2736 0x588,
      +
      2737 0x4e4,
      +
      2738 0x4e3,
      +
      2739 0x2c6,
      +
      2740 0x2c5,
      +
      2741 0x4e8,
      +
      2742 0x3e7,
      +
      2743 0x3c0,
      +
      2744 0x578,
      +
      2745 0x4cc,
      +
      2746 0x2b6,
      +
      2747 0x3e8,
      +
      2748 0x4e9,
      +
      2749 0x436,
      +
      2750 0x432,
      +
      2751 0x445,
      +
      2752 0x3b7,
      +
      2753 0x5d4,
      +
      2754 0x573,
      +
      2755 0x4c5,
      +
      2756 0x5d6,
      +
      2757 0x2b1,
      +
      2758 0x357,
      +
      2759 0x37d,
      +
      2760 0x59e,
      +
      2761 0x3b6,
      +
      2762 0x4c4,
      +
      2763 0x320,
      +
      2764 0x29d,
      +
      2765 0x490,
      +
      2766 0x30e,
      +
      2767 0x42c,
      +
      2768 0x2f9,
      +
      2769 0x418,
      +
      2770 0x38f,
      +
      2771 0x441,
      +
      2772 0x302,
      +
      2773 0x434,
      +
      2774 0x23a,
      +
      2775 0x4b0,
      +
      2776 0x1f0,
      +
      2777 0x2a1,
      +
      2778 0x4fc,
      +
      2779 0x540,
      +
      2780 0x40c,
      +
      2781 0x410,
      +
      2782 0x4a8,
      +
      2783 0x516,
      +
      2784 0x535,
      +
      2785 0x3e1,
      +
      2786 0x29e,
      +
      2787 0x4c8,
      +
      2788 0x4b1,
      +
      2789 0x5b0,
      +
      2790 0x386,
      +
      2791 0x1f4,
      +
      2792 0x1f3,
      +
      2793 0x1f5,
      +
      2794 0x1f6,
      +
      2795 0x40a,
      +
      2796 0x43f,
      +
      2797 0x48e,
      +
      2798 0x52a,
      +
      2799 0x442,
      +
      2800 0x44d,
      +
      2801 0x1f2,
      +
      2802 0x480,
      +
      2803 0x27d,
      +
      2804 0x2ab,
      +
      2805 0x389,
      +
      2806 0x2a0,
      +
      2807 0x55b,
      +
      2808 0x239,
      +
      2809 0x523,
      +
      2810 0x563,
      +
      2811 0x273,
      +
      2812 0x5c4,
      +
      2813 0x44b,
      +
      2814 0x524,
      +
      2815 0x44c,
      +
      2816 0x29f,
      +
      2817 0x425,
      +
      2818 0x1f9,
      +
      2819 0x1ff,
      +
      2820 0x562,
      +
      2821 0x41b,
      +
      2822 0x1fa,
      +
      2823 0x235,
      +
      2824 0x279,
      +
      2825 0x27a,
      +
      2826 0x306,
      +
      2827 0x2de,
      +
      2828 0x2f0,
      +
      2829 0x305,
      +
      2830 0x29a,
      +
      2831 0x2e9,
      +
      2832 0x2e6,
      +
      2833 0x296,
      +
      2834 0x5c0,
      +
      2835 0x56c,
      +
      2836 0x429,
      +
      2837 0x304,
      +
      2838 0x42b,
      +
      2839 0x3d1,
      +
      2840 0x3d3,
      +
      2841 0x344,
      +
      2842 0x346,
      +
      2843 0x3b8,
      +
      2844 0x335,
      +
      2845 0x3de,
      +
      2846 0x3df,
      +
      2847 0x3f9,
      +
      2848 0x34d,
      +
      2849 0x34e,
      +
      2850 0x356,
      +
      2851 0xe3,
      +
      2852 0x86,
      +
      2853 0x572,
      +
      2854 0x43b,
      +
      2855 0x431,
      +
      2856 0x439,
      +
      2857 0x43a,
      +
      2858 0x42d,
      +
      2859 0x42e,
      +
      2860 0x3ec,
      +
      2861 0x352,
      +
      2862 0x3d5,
      +
      2863 0x34b,
      +
      2864 0x4ac,
      +
      2865 0x501,
      +
      2866 0x2ac,
      +
      2867 0x4ad,
      +
      2868 0x504,
      +
      2869 0x505,
      +
      2870 0x4b2,
      +
      2871 0x50f,
      +
      2872 0x443,
      +
      2873 0x449,
      +
      2874 0x53b,
      +
      2875 0x543,
      +
      2876 0x44e,
      +
      2877 0x451,
      +
      2878 0x53c,
      +
      2879 0x53d,
      +
      2880 0x547,
      +
      2881 0x548,
      +
      2882 0x44f,
      +
      2883 0x450,
      +
      2884 0x452,
      +
      2885 0x453,
      +
      2886 0x53e,
      +
      2887 0x53f,
      +
      2888 0x5b2,
      +
      2889 0x5b3,
      +
      2890 0x549,
      +
      2891 0x54a,
      +
      2892 0x5b4,
      +
      2893 0x5b5,
      +
      2894 0x591,
      +
      2895 0x52d,
      +
      2896 0x52f,
      +
      2897 0x52e,
      +
      2898 0x530,
      +
      2899 0x52b,
      +
      2900 0x52c,
      +
      2901 0x47f,
      +
      2902 0x47e,
      +
      2903 0x489,
      +
      2904 0x486,
      +
      2905 0x46d,
      +
      2906 0x467,
      +
      2907 0x462,
      +
      2908 0x46b,
      +
      2909 0x4a7,
      +
      2910 0x40d,
      +
      2911 0x567,
      +
      2912 0x513,
      +
      2913 0x5a7,
      +
      2914 0x2b8,
      +
      2915 0x569,
      +
      2916 0x246,
      +
      2917 0x49a,
      +
      2918 0x411,
      +
      2919 0x59f,
      +
      2920 0x19a,
      +
      2921 0x1a1,
      +
      2922 0x45c,
      +
      2923 0x45b,
      +
      2924 0x417,
      +
      2925 0x416,
      +
      2926 0x5ad,
      +
      2927 0x5b1,
      +
      2928 0x3f6,
      +
      2929 0x4f6,
      +
      2930 0x414,
      +
      2931 0x38a,
      +
      2932 0x5a9,
      +
      2933 0x230,
      +
      2934 0x2c7,
      +
      2935 0x511,
      +
      2936 0x537,
      +
      2937 0x2cc,
      +
      2938 0x247,
      +
      2939 0x3f4,
      +
      2940 0x4f4,
      +
      2941 0x3f2,
      +
      2942 0x4f2,
      +
      2943 0x274,
      +
      2944 0x2af,
      +
      2945 0x2b0,
      +
      2946 0x161,
      +
      2947 0x163,
      +
      2948 0x29,
      +
      2949 0x38,
      +
      2950 0x321,
      +
      2951 0x3cd,
      +
      2952 0x351,
      +
      2953 0xdf,
      +
      2954 0x82,
      +
      2955 0x3d2,
      +
      2956 0x345,
      +
      2957 0x2f6,
      +
      2958 0x2f4,
      +
      2959 0x2a7,
      +
      2960 0x2a8,
      +
      2961 0x444,
      +
      2962 0x44a,
      +
      2963 0x3e0,
      +
      2964 0x34f,
      +
      2965 0x4af,
      +
      2966 0x50e,
      +
      2967 0x43c,
      +
      2968 0x447,
      +
      2969 0x43d,
      +
      2970 0x448,
      +
      2971 0x5aa,
      +
      2972 0x19,
      +
      2973 0x3c9,
      +
      2974 0x4d6,
      +
      2975 0x3d4,
      +
      2976 0x4e0,
      +
      2977 0x2d6,
      +
      2978 0x2d0,
      +
      2979 0x596,
      +
      2980 0x58c,
      +
      2981 0x558,
      +
      2982 0x54d,
      +
      2983 0x58b,
      +
      2984 0x595,
      +
      2985 0x2cf,
      +
      2986 0x2d5,
      +
      2987 0x332,
      +
      2988 0x519,
      +
      2989 0x526,
      +
      2990 0x536,
      +
      2991 0x3bd,
      +
      2992 0x4c9,
      +
      2993 0x240,
      +
      2994 0x45e,
      +
      2995 0x260,
      +
      2996 0x269,
      +
      2997 0x25f,
      +
      2998 0x25e,
      +
      2999 0x268,
      +
      3000 0x267,
      +
      3001 0x26f,
      +
      3002 0x26e,
      +
      3003 0x263,
      +
      3004 0x264,
      +
      3005 0x26d,
      +
      3006 0x24c,
      +
      3007 0x255,
      +
      3008 0x25d,
      +
      3009 0x24b,
      +
      3010 0x249,
      +
      3011 0x25c,
      +
      3012 0x24a,
      +
      3013 0x248,
      +
      3014 0x266,
      +
      3015 0x254,
      +
      3016 0x252,
      +
      3017 0x265,
      +
      3018 0x253,
      +
      3019 0x251,
      +
      3020 0x26c,
      +
      3021 0x25b,
      +
      3022 0x258,
      +
      3023 0x26b,
      +
      3024 0x25a,
      +
      3025 0x257,
      +
      3026 0x24f,
      +
      3027 0x261,
      +
      3028 0x24d,
      +
      3029 0x250,
      +
      3030 0x262,
      +
      3031 0x24e,
      +
      3032 0x26a,
      +
      3033 0x259,
      +
      3034 0x256,
      +
      3035 0x58a,
      +
      3036 0x3da,
      +
      3037 0x244,
      +
      3038 0x242,
      +
      3039 0x241,
      +
      3040 0x243,
      +
      3041 0x533,
      +
      3042 0x531,
      +
      3043 0x532,
      +
      3044 0x534,
      +
      3045 0x4de,
      +
      3046 0x3ff,
      +
      3047 0x5d9,
      +
      3048 0x59b,
      +
      3049 0x59a,
      +
      3050 0x4f7,
      +
      3051 0x4f5,
      +
      3052 0x5ce,
      +
      3053 0x2db,
      +
      3054 0x2da,
      +
      3055 0x3f7,
      +
      3056 0x3f5,
      +
      3057 0x2c8,
      +
      3058 0x3e3,
      +
      3059 0x28f,
      +
      3060 0x5cb,
      +
      3061 0x291,
      +
      3062 0x293,
      +
      3063 0x294,
      +
      3064 0x292,
      +
      3065 0x295,
      +
      3066 0x539,
      +
      3067 0x538,
      +
      3068 0x4a2,
      +
      3069 0x316,
      +
      3070 0x3fc,
      +
      3071 0x529,
      +
      3072 0x297,
      +
      3073 0x365,
      +
      3074 0x2c9,
      +
      3075 0x542,
      +
      3076 0x31c,
      +
      3077 0x41d,
      +
      3078 0x51c,
      +
      3079 0x28d,
      +
      3080 0x2a5,
      +
      3081 0x3fd,
      +
      3082 0x3e5,
      +
      3083 0x3e4,
      +
      3084 0x517,
      +
      3085 0x318,
      +
      3086 0x31b,
      +
      3087 0x31d,
      +
      3088 0x317,
      +
      3089 0x319,
      +
      3090 };
      +
      3092}
      +
      + + + + diff --git a/string_8h_source.html b/string_8h_source.html deleted file mode 100644 index 008a7e25b..000000000 --- a/string_8h_source.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -stdex: include/stdex/string.h Source File - - - - - - - - - -
      -
      - - - - - - -
      -
      stdex -
      -
      Additional custom or not Standard C++ covered algorithms
      -
      -
      - - - - - - - - -
      -
      - - -
      -
      -
      -
      -
      -
      Loading...
      -
      Searching...
      -
      No Matches
      -
      -
      -
      -
      - - -
      -
      -
      string.h
      -
      -
      -
      1/*
      -
      2 SPDX-License-Identifier: MIT
      -
      3 Copyright © 2016-2023 Amebis
      -
      4*/
      -
      5
      -
      6#pragma once
      -
      7
      -
      8#include "sal.h"
      -
      9
      -
      10namespace stdex
      -
      11{
      -
      19 template <class T>
      -
      20 inline size_t strlen(_In_z_ const T* str)
      -
      21 {
      -
      22 size_t i;
      -
      23 for (i = 0; str[i]; i++);
      -
      24 return i;
      -
      25 }
      -
      26
      -
      36 template <class T>
      -
      37 inline const T* strnchr(
      -
      38 _In_reads_or_z_(count) const T* str,
      -
      39 _In_ T chr,
      -
      40 _In_ size_t count)
      -
      41 {
      -
      42 for (size_t i = 0; i < count && str[i]; i++)
      -
      43 if (str[i] == chr) return str + i;
      -
      44 return NULL;
      -
      45 }
      -
      46
      -
      56 template <class T>
      -
      57 inline size_t crlf2nl(_Out_writes_z_(strlen(src)) T* dst, _In_z_ const T* src)
      -
      58 {
      -
      59 size_t i, j;
      -
      60 for (i = j = 0; src[j];) {
      -
      61 if (src[j] != (T)'\r' || src[j + 1] != (T)'\n')
      -
      62 dst[i++] = src[j++];
      -
      63 else {
      -
      64 dst[i++] = (T)'\n';
      -
      65 j += 2;
      -
      66 }
      -
      67 }
      -
      68 dst[i] = (T)0;
      -
      69 return i;
      -
      70 }
      -
      71}
      -
      - - - - diff --git a/string_8hpp_source.html b/string_8hpp_source.html new file mode 100644 index 000000000..4af623311 --- /dev/null +++ b/string_8hpp_source.html @@ -0,0 +1,553 @@ + + + + + + + +stdex: include/stdex/string.hpp Source File + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      string.hpp
      +
      +
      +
      1/*
      +
      2 SPDX-License-Identifier: MIT
      +
      3 Copyright © 2016-2023 Amebis
      +
      4*/
      +
      5
      +
      6#pragma once
      +
      7
      +
      8#include "sal.hpp"
      +
      9#include <assert.h>
      +
      10#include <ctype.h>
      +
      11#include <stdint.h>
      +
      12#include <stdexcept>
      +
      13
      +
      14namespace stdex
      +
      15{
      +
      19#ifdef _WIN32
      +
      20 typedef wchar_t utf16_t;
      +
      21#else
      +
      22 typedef char16_t utf16_t;
      +
      23#endif
      +
      24
      +
      30 inline bool is_high_surrogate(_In_ utf16_t chr)
      +
      31 {
      +
      32 return 0xd800 < chr && chr < 0xdc00;
      +
      33 }
      +
      34
      +
      40 inline bool is_low_surrogate(_In_ utf16_t chr)
      +
      41 {
      +
      42 return 0xdc00 < chr && chr < 0xe000;
      +
      43 }
      +
      44
      +
      50 inline bool is_surrogate_pair(_In_reads_(2) const utf16_t* str)
      +
      51 {
      +
      52 return is_high_surrogate(str[0]) && is_low_surrogate(str[1]);
      +
      53 }
      +
      54
      +
      60 inline char32_t surrogate_pair_to_ucs4(_In_reads_(2) const utf16_t* str)
      +
      61 {
      +
      62 assert(is_surrogate_pair(str));
      +
      63 return
      +
      64 ((char32_t)(str[0] - 0xd800) << 10) +
      +
      65 (char32_t)(str[1] - 0xdc00) +
      +
      66 0x10000;
      +
      67 }
      +
      68
      +
      74 inline void ucs4_to_surrogate_pair(_Out_writes_(2) utf16_t* str, _In_ char32_t chr)
      +
      75 {
      +
      76 assert(chr >= 0x10000);
      +
      77 chr -= 0x10000;
      +
      78 str[0] = 0xd800 + (char32_t)((chr >> 10) & 0x3ff);
      +
      79 str[1] = 0xdc00 + (char32_t)(chr & 0x3ff);
      +
      80 }
      +
      81
      +
      87 inline bool iscombining(_In_ char32_t chr)
      +
      88 {
      +
      89 return
      +
      90 0x0300 <= chr && chr < 0x0370 ||
      +
      91 0x1dc0 <= chr && chr < 0x1e00 ||
      +
      92 0x20d0 <= chr && chr < 0x2100 ||
      +
      93 0xfe20 <= chr && chr < 0xfe30;
      +
      94 }
      +
      95
      +
      101 template <class T>
      +
      102 inline size_t islbreak(_In_ T chr)
      +
      103 {
      +
      104 return chr == '\n' || chr == '\r';
      +
      105 }
      +
      106
      +
      113 template <class T>
      +
      114 inline size_t islbreak(_In_reads_or_z_(count) const T* chr, _In_ size_t count)
      +
      115 {
      +
      116 if (count >= 2 && (chr[0] == '\r' && chr[1] == '\n' || chr[0] == '\n' && chr[1] == '\r'))
      +
      117 return 2;
      +
      118 if (count > 1 && (chr[0] == '\n' || chr[0] == '\r'))
      +
      119 return 1;
      +
      120 return 0;
      +
      121 }
      +
      122
      +
      129 inline size_t glyphlen(_In_reads_or_z_(count) const wchar_t* glyph, size_t count)
      +
      130 {
      +
      131 if (count) {
      +
      132#ifdef _WIN32
      +
      133 size_t i = count < 2 || !is_surrogate_pair(glyph) ? 1 : 2;
      +
      134#else
      +
      135 size_t i = 1;
      +
      136#endif
      +
      137 for (; i < count && iscombining(glyph[i]); ++i);
      +
      138 return i;
      +
      139 }
      +
      140 return 0;
      +
      141 }
      +
      142
      +
      150 template <class T>
      +
      151 inline size_t strlen(_In_z_ const T* str)
      +
      152 {
      +
      153 assert(str);
      +
      154 size_t i;
      +
      155 for (i = 0; str[i]; ++i);
      +
      156 return i;
      +
      157 }
      +
      158
      +
      167 template <class T>
      +
      168 inline size_t strnlen(_In_z_ const T* str, _In_ size_t count)
      +
      169 {
      +
      170 assert(str);
      +
      171 size_t i;
      +
      172 for (i = 0; i < count && str[i]; ++i);
      +
      173 return i;
      +
      174 }
      +
      175
      +
      185 template <class T>
      +
      186 inline const T* strnchr(
      +
      187 _In_reads_or_z_(count) const T* str,
      +
      188 _In_ T chr,
      +
      189 _In_ size_t count)
      +
      190 {
      +
      191 assert(str || !count);
      +
      192 for (size_t i = 0; i < count && str[i]; ++i)
      +
      193 if (str[i] == chr) return str + i;
      +
      194 return nullptr;
      +
      195 }
      +
      196
      +
      206 template <class T>
      +
      207 inline const T* strnichr(
      +
      208 _In_reads_or_z_(count) const T* str,
      +
      209 _In_ T chr,
      +
      210 _In_ size_t count,
      +
      211 _In_ const std::locale& locale)
      +
      212 {
      +
      213 assert(str || !count);
      +
      214 const auto& ctype = std::use_facet<std::ctype<T>>(locale);
      +
      215 chr = ctype.tolower(chr);
      +
      216 for (size_t i = 0; i < count && str[i]; ++i)
      +
      217 if (ctype.tolower(str[i]) == chr) return str + i;
      +
      218 return nullptr;
      +
      219 }
      +
      220
      +
      231 template <class T1, class T2>
      +
      232 inline int strncmp(
      +
      233 _In_reads_or_z_(count1) const T1* str1, _In_ size_t count1,
      +
      234 _In_reads_or_z_(count2) const T2* str2, _In_ size_t count2)
      +
      235 {
      +
      236 assert(str1 || !count1);
      +
      237 assert(str2 || !count2);
      +
      238 size_t i; T1 a; T2 b;
      +
      239 for (i = 0; i < count1 && i < count2 && ((a = str1[i]) | (b = str2[i])); ++i) {
      +
      240 if (a > b) return +1;
      +
      241 if (a < b) return -1;
      +
      242 }
      +
      243 if (i < count1 && str1[i]) return +1;
      +
      244 if (i < count2 && str2[i]) return -1;
      +
      245 return 0;
      +
      246 }
      +
      247
      +
      258 template <class T1, class T2>
      +
      259 inline int strnicmp(
      +
      260 _In_reads_or_z_(count1) const T1* str1, _In_ size_t count1,
      +
      261 _In_reads_or_z_(count2) const T2* str2, _In_ size_t count2,
      +
      262 _In_ const std::locale& locale)
      +
      263 {
      +
      264 assert(str1 || !count1);
      +
      265 assert(str2 || !count2);
      +
      266 size_t i; T1 a; T2 b;
      +
      267 const auto& ctype1 = std::use_facet<std::ctype<T1>>(locale);
      +
      268 const auto& ctype2 = std::use_facet<std::ctype<T2>>(locale);
      +
      269 for (i = 0; i < count1 && i < count2 && ((a = ctype1.tolower(str1[i])) | (b = ctype2.tolower(str2[i]))); i++) {
      +
      270 if (a > b) return +1;
      +
      271 if (a < b) return -1;
      +
      272 }
      +
      273 if (i < count1 && str1[i]) return +1;
      +
      274 if (i < count2 && str2[i]) return -1;
      +
      275 return 0;
      +
      276 }
      +
      277
      +
      287 template <class T1, class T2>
      +
      288 const T1* strnstr(
      +
      289 _In_reads_or_z_(count) const T1* str,
      +
      290 _In_z_ const T2* sample,
      +
      291 _In_ size_t count)
      +
      292 {
      +
      293 assert(str || !count);
      +
      294 assert(sample);
      +
      295 for (size_t offset = 0;; ++offset) {
      +
      296 for (size_t i = offset, j = 0;; ++i, ++j) {
      +
      297 if (!sample[j])
      +
      298 return str + offset;
      +
      299 if (i >= count || !str[i])
      +
      300 return nullptr;
      +
      301 if (str[i] != sample[j])
      +
      302 break;
      +
      303 }
      +
      304 }
      +
      305 }
      +
      306
      +
      316 template <class T1, class T2>
      +
      317 inline const T1* strnistr(
      +
      318 _In_reads_or_z_(count) const T1* str,
      +
      319 _In_z_ const T2* sample,
      +
      320 _In_ size_t count,
      +
      321 _In_ const std::locale& locale)
      +
      322 {
      +
      323 assert(str || !count);
      +
      324 assert(sample);
      +
      325 const auto& ctype1 = std::use_facet<std::ctype<T1>>(locale);
      +
      326 const auto& ctype2 = std::use_facet<std::ctype<T2>>(locale);
      +
      327 for (size_t offset = 0;; ++offset) {
      +
      328 for (size_t i = offset, j = 0;; ++i, ++j) {
      +
      329 if (!sample[j])
      +
      330 return str + offset;
      +
      331 if (i >= count || !str[i])
      +
      332 return nullptr;
      +
      333 if (ctype1.tolower(str[i]) != ctype2.tolower(sample[j]))
      +
      334 break;
      +
      335 }
      +
      336 }
      +
      337 }
      +
      338
      +
      348 template <class T>
      +
      349 inline size_t crlf2nl(_Out_writes_z_(strlen(src)) T* dst, _In_z_ const T* src)
      +
      350 {
      +
      351 assert(dst);
      +
      352 assert(src);
      +
      353 size_t i, j;
      +
      354 for (i = j = 0; src[j];) {
      +
      355 if (src[j] != '\r' || src[j + 1] != '\n')
      +
      356 dst[i++] = src[j++];
      +
      357 else {
      +
      358 dst[i++] = '\n';
      +
      359 j += 2;
      +
      360 }
      +
      361 }
      +
      362 dst[i] = 0;
      +
      363 return i;
      +
      364 }
      +
      365
      +
      367 template <class T, class T_bin>
      +
      368 inline T_bin strtoint(
      +
      369 _In_reads_or_z_(count) const T* str, _In_ size_t count,
      +
      370 _Out_opt_ size_t* end,
      +
      371 _In_ int radix,
      +
      372 _Out_ uint8_t& flags)
      +
      373 {
      +
      374 assert(str || !count);
      +
      375 assert(radix == 0 || 2 <= radix && radix <= 36);
      +
      376
      +
      377 size_t i = 0;
      +
      378 T_bin value = 0, digit,
      +
      379 max_ui = (T_bin)-1,
      +
      380 max_ui_pre1, max_ui_pre2;
      +
      381
      +
      382 flags = 0;
      +
      383
      +
      384 // Skip leading spaces.
      +
      385 for (;; ++i) {
      +
      386 if (i >= count || !str[i]) goto error;
      +
      387 if (!isspace(str[i])) break;
      +
      388 }
      +
      389
      +
      390 // Read the sign.
      +
      391 if (str[i] == '+') {
      +
      392 flags &= ~0x01;
      +
      393 ++i;
      +
      394 if (i >= count || !str[i]) goto error;
      +
      395 }
      +
      396 else if (str[i] == '-') {
      +
      397 flags |= 0x01;
      +
      398 ++i;
      +
      399 if (i >= count || !str[i]) goto error;
      +
      400 }
      +
      401
      +
      402 if (radix == 16) {
      +
      403 // On hexadecimal, allow leading 0x.
      +
      404 if (str[i] == '0' && i + 1 < count && (str[i + 1] == 'x' || str[i + 1] == 'X')) {
      +
      405 i += 2;
      +
      406 if (i >= count || !str[i]) goto error;
      +
      407 }
      +
      408 }
      +
      409 else if (!radix) {
      +
      410 // Autodetect radix.
      +
      411 if (str[i] == '0') {
      +
      412 ++i;
      +
      413 if (i >= count || !str[i]) goto error;
      +
      414 if (str[i] == 'x' || str[i] == 'X') {
      +
      415 radix = 16;
      +
      416 ++i;
      +
      417 if (i >= count || !str[i]) goto error;
      +
      418 }
      +
      419 else
      +
      420 radix = 8;
      +
      421 }
      +
      422 else
      +
      423 radix = 10;
      +
      424 }
      +
      425
      +
      426 // We have the radix.
      +
      427 max_ui_pre1 = max_ui / (T_bin)radix;
      +
      428 max_ui_pre2 = max_ui % (T_bin)radix;
      +
      429 for (;;) {
      +
      430 if ('0' <= str[i] && str[i] <= '9')
      +
      431 digit = (T_bin)str[i] - '0';
      +
      432 else if ('A' <= str[i] && str[i] <= 'Z')
      +
      433 digit = (T_bin)str[i] - 'A' + '\x0a';
      +
      434 else if ('a' <= str[i] && str[i] <= 'z')
      +
      435 digit = (T_bin)str[i] - 'a' + '\x0a';
      +
      436 else
      +
      437 goto error;
      +
      438 if (digit >= (T_bin)radix)
      +
      439 goto error;
      +
      440
      +
      441 if (value < max_ui_pre1 || // Multiplication nor addition will not overflow.
      +
      442 value == max_ui_pre1 && digit <= max_ui_pre2) // Small digits will not overflow.
      +
      443 value = value * (T_bin)radix + digit;
      +
      444 else {
      +
      445 // Overflow!
      +
      446 flags |= 0x02;
      +
      447 }
      +
      448
      +
      449 ++i;
      +
      450 if (i >= count || !str[i])
      +
      451 goto error;
      +
      452 }
      +
      453
      +
      454 error:
      +
      455 if (end) *end = i;
      +
      456 return value;
      +
      457 }
      +
      459
      +
      470 template <class T, class T_bin>
      +
      471 T_bin strtoint(
      +
      472 _In_reads_or_z_(count) const T* str, _In_ size_t count,
      +
      473 _Out_opt_ size_t* end,
      +
      474 _In_ int radix)
      +
      475 {
      +
      476 uint8_t flags;
      +
      477 T_bin value;
      +
      478
      +
      479 switch (sizeof(T_bin)) {
      +
      480 case 1:
      +
      481 value = (T_bin)strtoint<T, uint8_t>(str, count, end, radix, flags);
      +
      482 if ((flags & 0x01) && (value & 0x80)) {
      +
      483 // Sign bit is 1 => overflow.
      +
      484 flags |= 0x02;
      +
      485 }
      +
      486 return (flags & 0x02) ?
      +
      487 (flags & 0x01) ? (T_bin)0x80 : (T_bin)0x7f :
      +
      488 (flags & 0x01) ? -value : value;
      +
      489
      +
      490 case 2:
      +
      491 value = (T_bin)strtoint<T, T_U2>(str, count, end, radix, flags);
      +
      492 if ((flags & 0x01) && (value & 0x8000)) {
      +
      493 // Sign bit is 1 => overflow.
      +
      494 flags |= 0x02;
      +
      495 }
      +
      496 return (flags & 0x02) ?
      +
      497 (flags & 0x01) ? (T_bin)0x8000 : (T_bin)0x7fff :
      +
      498 (flags & 0x01) ? -value : value;
      +
      499
      +
      500 case 4:
      +
      501 value = (T_bin)strtoint<T, uint32_t>(str, count, end, radix, flags);
      +
      502 if ((flags & 0x01) && (value & 0x80000000)) {
      +
      503 // Sign bit is 1 => overflow.
      +
      504 flags |= 0x02;
      +
      505 }
      +
      506 return (flags & 0x02) ?
      +
      507 (flags & 0x01) ? (T_bin)0x80000000 : (T_bin)0x7fffffff :
      +
      508 (flags & 0x01) ? -value : value;
      +
      509
      +
      510 case 8:
      +
      511 value = (T_bin)strtoint<T, uint64_t>(str, count, end, radix, flags);
      +
      512 if ((flags & 0x01) && (value & 0x8000000000000000)) {
      +
      513 // Sign bit is 1 => overflow.
      +
      514 flags |= 0x02;
      +
      515 }
      +
      516 return (flags & 0x02) ?
      +
      517 (flags & 0x01) ? (T_bin)0x8000000000000000 : (T_bin)0x7fffffffffffffff :
      +
      518 (flags & 0x01) ? -value : value;
      +
      519
      +
      520 default:
      +
      521 throw std::invalid_argument("Unsupported bit length");
      +
      522 }
      +
      523 }
      +
      524
      +
      535 template <class T, class T_bin>
      +
      536 inline T_bin strtouint(
      +
      537 _In_reads_or_z_(count) const T* str,
      +
      538 _In_ size_t count,
      +
      539 _Out_opt_ size_t* end,
      +
      540 _In_ int radix)
      +
      541 {
      +
      542 uint8_t flags;
      +
      543 T_bin value;
      +
      544
      +
      545 switch (sizeof(T_bin)) {
      +
      546 case 1: value = (T_bin)strtoint<T, uint8_t>(str, count, end, radix, flags); break;
      +
      547 case 2: value = (T_bin)strtoint<T, uint16_t>(str, count, end, radix, flags); break;
      +
      548 case 4: value = (T_bin)strtoint<T, uint32_t>(str, count, end, radix, flags); break;
      +
      549 case 8: value = (T_bin)strtoint<T, uint64_t>(str, count, end, radix, flags); break;
      +
      550 default: throw std::invalid_argument("Unsupported bit length");
      +
      551 }
      +
      552
      +
      553 return (flags & 0x02) ?
      +
      554 (flags & 0x01) ? (T_bin)0 : (T_bin)-1 :
      +
      555 (flags & 0x01) ? ~value : value;
      +
      556 }
      +
      557
      +
      568 template <class T>
      +
      569 inline int32_t strto32(
      +
      570 _In_reads_or_z_(count) const T* str, _In_ size_t count,
      +
      571 _Out_opt_ size_t* end,
      +
      572 _In_ int radix)
      +
      573 {
      +
      574 return strtoint<T, int32_t>(str, count, end, radix);
      +
      575 }
      +
      576
      +
      587 template <class T>
      +
      588 inline int64_t strto64(
      +
      589 _In_reads_or_z_(count) const T* str, _In_ size_t count,
      +
      590 _Out_opt_ size_t* end,
      +
      591 _In_ int radix)
      +
      592 {
      +
      593 return strtoint<T, int64_t>(str, count, end, radix);
      +
      594 }
      +
      595
      +
      607 template <class T>
      +
      608 inline intptr_t strtoi(
      +
      609 _In_reads_or_z_(count) const T* str, _In_ size_t count,
      +
      610 _Out_opt_ size_t* end,
      +
      611 _In_ int radix)
      +
      612 {
      +
      613#if defined(_WIN64) || defined(__LP64__)
      +
      614 return (intptr_t)strto64(str, count, end, radix);
      +
      615#else
      +
      616 return (intptr_t)strto32(str, count, end, radix);
      +
      617#endif
      +
      618 }
      +
      619
      +
      630 template <class T>
      +
      631 inline uint32_t strtou32(
      +
      632 _In_reads_or_z_(count) const T* str, _In_ size_t count,
      +
      633 _Out_opt_ size_t* end,
      +
      634 _In_ int radix)
      +
      635 {
      +
      636 return strtouint<T, uint32_t>(str, count, end, radix);
      +
      637 }
      +
      638
      +
      649 template <class T>
      +
      650 inline uint64_t strtou64(
      +
      651 _In_reads_or_z_(count) const T* str, _In_ size_t count,
      +
      652 _Out_opt_ size_t* end,
      +
      653 _In_ int radix)
      +
      654 {
      +
      655 return strtouint<T, uint64_t>(str, count, end, radix);
      +
      656 }
      +
      657
      +
      669 template <class T>
      +
      670 inline size_t strtoui(
      +
      671 _In_reads_or_z_(count) const T* str, _In_ size_t count,
      +
      672 _Out_opt_ size_t* end,
      +
      673 _In_ int radix)
      +
      674 {
      +
      675#if defined(_WIN64) || defined(__LP64__)
      +
      676 return (size_t)strtou64(str, count, end, radix);
      +
      677#else
      +
      678 return (size_t)strtou32(str, count, end, radix);
      +
      679#endif
      +
      680 }
      +
      681}
      +
      + + + + diff --git a/structstdex_1_1interval-members.html b/structstdex_1_1interval-members.html index 48143aa7e..2cdd104c5 100644 --- a/structstdex_1_1interval-members.html +++ b/structstdex_1_1interval-members.html @@ -80,17 +80,18 @@ $(function() {

      This is the complete list of members for stdex::interval< T >, including all inherited members.

      - - - - - - - + + + + + + + +
      endstdex::interval< T >
      interval() noexceptstdex::interval< T >inline
      interval(T x) noexceptstdex::interval< T >inline
      interval(T _start, T _end) noexceptstdex::interval< T >inline
      operator bool() conststdex::interval< T >inline
      size() conststdex::interval< T >inline
      startstdex::interval< T >
      empty() conststdex::interval< T >inline
      endstdex::interval< T >
      interval() noexceptstdex::interval< T >inline
      interval(T x) noexceptstdex::interval< T >inline
      interval(T _start, T _end) noexceptstdex::interval< T >inline
      operator bool() conststdex::interval< T >inline
      size() conststdex::interval< T >inline
      startstdex::interval< T >
      diff --git a/structstdex_1_1interval.html b/structstdex_1_1interval.html index 41e6d2352..2ac850b95 100644 --- a/structstdex_1_1interval.html +++ b/structstdex_1_1interval.html @@ -85,7 +85,7 @@ $(function() {

      Numerical interval. More...

      -

      #include <stdex/interval.h>

      +

      #include <stdex/interval.hpp>

      @@ -102,6 +102,9 @@ Public Member Functions + + + @@ -205,6 +208,36 @@ template<class T >

      Member Function Documentation

      + +

      ◆ empty()

      + +
      +
      +
      +template<class T >
      +

      Public Member Functions

      size () const
       Returns interval size.
       
      bool empty () const
       Is interval empty?
       
       operator bool () const
       Is interval valid?
       
      + + + + +
      + + + + + + + +
      bool stdex::interval< T >::empty () const
      +
      +inline
      +
      + +

      Is interval empty?

      +
      Returns
      true if interval is empty or false otherwise
      + +
      +

      ◆ operator bool()

      @@ -266,12 +299,12 @@ template<class T >
      The documentation for this struct was generated from the following file: diff --git a/structstdex_1_1mapping-members.html b/structstdex_1_1mapping-members.html new file mode 100644 index 000000000..b60502b19 --- /dev/null +++ b/structstdex_1_1mapping-members.html @@ -0,0 +1,96 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      stdex::mapping< T > Member List
      +
      +
      + +

      This is the complete list of members for stdex::mapping< T >, including all inherited members.

      + + + + + + + + +
      from (defined in stdex::mapping< T >)stdex::mapping< T >
      mapping() (defined in stdex::mapping< T >)stdex::mapping< T >inline
      mapping(T x) (defined in stdex::mapping< T >)stdex::mapping< T >inline
      mapping(T _from, T _to) (defined in stdex::mapping< T >)stdex::mapping< T >inline
      operator!= (defined in stdex::mapping< T >)stdex::mapping< T >friend
      operator== (defined in stdex::mapping< T >)stdex::mapping< T >friend
      to (defined in stdex::mapping< T >)stdex::mapping< T >
      + + + + diff --git a/structstdex_1_1mapping.html b/structstdex_1_1mapping.html new file mode 100644 index 000000000..2dc277e18 --- /dev/null +++ b/structstdex_1_1mapping.html @@ -0,0 +1,130 @@ + + + + + + + +stdex: stdex::mapping< T > Struct Template Reference + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      + +
      stdex::mapping< T > Struct Template Reference
      +
      +
      + +

      Maps index in source string to index in destination string. + More...

      + +

      #include <stdex/mapping.hpp>

      + + + + + + +

      +Public Member Functions

      mapping (T x)
       
      mapping (T _from, T _to)
       
      + + + + + +

      +Public Attributes

      +T from
       
      +T to
       
      + + + + + +

      +Friends

      +bool operator== (stdex::mapping< T > const &a, stdex::mapping< T > const &b) noexcept
       
      +bool operator!= (stdex::mapping< T > const &a, stdex::mapping< T > const &b) noexcept
       
      +

      Detailed Description

      +
      template<class T>
      +struct stdex::mapping< T >

      Maps index in source string to index in destination string.

      +

      The documentation for this struct was generated from the following file: +
      + + + + diff --git a/structstdex_1_1no__delete-members.html b/structstdex_1_1no__delete-members.html new file mode 100644 index 000000000..50bf8486a --- /dev/null +++ b/structstdex_1_1no__delete-members.html @@ -0,0 +1,92 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      stdex::no_delete< T > Member List
      +
      +
      + +

      This is the complete list of members for stdex::no_delete< T >, including all inherited members.

      + + + + +
      no_delete() noexcept=default (defined in stdex::no_delete< T >)stdex::no_delete< T >
      no_delete(const no_delete< T2 > &) noexcept (defined in stdex::no_delete< T >)stdex::no_delete< T >inline
      operator()(T *p) const noexcept (defined in stdex::no_delete< T >)stdex::no_delete< T >inline
      + + + + diff --git a/structstdex_1_1no__delete.html b/structstdex_1_1no__delete.html new file mode 100644 index 000000000..6f18e7156 --- /dev/null +++ b/structstdex_1_1no__delete.html @@ -0,0 +1,111 @@ + + + + + + + +stdex: stdex::no_delete< T > Struct Template Reference + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      + +
      stdex::no_delete< T > Struct Template Reference
      +
      +
      + +

      Noop deleter. + More...

      + +

      #include <stdex/memory.hpp>

      + + + + + + + +

      +Public Member Functions

      +template<class T2 , std::enable_if_t< std::is_convertible_v< T2 *, T * >, int > = 0>
       no_delete (const no_delete< T2 > &) noexcept
       
      +void operator() (T *p) const noexcept
       
      +

      Detailed Description

      +
      template<class T>
      +struct stdex::no_delete< T >

      Noop deleter.

      +

      The documentation for this struct was generated from the following file: +
      + + + + diff --git a/structstdex_1_1no__delete_3_01_t_0f_0e_4-members.html b/structstdex_1_1no__delete_3_01_t_0f_0e_4-members.html new file mode 100644 index 000000000..cf670f6e0 --- /dev/null +++ b/structstdex_1_1no__delete_3_01_t_0f_0e_4-members.html @@ -0,0 +1,92 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      stdex::no_delete< T[]> Member List
      +
      +
      + +

      This is the complete list of members for stdex::no_delete< T[]>, including all inherited members.

      + + + + +
      no_delete() noexcept=default (defined in stdex::no_delete< T[]>)stdex::no_delete< T[]>
      no_delete(const no_delete< _Uty[]> &) noexcept (defined in stdex::no_delete< T[]>)stdex::no_delete< T[]>inline
      operator()(_Uty *p) const noexcept (defined in stdex::no_delete< T[]>)stdex::no_delete< T[]>inline
      + + + + diff --git a/structstdex_1_1no__delete_3_01_t_0f_0e_4.html b/structstdex_1_1no__delete_3_01_t_0f_0e_4.html new file mode 100644 index 000000000..f374e42f5 --- /dev/null +++ b/structstdex_1_1no__delete_3_01_t_0f_0e_4.html @@ -0,0 +1,112 @@ + + + + + + + +stdex: stdex::no_delete< T[]> Struct Template Reference + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      + +
      stdex::no_delete< T[]> Struct Template Reference
      +
      +
      + +

      Noop array deleter. + More...

      + +

      #include <stdex/memory.hpp>

      + + + + + + + + +

      +Public Member Functions

      +template<class _Uty , std::enable_if_t< std::is_convertible_v< _Uty(*)[], T(*)[]>, int > = 0>
       no_delete (const no_delete< _Uty[]> &) noexcept
       
      +template<class _Uty , std::enable_if_t< std::is_convertible_v< _Uty(*)[], T(*)[]>, int > = 0>
      void operator() (_Uty *p) const noexcept
       
      +

      Detailed Description

      +
      template<class T>
      +struct stdex::no_delete< T[]>

      Noop array deleter.

      +

      The documentation for this struct was generated from the following file: +
      + + + + diff --git a/structstdex_1_1parser_1_1http__factor__more-members.html b/structstdex_1_1parser_1_1http__factor__more-members.html new file mode 100644 index 000000000..1b95cb135 --- /dev/null +++ b/structstdex_1_1parser_1_1http__factor__more-members.html @@ -0,0 +1,90 @@ + + + + + + + +stdex: Member List + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      +
      stdex::parser::http_factor_more< T > Member List
      +
      +
      + +

      This is the complete list of members for stdex::parser::http_factor_more< T >, including all inherited members.

      + + +
      operator()(const T &a, const T &b) const noexcept (defined in stdex::parser::http_factor_more< T >)stdex::parser::http_factor_more< T >inline
      + + + + diff --git a/structstdex_1_1parser_1_1http__factor__more.html b/structstdex_1_1parser_1_1http__factor__more.html new file mode 100644 index 000000000..6d4feb0b7 --- /dev/null +++ b/structstdex_1_1parser_1_1http__factor__more.html @@ -0,0 +1,99 @@ + + + + + + + +stdex: stdex::parser::http_factor_more< T > Struct Template Reference + + + + + + + + + +
      +
      + + + + + + +
      +
      stdex +
      +
      Additional custom or not Standard C++ covered algorithms
      +
      +
      + + + + + + + + +
      +
      + + +
      +
      +
      +
      +
      +
      Loading...
      +
      Searching...
      +
      No Matches
      +
      +
      +
      +
      + + +
      +
      + +
      stdex::parser::http_factor_more< T > Struct Template Reference
      +
      +
      + + + + +

      +Public Member Functions

      +constexpr bool operator() (const T &a, const T &b) const noexcept
       
      +
      The documentation for this struct was generated from the following file: +
      + + + + diff --git a/vector__queue_8h_source.html b/vector__queue_8hpp_source.html similarity index 97% rename from vector__queue_8h_source.html rename to vector__queue_8hpp_source.html index 0065287b8..20a7e5b5c 100644 --- a/vector__queue_8h_source.html +++ b/vector__queue_8hpp_source.html @@ -5,7 +5,7 @@ -stdex: include/stdex/vector_queue.h Source File +stdex: include/stdex/vector_queue.hpp Source File @@ -74,7 +74,7 @@ $(function() {
      -
      vector_queue.h
      +
      vector_queue.hpp
      1/*
      @@ -84,7 +84,7 @@ $(function() {
      5
      6#pragma once
      7
      -
      8#include "sal.h"
      +
      8#include "sal.hpp"
      9
      10namespace stdex
      11{
      @@ -343,50 +343,50 @@ $(function() {
      415 };
      416}
      -
      Helper class to allow limited size FIFO queues implemented as vector of elements.
      Definition: vector_queue.h:17
      -
      vector_queue< value_type > & operator=(const vector_queue< value_type > &other)
      Copies existing queue.
      Definition: vector_queue.h:112
      -
      const T * const_pointer
      Constant pointer to element.
      Definition: vector_queue.h:47
      -
      bool empty() const
      Tests if the queue is empty.
      Definition: vector_queue.h:181
      -
      size_type tail() const
      Returns absolute subscript or position number of the last element in the queue. The element must exis...
      Definition: vector_queue.h:396
      -
      reference operator[](size_type pos)
      Returns a reference to the element at a specified location in the queue.
      Definition: vector_queue.h:202
      -
      vector_queue(const vector_queue< value_type > &other)
      Copies existing queue.
      Definition: vector_queue.h:68
      -
      value_type * m_data
      Underlying data container.
      Definition: vector_queue.h:411
      -
      size_t size_type
      Type to measure element count and indices in.
      Definition: vector_queue.h:22
      -
      T & reference
      Reference to element type.
      Definition: vector_queue.h:32
      -
      const_reference back() const
      Returns a constant reference to the last element in the queue.
      Definition: vector_queue.h:380
      -
      vector_queue(vector_queue< value_type > &&other)
      Moves existing queue.
      Definition: vector_queue.h:94
      -
      reference back()
      Returns a reference to the last element in the queue.
      Definition: vector_queue.h:372
      -
      size_type push_back(value_type &&v)
      Moves the element to the end of the queue, overriding the first one when queue is out of space.
      Definition: vector_queue.h:285
      -
      size_type head() const
      Returns absolute subscript or position number of the head element in the queue. The element does not ...
      Definition: vector_queue.h:388
      -
      size_type m_count
      Number of elements.
      Definition: vector_queue.h:413
      -
      virtual ~vector_queue()
      Destroys the queue.
      Definition: vector_queue.h:84
      -
      reference front()
      Returns a reference to the head element in the queue.
      Definition: vector_queue.h:354
      -
      size_type m_size_max
      Maximum size.
      Definition: vector_queue.h:414
      -
      vector_queue< value_type > & operator=(vector_queue< value_type > &&other)
      Moves existing queue.
      Definition: vector_queue.h:136
      -
      reference at_abs(size_type pos)
      Returns a reference to the element at the absolute location in the queue.
      Definition: vector_queue.h:237
      -
      void clear()
      Erases the elements of the queue.
      Definition: vector_queue.h:173
      -
      const_reference front() const
      Returns a constant reference to the head element in the queue.
      Definition: vector_queue.h:363
      -
      vector_queue(size_type size_max)
      Construct queue of fixed size.
      Definition: vector_queue.h:55
      -
      T value_type
      Element type.
      Definition: vector_queue.h:27
      -
      size_type push_back(const value_type &v)
      Copies an existing element to the end of the queue, overriding the first one when queue is out of spa...
      Definition: vector_queue.h:263
      -
      void pop_back()
      Removes (dequeues) the last element of the queue.
      Definition: vector_queue.h:303
      -
      size_type m_head
      Index of the first element.
      Definition: vector_queue.h:412
      -
      T * pointer
      Pointer to element.
      Definition: vector_queue.h:42
      -
      const_reference at(size_type pos) const
      Returns a constant reference to the element at a specified location in the queue.
      Definition: vector_queue.h:213
      -
      const_reference operator[](size_type pos) const
      Returns a constant reference to the element at a specified location in the queue.
      Definition: vector_queue.h:224
      -
      size_type size() const
      Returns the number of elements in the vector.
      Definition: vector_queue.h:157
      -
      void pop_front()
      Removes (dequeues) the head element of the queue.
      Definition: vector_queue.h:344
      -
      size_type capacity() const
      Returns the number of elements that the queue can contain before overwriting head ones.
      Definition: vector_queue.h:165
      -
      size_type push_front(const value_type &v)
      Copies an existing element to the head of the queue, overriding the last one when queue is out of spa...
      Definition: vector_queue.h:316
      -
      reference at(size_type pos)
      Returns a reference to the element at a specified location in the queue.
      Definition: vector_queue.h:191
      -
      size_type abs(size_type pos) const
      Returns absolute subscript or position number of the given element in the queue.
      Definition: vector_queue.h:405
      -
      size_type push_front(value_type &&v)
      Moves the element to the head of the queue, overriding the last one when queue is out of space and mo...
      Definition: vector_queue.h:332
      -
      const T & const_reference
      Constant reference to element type.
      Definition: vector_queue.h:37
      -
      const_reference at_abs(size_type pos) const
      Returns a constant reference to the element at the absolute location in the queue: measured from the ...
      Definition: vector_queue.h:250
      +
      Helper class to allow limited size FIFO queues implemented as vector of elements.
      Definition: vector_queue.hpp:17
      +
      vector_queue< value_type > & operator=(const vector_queue< value_type > &other)
      Copies existing queue.
      Definition: vector_queue.hpp:112
      +
      const T * const_pointer
      Constant pointer to element.
      Definition: vector_queue.hpp:47
      +
      bool empty() const
      Tests if the queue is empty.
      Definition: vector_queue.hpp:181
      +
      size_type tail() const
      Returns absolute subscript or position number of the last element in the queue. The element must exis...
      Definition: vector_queue.hpp:396
      +
      reference operator[](size_type pos)
      Returns a reference to the element at a specified location in the queue.
      Definition: vector_queue.hpp:202
      +
      vector_queue(const vector_queue< value_type > &other)
      Copies existing queue.
      Definition: vector_queue.hpp:68
      +
      value_type * m_data
      Underlying data container.
      Definition: vector_queue.hpp:411
      +
      size_t size_type
      Type to measure element count and indices in.
      Definition: vector_queue.hpp:22
      +
      T & reference
      Reference to element type.
      Definition: vector_queue.hpp:32
      +
      const_reference back() const
      Returns a constant reference to the last element in the queue.
      Definition: vector_queue.hpp:380
      +
      vector_queue(vector_queue< value_type > &&other)
      Moves existing queue.
      Definition: vector_queue.hpp:94
      +
      reference back()
      Returns a reference to the last element in the queue.
      Definition: vector_queue.hpp:372
      +
      size_type push_back(value_type &&v)
      Moves the element to the end of the queue, overriding the first one when queue is out of space.
      Definition: vector_queue.hpp:285
      +
      size_type head() const
      Returns absolute subscript or position number of the head element in the queue. The element does not ...
      Definition: vector_queue.hpp:388
      +
      size_type m_count
      Number of elements.
      Definition: vector_queue.hpp:413
      +
      virtual ~vector_queue()
      Destroys the queue.
      Definition: vector_queue.hpp:84
      +
      reference front()
      Returns a reference to the head element in the queue.
      Definition: vector_queue.hpp:354
      +
      size_type m_size_max
      Maximum size.
      Definition: vector_queue.hpp:414
      +
      vector_queue< value_type > & operator=(vector_queue< value_type > &&other)
      Moves existing queue.
      Definition: vector_queue.hpp:136
      +
      reference at_abs(size_type pos)
      Returns a reference to the element at the absolute location in the queue.
      Definition: vector_queue.hpp:237
      +
      void clear()
      Erases the elements of the queue.
      Definition: vector_queue.hpp:173
      +
      const_reference front() const
      Returns a constant reference to the head element in the queue.
      Definition: vector_queue.hpp:363
      +
      vector_queue(size_type size_max)
      Construct queue of fixed size.
      Definition: vector_queue.hpp:55
      +
      T value_type
      Element type.
      Definition: vector_queue.hpp:27
      +
      size_type push_back(const value_type &v)
      Copies an existing element to the end of the queue, overriding the first one when queue is out of spa...
      Definition: vector_queue.hpp:263
      +
      void pop_back()
      Removes (dequeues) the last element of the queue.
      Definition: vector_queue.hpp:303
      +
      size_type m_head
      Index of the first element.
      Definition: vector_queue.hpp:412
      +
      T * pointer
      Pointer to element.
      Definition: vector_queue.hpp:42
      +
      const_reference at(size_type pos) const
      Returns a constant reference to the element at a specified location in the queue.
      Definition: vector_queue.hpp:213
      +
      const_reference operator[](size_type pos) const
      Returns a constant reference to the element at a specified location in the queue.
      Definition: vector_queue.hpp:224
      +
      size_type size() const
      Returns the number of elements in the vector.
      Definition: vector_queue.hpp:157
      +
      void pop_front()
      Removes (dequeues) the head element of the queue.
      Definition: vector_queue.hpp:344
      +
      size_type capacity() const
      Returns the number of elements that the queue can contain before overwriting head ones.
      Definition: vector_queue.hpp:165
      +
      size_type push_front(const value_type &v)
      Copies an existing element to the head of the queue, overriding the last one when queue is out of spa...
      Definition: vector_queue.hpp:316
      +
      reference at(size_type pos)
      Returns a reference to the element at a specified location in the queue.
      Definition: vector_queue.hpp:191
      +
      size_type abs(size_type pos) const
      Returns absolute subscript or position number of the given element in the queue.
      Definition: vector_queue.hpp:405
      +
      size_type push_front(value_type &&v)
      Moves the element to the head of the queue, overriding the last one when queue is out of space and mo...
      Definition: vector_queue.hpp:332
      +
      const T & const_reference
      Constant reference to element type.
      Definition: vector_queue.hpp:37
      +
      const_reference at_abs(size_type pos) const
      Returns a constant reference to the element at the absolute location in the queue: measured from the ...
      Definition: vector_queue.hpp:250