From b46be9f0e8c9cd32db96ac45970b3227cfb0d015 Mon Sep 17 00:00:00 2001 From: rozmansi Date: Thu, 16 Mar 2023 11:38:41 +0000 Subject: [PATCH] deploy: 1fb78a78f280d2ec0391a787e7716887700a068f --- annotated.html | 94 +- base64_8hpp_source.html | 2 +- classes.html | 15 +- classstdex_1_1base64__dec-members.html | 2 +- classstdex_1_1base64__dec.html | 2 +- classstdex_1_1base64__enc-members.html | 2 +- classstdex_1_1base64__enc.html | 2 +- classstdex_1_1errno__error-members.html | 2 +- classstdex_1_1errno__error.html | 2 +- classstdex_1_1global__progress-members.html | 2 +- classstdex_1_1global__progress.html | 2 +- classstdex_1_1hex__dec-members.html | 2 +- classstdex_1_1hex__dec.html | 2 +- classstdex_1_1hex__enc-members.html | 2 +- classstdex_1_1hex__enc.html | 2 +- classstdex_1_1idrec_1_1record-members.html | 2 +- classstdex_1_1idrec_1_1record.html | 2 +- classstdex_1_1lazy__progress-members.html | 2 +- classstdex_1_1lazy__progress.html | 2 +- ...dex_1_1parser_1_1basic__angle-members.html | 16 +- classstdex_1_1parser_1_1basic__angle.html | 80 +- classstdex_1_1parser_1_1basic__angle.png | Bin 796 -> 777 bytes ...x_1_1parser_1_1basic__any__cu-members.html | 19 +- classstdex_1_1parser_1_1basic__any__cu.html | 51 +- classstdex_1_1parser_1_1basic__any__cu.png | Bin 807 -> 785 bytes ...stdex_1_1parser_1_1basic__bol-members.html | 16 +- classstdex_1_1parser_1_1basic__bol.html | 48 +- classstdex_1_1parser_1_1basic__bol.png | Bin 755 -> 740 bytes ...ex_1_1parser_1_1basic__branch-members.html | 26 +- classstdex_1_1parser_1_1basic__branch.html | 100 +- classstdex_1_1parser_1_1basic__branch.png | Bin 1975 -> 1951 bytes ...r_1_1basic__chemical__formula-members.html | 16 +- ...1_1parser_1_1basic__chemical__formula.html | 74 +- ..._1_1parser_1_1basic__chemical__formula.png | Bin 853 -> 834 bytes ...sstdex_1_1parser_1_1basic__cu-members.html | 16 +- classstdex_1_1parser_1_1basic__cu.html | 48 +- classstdex_1_1parser_1_1basic__cu.png | Bin 766 -> 749 bytes ...x_1_1parser_1_1basic__cu__set-members.html | 16 +- classstdex_1_1parser_1_1basic__cu__set.html | 46 +- classstdex_1_1parser_1_1basic__cu__set.png | Bin 1133 -> 1112 bytes ...tdex_1_1parser_1_1basic__date-members.html | 16 +- classstdex_1_1parser_1_1basic__date.html | 62 +- classstdex_1_1parser_1_1basic__date.png | Bin 779 -> 758 bytes ...r_1_1basic__dns__domain__char-members.html | 16 +- ...1_1parser_1_1basic__dns__domain__char.html | 48 +- ..._1_1parser_1_1basic__dns__domain__char.png | Bin 861 -> 844 bytes ...1_1parser_1_1basic__dns__name-members.html | 18 +- classstdex_1_1parser_1_1basic__dns__name.html | 60 +- classstdex_1_1parser_1_1basic__dns__name.png | Bin 817 -> 796 bytes ...rser_1_1basic__email__address-members.html | 16 +- ...ex_1_1parser_1_1basic__email__address.html | 98 +- ...dex_1_1parser_1_1basic__email__address.png | Bin 867 -> 845 bytes ..._1_1parser_1_1basic__emoticon-members.html | 24 +- classstdex_1_1parser_1_1basic__emoticon.html | 88 +- classstdex_1_1parser_1_1basic__emoticon.png | Bin 819 -> 798 bytes ...stdex_1_1parser_1_1basic__eol-members.html | 16 +- classstdex_1_1parser_1_1basic__eol.html | 48 +- classstdex_1_1parser_1_1basic__eol.png | Bin 760 -> 745 bytes ..._1_1parser_1_1basic__fraction-members.html | 16 +- classstdex_1_1parser_1_1basic__fraction.html | 74 +- classstdex_1_1parser_1_1basic__fraction.png | Bin 813 -> 793 bytes ...x_1_1parser_1_1basic__integer-members.html | 16 +- classstdex_1_1parser_1_1basic__integer.html | 48 +- classstdex_1_1parser_1_1basic__integer.png | Bin 2389 -> 2363 bytes ...1_1parser_1_1basic__integer10-members.html | 16 +- classstdex_1_1parser_1_1basic__integer10.html | 114 +- classstdex_1_1parser_1_1basic__integer10.png | Bin 1228 -> 1209 bytes ...1parser_1_1basic__integer10ts-members.html | 14 +- ...stdex_1_1parser_1_1basic__integer10ts.html | 48 +- ...sstdex_1_1parser_1_1basic__integer10ts.png | Bin 1245 -> 1226 bytes ...1_1parser_1_1basic__integer16-members.html | 16 +- classstdex_1_1parser_1_1basic__integer16.html | 150 +- classstdex_1_1parser_1_1basic__integer16.png | Bin 1238 -> 1219 bytes ...arser_1_1basic__ipv4__address-members.html | 16 +- ...dex_1_1parser_1_1basic__ipv4__address.html | 122 +- ...tdex_1_1parser_1_1basic__ipv4__address.png | Bin 854 -> 831 bytes ...arser_1_1basic__ipv6__address-members.html | 18 +- ...dex_1_1parser_1_1basic__ipv6__address.html | 172 +- ...tdex_1_1parser_1_1basic__ipv6__address.png | Bin 864 -> 843 bytes ...1basic__ipv6__scope__id__char-members.html | 16 +- ...arser_1_1basic__ipv6__scope__id__char.html | 48 +- ...parser_1_1basic__ipv6__scope__id__char.png | Bin 980 -> 962 bytes ..._1parser_1_1basic__iterations-members.html | 20 +- ...sstdex_1_1parser_1_1basic__iterations.html | 62 +- classstdex_1_1parser_1_1basic__iterations.png | Bin 823 -> 801 bytes ...parser_1_1basic__json__string-members.html | 16 +- ...tdex_1_1parser_1_1basic__json__string.html | 116 +- ...stdex_1_1parser_1_1basic__json__string.png | Bin 838 -> 818 bytes ...rser_1_1basic__mixed__numeral-members.html | 26 +- ...ex_1_1parser_1_1basic__mixed__numeral.html | 102 +- ...dex_1_1parser_1_1basic__mixed__numeral.png | Bin 865 -> 845 bytes ...r_1_1basic__monetary__numeral-members.html | 30 +- ...1_1parser_1_1basic__monetary__numeral.html | 112 +- ..._1_1parser_1_1basic__monetary__numeral.png | Bin 892 -> 876 bytes ...tdex_1_1parser_1_1basic__noop-members.html | 16 +- classstdex_1_1parser_1_1basic__noop.html | 48 +- classstdex_1_1parser_1_1basic__noop.png | Bin 771 -> 752 bytes ...ex_1_1parser_1_1basic__parser-members.html | 24 +- ...classstdex_1_1parser_1_1basic__parser.html | 60 +- classstdex_1_1parser_1_1basic__parser.png | Bin 0 -> 29883 bytes ...1parser_1_1basic__permutation-members.html | 28 +- ...stdex_1_1parser_1_1basic__permutation.html | 96 +- ...sstdex_1_1parser_1_1basic__permutation.png | Bin 1223 -> 1183 bytes ...arser_1_1basic__phone__number-members.html | 16 +- ...dex_1_1parser_1_1basic__phone__number.html | 80 +- ...tdex_1_1parser_1_1basic__phone__number.png | Bin 858 -> 836 bytes ...1_1parser_1_1basic__punct__cu-members.html | 18 +- classstdex_1_1parser_1_1basic__punct__cu.html | 48 +- classstdex_1_1parser_1_1basic__punct__cu.png | Bin 815 -> 793 bytes ...rser_1_1basic__roman__numeral-members.html | 16 +- ...ex_1_1parser_1_1basic__roman__numeral.html | 108 +- ...dex_1_1parser_1_1basic__roman__numeral.png | Bin 1247 -> 1226 bytes ...1_1basic__scientific__numeral-members.html | 30 +- ...1parser_1_1basic__scientific__numeral.html | 112 +- ..._1parser_1_1basic__scientific__numeral.png | Bin 864 -> 847 bytes ...dex_1_1parser_1_1basic__score-members.html | 16 +- classstdex_1_1parser_1_1basic__score.html | 80 +- classstdex_1_1parser_1_1basic__score.png | Bin 780 -> 759 bytes ..._1_1parser_1_1basic__sequence-members.html | 28 +- classstdex_1_1parser_1_1basic__sequence.html | 96 +- classstdex_1_1parser_1_1basic__sequence.png | Bin 1190 -> 1154 bytes ...stdex_1_1parser_1_1basic__set-members.html | 16 +- classstdex_1_1parser_1_1basic__set.html | 50 +- classstdex_1_1parser_1_1basic__set.png | Bin 1140 -> 1118 bytes ...ser_1_1basic__signed__numeral-members.html | 24 +- ...x_1_1parser_1_1basic__signed__numeral.html | 88 +- ...ex_1_1parser_1_1basic__signed__numeral.png | Bin 874 -> 853 bytes ...1_1parser_1_1basic__space__cu-members.html | 18 +- classstdex_1_1parser_1_1basic__space__cu.html | 48 +- classstdex_1_1parser_1_1basic__space__cu.png | Bin 814 -> 794 bytes ..._1basic__space__or__punct__cu-members.html | 18 +- ...parser_1_1basic__space__or__punct__cu.html | 48 +- ...1parser_1_1basic__space__or__punct__cu.png | Bin 952 -> 934 bytes ...ex_1_1parser_1_1basic__string-members.html | 18 +- classstdex_1_1parser_1_1basic__string.html | 48 +- classstdex_1_1parser_1_1basic__string.png | Bin 791 -> 774 bytes ...rser_1_1basic__string__branch-members.html | 40 +- ...ex_1_1parser_1_1basic__string__branch.html | 130 +- ...dex_1_1parser_1_1basic__string__branch.png | Bin 1971 -> 1950 bytes classstdex_1_1parser_1_1basic__tester.png | Bin 29947 -> 0 bytes ...tdex_1_1parser_1_1basic__time-members.html | 16 +- classstdex_1_1parser_1_1basic__time.html | 62 +- classstdex_1_1parser_1_1basic__time.png | Bin 782 -> 763 bytes ...stdex_1_1parser_1_1basic__url-members.html | 16 +- classstdex_1_1parser_1_1basic__url.html | 152 +- classstdex_1_1parser_1_1basic__url.png | Bin 767 -> 749 bytes ...1_1basic__url__password__char-members.html | 16 +- ...1parser_1_1basic__url__password__char.html | 48 +- ..._1parser_1_1basic__url__password__char.png | Bin 921 -> 908 bytes ...1_1parser_1_1basic__url__path-members.html | 16 +- classstdex_1_1parser_1_1basic__url__path.html | 74 +- classstdex_1_1parser_1_1basic__url__path.png | Bin 812 -> 791 bytes ...ser_1_1basic__url__path__char-members.html | 16 +- ...x_1_1parser_1_1basic__url__path__char.html | 48 +- ...ex_1_1parser_1_1basic__url__path__char.png | Bin 857 -> 836 bytes ...1_1basic__url__username__char-members.html | 16 +- ...1parser_1_1basic__url__username__char.html | 48 +- ..._1parser_1_1basic__url__username__char.png | Bin 916 -> 899 bytes ...tdex_1_1parser_1_1http__agent-members.html | 4 +- classstdex_1_1parser_1_1http__agent.html | 48 +- classstdex_1_1parser_1_1http__agent.png | Bin 794 -> 777 bytes ..._1_1parser_1_1http__any__type-members.html | 4 +- classstdex_1_1parser_1_1http__any__type.html | 46 +- classstdex_1_1parser_1_1http__any__type.png | Bin 817 -> 803 bytes ...x_1_1parser_1_1http__asterisk-members.html | 4 +- classstdex_1_1parser_1_1http__asterisk.html | 46 +- classstdex_1_1parser_1_1http__asterisk.png | Bin 803 -> 789 bytes ...dex_1_1parser_1_1http__cookie-members.html | 4 +- classstdex_1_1parser_1_1http__cookie.html | 48 +- classstdex_1_1parser_1_1http__cookie.png | Bin 788 -> 773 bytes ...er_1_1http__cookie__parameter-members.html | 4 +- ..._1_1parser_1_1http__cookie__parameter.html | 48 +- ...x_1_1parser_1_1http__cookie__parameter.png | Bin 838 -> 826 bytes ...dex_1_1parser_1_1http__header-members.html | 4 +- classstdex_1_1parser_1_1http__header.html | 48 +- classstdex_1_1parser_1_1http__header.png | Bin 800 -> 785 bytes ..._1_1parser_1_1http__header__collection.png | Bin 639 -> 0 bytes ...x_1_1parser_1_1http__language-members.html | 4 +- classstdex_1_1parser_1_1http__language.html | 48 +- classstdex_1_1parser_1_1http__language.png | Bin 811 -> 797 bytes ..._1parser_1_1http__line__break-members.html | 4 +- ...sstdex_1_1parser_1_1http__line__break.html | 46 +- classstdex_1_1parser_1_1http__line__break.png | Bin 820 -> 805 bytes ...1parser_1_1http__media__range-members.html | 4 +- ...stdex_1_1parser_1_1http__media__range.html | 50 +- ...sstdex_1_1parser_1_1http__media__range.png | Bin 1227 -> 1217 bytes ..._1parser_1_1http__media__type-members.html | 4 +- ...sstdex_1_1parser_1_1http__media__type.html | 46 +- classstdex_1_1parser_1_1http__media__type.png | Bin 1224 -> 1213 bytes ..._1_1parser_1_1http__parameter-members.html | 4 +- classstdex_1_1parser_1_1http__parameter.html | 48 +- classstdex_1_1parser_1_1http__parameter.png | Bin 813 -> 797 bytes ...x_1_1parser_1_1http__protocol-members.html | 4 +- classstdex_1_1parser_1_1http__protocol.html | 48 +- classstdex_1_1parser_1_1http__protocol.png | Bin 771 -> 755 bytes ...arser_1_1http__quoted__string-members.html | 4 +- ...dex_1_1parser_1_1http__quoted__string.html | 48 +- ...tdex_1_1parser_1_1http__quoted__string.png | Bin 839 -> 825 bytes ...ex_1_1parser_1_1http__request-members.html | 17 +- classstdex_1_1parser_1_1http__request.html | 51 +- classstdex_1_1parser_1_1http__request.png | Bin 799 -> 785 bytes ...tdex_1_1parser_1_1http__space-members.html | 4 +- classstdex_1_1parser_1_1http__space.html | 46 +- classstdex_1_1parser_1_1http__space.png | Bin 780 -> 762 bytes ...1_1parser_1_1http__text__char-members.html | 4 +- classstdex_1_1parser_1_1http__text__char.html | 46 +- classstdex_1_1parser_1_1http__text__char.png | Bin 812 -> 799 bytes ...tdex_1_1parser_1_1http__token-members.html | 4 +- classstdex_1_1parser_1_1http__token.html | 46 +- classstdex_1_1parser_1_1http__token.png | Bin 783 -> 767 bytes ...sstdex_1_1parser_1_1http__url-members.html | 17 +- classstdex_1_1parser_1_1http__url.html | 51 +- classstdex_1_1parser_1_1http__url.png | Bin 754 -> 736 bytes ...arser_1_1http__url__parameter-members.html | 4 +- ...dex_1_1parser_1_1http__url__parameter.html | 48 +- ...tdex_1_1parser_1_1http__url__parameter.png | Bin 817 -> 804 bytes ..._1_1parser_1_1http__url__path-members.html | 4 +- classstdex_1_1parser_1_1http__url__path.html | 48 +- classstdex_1_1parser_1_1http__url__path.png | Bin 795 -> 777 bytes ...r_1_1http__url__path__segment-members.html | 4 +- ...1_1parser_1_1http__url__path__segment.html | 46 +- ..._1_1parser_1_1http__url__path__segment.png | Bin 842 -> 828 bytes ..._1_1parser_1_1http__url__port-members.html | 4 +- classstdex_1_1parser_1_1http__url__port.html | 48 +- classstdex_1_1parser_1_1http__url__port.png | Bin 784 -> 768 bytes ..._1parser_1_1http__url__server-members.html | 4 +- ...sstdex_1_1parser_1_1http__url__server.html | 46 +- classstdex_1_1parser_1_1http__url__server.png | Bin 809 -> 794 bytes ...tdex_1_1parser_1_1http__value-members.html | 4 +- classstdex_1_1parser_1_1http__value.html | 48 +- classstdex_1_1parser_1_1http__value.png | Bin 784 -> 765 bytes ...er_1_1http__value__collection-members.html | 10 +- ..._1_1parser_1_1http__value__collection.html | 26 +- ...x_1_1parser_1_1http__value__collection.png | Bin 0 -> 633 bytes ...dex_1_1parser_1_1http__weight-members.html | 4 +- classstdex_1_1parser_1_1http__weight.html | 48 +- classstdex_1_1parser_1_1http__weight.png | Bin 807 -> 792 bytes ...rser_1_1http__weighted__value-members.html | 11 +- ...ex_1_1parser_1_1http__weighted__value.html | 51 +- ...dex_1_1parser_1_1http__weighted__value.png | Bin 1120 -> 1104 bytes ...1parser_1_1parser__collection-members.html | 32 +- ...stdex_1_1parser_1_1parser__collection.html | 110 +- ...sstdex_1_1parser_1_1parser__collection.png | Bin 0 -> 3264 bytes ...ex_1_1parser_1_1sgml__any__cp-members.html | 19 +- classstdex_1_1parser_1_1sgml__any__cp.html | 57 +- classstdex_1_1parser_1_1sgml__any__cp.png | Bin 1193 -> 1177 bytes classstdex_1_1parser_1_1sgml__cp-members.html | 4 +- classstdex_1_1parser_1_1sgml__cp.html | 46 +- classstdex_1_1parser_1_1sgml__cp.png | Bin 780 -> 762 bytes ...ex_1_1parser_1_1sgml__cp__set-members.html | 16 +- classstdex_1_1parser_1_1sgml__cp__set.html | 48 +- classstdex_1_1parser_1_1sgml__cp__set.png | Bin 1169 -> 1159 bytes ...er_1_1sgml__dns__domain__char-members.html | 18 +- ..._1_1parser_1_1sgml__dns__domain__char.html | 46 +- ...x_1_1parser_1_1sgml__dns__domain__char.png | Bin 1519 -> 1511 bytes ..._1sgml__ipv6__scope__id__char-members.html | 4 +- ...parser_1_1sgml__ipv6__scope__id__char.html | 46 +- ...1parser_1_1sgml__ipv6__scope__id__char.png | Bin 892 -> 879 bytes ..._1_1parser_1_1sgml__punct__cp-members.html | 19 +- classstdex_1_1parser_1_1sgml__punct__cp.html | 49 +- classstdex_1_1parser_1_1sgml__punct__cp.png | Bin 1219 -> 1201 bytes ..._1_1parser_1_1sgml__space__cp-members.html | 18 +- classstdex_1_1parser_1_1sgml__space__cp.html | 46 +- classstdex_1_1parser_1_1sgml__space__cp.png | Bin 1213 -> 1194 bytes ...1_1sgml__space__or__punct__cp-members.html | 19 +- ...1parser_1_1sgml__space__or__punct__cp.html | 49 +- ..._1parser_1_1sgml__space__or__punct__cp.png | Bin 1533 -> 1521 bytes ...dex_1_1parser_1_1sgml__string-members.html | 4 +- classstdex_1_1parser_1_1sgml__string.html | 46 +- classstdex_1_1parser_1_1sgml__string.png | Bin 810 -> 793 bytes ..._1_1sgml__url__password__char-members.html | 18 +- ..._1parser_1_1sgml__url__password__char.html | 46 +- ...1_1parser_1_1sgml__url__password__char.png | Bin 1545 -> 1533 bytes ...rser_1_1sgml__url__path__char-members.html | 18 +- ...ex_1_1parser_1_1sgml__url__path__char.html | 46 +- ...dex_1_1parser_1_1sgml__url__path__char.png | Bin 1292 -> 1279 bytes ..._1_1sgml__url__username__char-members.html | 18 +- ..._1parser_1_1sgml__url__username__char.html | 46 +- ...1_1parser_1_1sgml__url__username__char.png | Bin 1530 -> 1518 bytes ...sstdex_1_1parser_1_1tester__collection.png | Bin 3335 -> 0 bytes classstdex_1_1progress-members.html | 2 +- classstdex_1_1progress.html | 2 +- classstdex_1_1user__cancelled-members.html | 2 +- classstdex_1_1user__cancelled.html | 2 +- classstdex_1_1vector__queue-members.html | 2 +- classstdex_1_1vector__queue.html | 2 +- dir_4be4f7b278e009bf0f1906cf31fb73bd.html | 2 +- dir_d44c64559bbebec7f509842c48db8b23.html | 2 +- dir_fca3c47b2ea228727bd6729832f89576.html | 2 +- errno_8hpp_source.html | 2 +- exception_8hpp_source.html | 2 +- files.html | 2 +- functions.html | 40 +- functions_func.html | 2 +- functions_type.html | 2 +- functions_vars.html | 40 +- hex_8hpp_source.html | 2 +- hierarchy.html | 12 +- idrec_8hpp_source.html | 2 +- index.html | 2 +- interval_8hpp_source.html | 2 +- mapping_8hpp_source.html | 2 +- memory_8hpp_source.html | 2 +- parser_8hpp_source.html | 12350 ++++++++-------- pch_8h_source.html | 2 +- progress_8hpp_source.html | 2 +- sal_8hpp_source.html | 2 +- search/all_0.js | 2 +- search/all_1.js | 38 +- search/all_10.js | 3 +- search/all_2.js | 2 +- search/all_3.js | 4 +- search/all_4.js | 6 +- search/all_5.js | 2 +- search/all_7.js | 38 +- search/all_8.js | 4 +- search/all_a.js | 2 +- search/all_b.js | 8 +- search/all_d.js | 17 +- search/all_f.js | 4 +- search/classes_0.js | 38 +- search/classes_3.js | 38 +- search/classes_8.js | 3 +- search/classes_b.js | 2 +- search/classes_c.js | 2 +- search/classes_d.js | 4 - search/searchdata.js | 2 +- search/variables_0.js | 2 +- search/variables_2.js | 2 +- search/variables_3.js | 4 +- search/variables_4.js | 6 +- search/variables_5.js | 2 +- search/variables_7.js | 4 +- search/variables_8.js | 2 +- search/variables_9.js | 8 +- search/variables_a.js | 4 +- search/variables_b.js | 4 +- sgml_8hpp_source.html | 2 +- sgml__unicode_8hpp_source.html | 2 +- string_8hpp_source.html | 2 +- structstdex_1_1interval-members.html | 2 +- structstdex_1_1interval.html | 2 +- structstdex_1_1mapping-members.html | 2 +- structstdex_1_1mapping.html | 2 +- structstdex_1_1no__delete-members.html | 2 +- structstdex_1_1no__delete.html | 2 +- ..._1_1no__delete_3_01_t_0f_0e_4-members.html | 2 +- structstdex_1_1no__delete_3_01_t_0f_0e_4.html | 2 +- ...1parser_1_1http__factor__more-members.html | 2 +- ...stdex_1_1parser_1_1http__factor__more.html | 2 +- vector__queue_8hpp_source.html | 2 +- 351 files changed, 9867 insertions(+), 9815 deletions(-) rename classstdex_1_1parser_1_1basic__tester-members.html => classstdex_1_1parser_1_1basic__parser-members.html (71%) rename classstdex_1_1parser_1_1basic__tester.html => classstdex_1_1parser_1_1basic__parser.html (81%) create mode 100644 classstdex_1_1parser_1_1basic__parser.png delete mode 100644 classstdex_1_1parser_1_1basic__tester.png delete mode 100644 classstdex_1_1parser_1_1http__header__collection.png rename classstdex_1_1parser_1_1http__header__collection-members.html => classstdex_1_1parser_1_1http__value__collection-members.html (80%) rename classstdex_1_1parser_1_1http__header__collection.html => classstdex_1_1parser_1_1http__value__collection.html (77%) create mode 100644 classstdex_1_1parser_1_1http__value__collection.png rename classstdex_1_1parser_1_1tester__collection-members.html => classstdex_1_1parser_1_1parser__collection-members.html (56%) rename classstdex_1_1parser_1_1tester__collection.html => classstdex_1_1parser_1_1parser__collection.html (53%) create mode 100644 classstdex_1_1parser_1_1parser__collection.png delete mode 100644 classstdex_1_1parser_1_1tester__collection.png delete mode 100644 search/classes_d.js diff --git a/annotated.html b/annotated.html index 15abd9e01..961e216f5 100644 --- a/annotated.html +++ b/annotated.html @@ -105,20 +105,20 @@ $(function() {  Cbasic_mixed_numeralTest for mixed numeral  Cbasic_monetary_numeralTest for monetary numeral  Cbasic_noop"No-op" match - Cbasic_permutationTest for permutation - Cbasic_phone_numberTest for phone number - Cbasic_punct_cuTest for any punctuation code unit - Cbasic_roman_numeralTest for Roman numeral - Cbasic_scientific_numeralTest for scientific numeral - Cbasic_scoreTest for match score - Cbasic_sequenceTest for sequence - Cbasic_set - Cbasic_signed_numeralTest for signed numeral - Cbasic_space_cuTest for any space code unit - Cbasic_space_or_punct_cuTest for any space or punctuation code unit - Cbasic_stringTest for given string - Cbasic_string_branchTest for any string - Cbasic_testerBase template for all testers + Cbasic_parserBase template for all parsers + Cbasic_permutationTest for permutation + Cbasic_phone_numberTest for phone number + Cbasic_punct_cuTest for any punctuation code unit + Cbasic_roman_numeralTest for Roman numeral + Cbasic_scientific_numeralTest for scientific numeral + Cbasic_scoreTest for match score + Cbasic_sequenceTest for sequence + Cbasic_set + Cbasic_signed_numeralTest for signed numeral + Cbasic_space_cuTest for any space code unit + Cbasic_space_or_punct_cuTest for any space or punctuation code unit + Cbasic_stringTest for given string + Cbasic_string_branchTest for any string  Cbasic_timeTest for time  Cbasic_urlTest for URL  Cbasic_url_password_charTest for valid URL password character @@ -132,40 +132,40 @@ $(function() {  Chttp_cookie_parameterTest for HTTP cookie parameter (RFC2109)  Chttp_factor_more  Chttp_headerTest for HTTP header - Chttp_header_collectionCollection of HTTP headers - Chttp_languageTest for HTTP language (RFC1766) - Chttp_line_breakTest for HTTP line break (RFC2616: CRLF | LF) - Chttp_media_rangeTest for HTTP media range (RFC2616: media-range) - Chttp_media_typeTest for HTTP media type (RFC2616: media-type) - Chttp_parameterTest for HTTP parameter (RFC2616: parameter) - Chttp_protocolTest for HTTP protocol - Chttp_quoted_stringTest for HTTP quoted string (RFC2616: quoted-string) - Chttp_requestTest for HTTP request - Chttp_spaceTest for HTTP space (RFC2616: LWS) - Chttp_text_charTest for HTTP text character (RFC2616: TEXT) - Chttp_tokenTest for HTTP token (RFC2616: token - tolerates non-ASCII) - Chttp_urlTest for HTTP URL - Chttp_url_parameterTest for HTTP URL parameter - Chttp_url_pathTest for HTTP URL path segment - Chttp_url_path_segmentTest for HTTP URL path segment - Chttp_url_portTest for HTTP URL port - Chttp_url_serverTest for HTTP URL server - Chttp_valueTest for HTTP value (RFC2616: value) + Chttp_languageTest for HTTP language (RFC1766) + Chttp_line_breakTest for HTTP line break (RFC2616: CRLF | LF) + Chttp_media_rangeTest for HTTP media range (RFC2616: media-range) + Chttp_media_typeTest for HTTP media type (RFC2616: media-type) + Chttp_parameterTest for HTTP parameter (RFC2616: parameter) + Chttp_protocolTest for HTTP protocol + Chttp_quoted_stringTest for HTTP quoted string (RFC2616: quoted-string) + Chttp_requestTest for HTTP request + Chttp_spaceTest for HTTP space (RFC2616: LWS) + Chttp_text_charTest for HTTP text character (RFC2616: TEXT) + Chttp_tokenTest for HTTP token (RFC2616: token - tolerates non-ASCII) + Chttp_urlTest for HTTP URL + Chttp_url_parameterTest for HTTP URL parameter + Chttp_url_pathTest for HTTP URL path segment + Chttp_url_path_segmentTest for HTTP URL path segment + Chttp_url_portTest for HTTP URL port + Chttp_url_serverTest for HTTP URL server + Chttp_valueTest for HTTP value (RFC2616: value) + Chttp_value_collectionCollection of HTTP values  Chttp_weightTest for HTTP weight factor  Chttp_weighted_valueTest for HTTP weighted value - Csgml_any_cpTest for any SGML code point - Csgml_cpTest for specific SGML code point - Csgml_cp_setTest for any SGML code point from a given string of SGML code points - Csgml_dns_domain_charTest for valid DNS domain SGML character - Csgml_ipv6_scope_id_charTest for valid IPv6 address scope ID SGML character - Csgml_punct_cpTest for any SGML punctuation code point - Csgml_space_cpTest for any SGML space code point - Csgml_space_or_punct_cpTest for any SGML space or punctuation code point - Csgml_stringTest for SGML given string - Csgml_url_password_charTest for valid URL password SGML character - Csgml_url_path_charTest for valid URL path SGML character - Csgml_url_username_charTest for valid URL username SGML character - Ctester_collectionBase template for collection-holding testers + Cparser_collectionBase template for collection-holding parsers + Csgml_any_cpTest for any SGML code point + Csgml_cpTest for specific SGML code point + Csgml_cp_setTest for any SGML code point from a given string of SGML code points + Csgml_dns_domain_charTest for valid DNS domain SGML character + Csgml_ipv6_scope_id_charTest for valid IPv6 address scope ID SGML character + Csgml_punct_cpTest for any SGML punctuation code point + Csgml_space_cpTest for any SGML space code point + Csgml_space_or_punct_cpTest for any SGML space or punctuation code point + Csgml_stringTest for SGML given string + Csgml_url_password_charTest for valid URL password SGML character + Csgml_url_path_charTest for valid URL path SGML character + Csgml_url_username_charTest for valid URL username SGML character  Cbase64_decBase64 decoding session  Cbase64_encBase64 encoding session  Cerrno_errorStandard C runtime library error @@ -185,7 +185,7 @@ $(function() { diff --git a/base64_8hpp_source.html b/base64_8hpp_source.html index 6021e6fa1..09a9fb461 100644 --- a/base64_8hpp_source.html +++ b/base64_8hpp_source.html @@ -318,7 +318,7 @@ $(function() { diff --git a/classes.html b/classes.html index 56453f32c..ba572d3c4 100644 --- a/classes.html +++ b/classes.html @@ -73,11 +73,11 @@ $(function() {
Class Index
-
B | E | G | H | I | L | M | N | P | R | S | T | U | V
+
B | E | G | H | I | L | M | N | P | R | S | U | V
B
-
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)
+
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_parser (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_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)
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)
+
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_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_value_collection (stdex::parser)
http_weight (stdex::parser)
http_weighted_value (stdex::parser)
I
interval (stdex)
@@ -101,7 +101,7 @@ $(function() {
no_delete (stdex)
no_delete< T[]> (stdex)
P
-
progress (stdex)
+
parser_collection (stdex::parser)
progress (stdex)
R
record (stdex::idrec)
@@ -109,19 +109,16 @@ $(function() {
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)
-
+
V
vector_queue (stdex)
diff --git a/classstdex_1_1base64__dec-members.html b/classstdex_1_1base64__dec-members.html index 5f418a527..95e68b532 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 9632d40bb..83787e4e8 100644 --- a/classstdex_1_1base64__dec.html +++ b/classstdex_1_1base64__dec.html @@ -230,7 +230,7 @@ template<class _Ty , class _Ax , class _Tchr > diff --git a/classstdex_1_1base64__enc-members.html b/classstdex_1_1base64__enc-members.html index 30cc38c65..f6cefa0e9 100644 --- a/classstdex_1_1base64__enc-members.html +++ b/classstdex_1_1base64__enc-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/classstdex_1_1base64__enc.html b/classstdex_1_1base64__enc.html index 0cd80c1ac..dea04b096 100644 --- a/classstdex_1_1base64__enc.html +++ b/classstdex_1_1base64__enc.html @@ -235,7 +235,7 @@ template<class _Elem , class _Traits , class _Ax > diff --git a/classstdex_1_1errno__error-members.html b/classstdex_1_1errno__error-members.html index 5efbc20af..009418e44 100644 --- a/classstdex_1_1errno__error-members.html +++ b/classstdex_1_1errno__error-members.html @@ -89,7 +89,7 @@ $(function() { diff --git a/classstdex_1_1errno__error.html b/classstdex_1_1errno__error.html index 847027342..1db8af0fd 100644 --- a/classstdex_1_1errno__error.html +++ b/classstdex_1_1errno__error.html @@ -286,7 +286,7 @@ errno_t m_num diff --git a/classstdex_1_1global__progress-members.html b/classstdex_1_1global__progress-members.html index ea5f95b50..12c9b2181 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 c600a1abe..64e614e06 100644 --- a/classstdex_1_1global__progress.html +++ b/classstdex_1_1global__progress.html @@ -561,7 +561,7 @@ template<class T > diff --git a/classstdex_1_1hex__dec-members.html b/classstdex_1_1hex__dec-members.html index c3a1e5b0f..d6b3fd01a 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 bf9a8395f..ae98ec6a8 100644 --- a/classstdex_1_1hex__dec.html +++ b/classstdex_1_1hex__dec.html @@ -221,7 +221,7 @@ template<class _Ty , class _Ax , class _Tchr > diff --git a/classstdex_1_1hex__enc-members.html b/classstdex_1_1hex__enc-members.html index 3a6a82e16..c7ee6b978 100644 --- a/classstdex_1_1hex__enc-members.html +++ b/classstdex_1_1hex__enc-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/classstdex_1_1hex__enc.html b/classstdex_1_1hex__enc.html index f74341162..266ccd9d9 100644 --- a/classstdex_1_1hex__enc.html +++ b/classstdex_1_1hex__enc.html @@ -198,7 +198,7 @@ template<class _Elem , class _Traits , class _Ax > diff --git a/classstdex_1_1idrec_1_1record-members.html b/classstdex_1_1idrec_1_1record-members.html index 7f082204f..d687fb6c7 100644 --- a/classstdex_1_1idrec_1_1record-members.html +++ b/classstdex_1_1idrec_1_1record-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/classstdex_1_1idrec_1_1record.html b/classstdex_1_1idrec_1_1record.html index 8c2ed9cec..49bb72f20 100644 --- a/classstdex_1_1idrec_1_1record.html +++ b/classstdex_1_1idrec_1_1record.html @@ -380,7 +380,7 @@ template<class T , class T_ID , const T_ID ID, class T_SIZE , unsigned int AL diff --git a/classstdex_1_1lazy__progress-members.html b/classstdex_1_1lazy__progress-members.html index 587ba3211..1f1602a8e 100644 --- a/classstdex_1_1lazy__progress-members.html +++ b/classstdex_1_1lazy__progress-members.html @@ -95,7 +95,7 @@ $(function() { diff --git a/classstdex_1_1lazy__progress.html b/classstdex_1_1lazy__progress.html index 632ddd303..07da1d894 100644 --- a/classstdex_1_1lazy__progress.html +++ b/classstdex_1_1lazy__progress.html @@ -285,7 +285,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__angle-members.html b/classstdex_1_1parser_1_1basic__angle-members.html index fd456ff29..ff9d4eeff 100644 --- a/classstdex_1_1parser_1_1basic__angle-members.html +++ b/classstdex_1_1parser_1_1basic__angle-members.html @@ -80,26 +80,26 @@ $(function() {

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
basic_angle(const std::shared_ptr< basic_integer10< T > > &_degree, const std::shared_ptr< basic_parser< T > > &_degree_separator, const std::shared_ptr< basic_integer10< T > > &_minute, const std::shared_ptr< basic_parser< T > > &_minute_separator, const std::shared_ptr< basic_integer10< T > > &_second, const std::shared_ptr< basic_parser< T > > &_second_separator, const std::shared_ptr< basic_parser< T > > &_decimal, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_angle< T >)stdex::parser::basic_angle< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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 >
intervalstdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__angle.html b/classstdex_1_1parser_1_1basic__angle.html index 8fff9546b..cc0198030 100644 --- a/classstdex_1_1parser_1_1basic__angle.html +++ b/classstdex_1_1parser_1_1basic__angle.html @@ -92,72 +92,72 @@ Inheritance diagram for stdex::parser::basic_angle< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_angle (const std::shared_ptr< basic_integer10< T > > &_degree, const std::shared_ptr< basic_parser< T > > &_degree_separator, const std::shared_ptr< basic_integer10< T > > &_minute, const std::shared_ptr< basic_parser< T > > &_minute_separator, const std::shared_ptr< basic_integer10< T > > &_second, const std::shared_ptr< basic_parser< T > > &_second_separator, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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_parser< T > > degree_separator
 
std::shared_ptr< basic_integer10< T > > minute
 
-std::shared_ptr< basic_tester< T > > minute_separator
 
+std::shared_ptr< basic_parser< 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 >
+
+std::shared_ptr< basic_parser< T > > second_separator
 
+std::shared_ptr< basic_parser< T > > decimal
 
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -188,7 +188,7 @@ template<class T >
-

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

+

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

@@ -240,7 +240,7 @@ template<class T >
-

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

+

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

@@ -250,7 +250,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__angle.png b/classstdex_1_1parser_1_1basic__angle.png index e512dc1f7981daabd489e966c628bf7415b40437..5ab2acb5c6ccc0cb3df41b5c750c846cb0cf685f 100644 GIT binary patch delta 728 zcmbQk*2$*W8Q|y6%O%Cdz`(%k>ERLtqz?me00%RWoE&UeI#JQSeu}4yV@L(#+qv0& zhZT5Q+B-we{`KGE`T2m^63^{-m#$nP(b{fUBXMWHL|fvH9R?GgEWIk}v1zXrv*)(( z1dn&lllBLnJ^0%1xxA;$Lhe`8SoO77;7VKHKwnT}xY;J~sVde}wcI<0- zShm~lh`2!y$Mp6eY;E(VGdvK!BFV4-7$^)|!qXWVzP;jMxDYp&k>S>AV+M!nQZ|N+ z_2(EEfQF$dDp*lJC1}@<2`Voyz2cd4C2p?cq+6>~B5vs~zA7`PIBIKD&;%9NzxvH8 zvf261^7g0BFnGUa@v?V2^OpDjEw29Q!<_1W^~*bh?Vmqd-QIop&?_6~Nkx&ho+qcR z-L@v>SW>^V2G8ehb8;gRY!@DQz{q@fTf&{`@t4E4M}B=PIenQ>-*x@^i1=InTbYl> zZrV4^Jp>WHhlAG|-uZpFmTT==$$Rh+-lL{?;OVw+j{;(585ep4>CN{3zsz~X=?A}A z3cuOTVA%6b?pk!dXAI6MEDzdTspqe*dquSRGwMuCn_$TvTm(>^_NA;>L0BB0~0HQr>mdK II;Vst0761!#sB~S delta 747 zcmVViBL{Q4GJ0x0000DNk~Le0002J0000`2m=5B0DIGfUXdX`f2T=A zK~#7F?VazA;~)&ghl#YB_kZF`^9O80+H`xjEIO);8o<~;j3HmKEXy*iu#n`Sn)D>u zN0Xi;`zX*S_eYZ7Q_Dfs7dx(_ru|2fPCrObl1}&OuLcYKV`L@LJG$@|JAq}m)X-{q3 z?U=B*E0sk>@3!YE_c3_(^hWLzS)Lr&pW0BHalxTBKdSqx#GlvwSp&^Gf9G^vE|NUv z@0>#6OOWW4B>e08q+lg!c-ah^w19eZ+ zbaPnRC8f@Gb68p3p-)nIPA^ijPkuXMn6cR71}eh>06NqVhcl>1h_NYWF%LoZ3cOOsxb`e@QiQXj4K dDWx>3{s6IVoYDF~(fThis 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
basic_any_cu(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_any_cu< T >)stdex::parser::basic_any_cu< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__any__cu.html b/classstdex_1_1parser_1_1basic__any__cu.html index 25d37ff11..ecc8e24d8 100644 --- a/classstdex_1_1parser_1_1basic__any__cu.html +++ b/classstdex_1_1parser_1_1basic__any__cu.html @@ -91,43 +91,46 @@ Inheritance diagram for stdex::parser::basic_any_cu< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
+ + - - - - + + + - - + - - + - - - + + - +

Public Member Functions

basic_any_cu (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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -181,7 +184,7 @@ template<class T >
@@ -191,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__any__cu.png b/classstdex_1_1parser_1_1basic__any__cu.png index 7110be7a7983198da6b98fbd0bf4db347cbffab8..0f9bd0574717ffc867fc1fecbeae1033aafdac28 100644 GIT binary patch delta 624 zcmV-$0+0Qt29XAkV1JxRL_t(|0qvdZlB*yPgqyZ%tKa{Lk0vNH1Dbe}-4KfuU2+*a ze8AveOw%-7L6}JL`!zsFvL_7?lI%$pNOBL7{6Dn}UN^n}NHXeAK}hmd?fF`e1@*=| zYl*+t?b~zzy`3M+K;6>}y&0DFX}=R7i7X`}B+`|wmM3M#VtJ@P9L58{uQ z2ig9$VYY^tvsaqFRfjrnzr2tA+>Bk_G~&^+AUUrZAnQnZ%l0%wjdu-l;C z_IMoPGRD2CA}SEK$a^3U{Lb!3B1_rqeX@rW9NBk||C2eg=XWkg)=h2RTC0D#Q?@aG z%ap13(1*9yt~eh_Q=YkgN%C0l{y4nR?=v9l7y9c#KE5L)*{KEyN%o`xLXtgc2AQU5 zx_|)S*YyJcSI|{Jetwgz0a1VZH9#b(Ck+ru>PZ14H(rKo8N6r3@*O2fPJaj@NpDfp zynrl}H`G~6-@R^Mocr(X{8$F+o@VIHu(ZqSme^HctTFFnkR+9o5t8J}R?CwzW3k5# zRDoqewXGl9I?W20nyDHP_pY6sH@DU8t@b>OrKyC~t>zrgc$kHE*#>|7(Xzfdr5YgX zNO{ZlG((MdNZhb(O^}e=p_P}(Bzrs#aT()YRS`!gqXAO+?SY)yktCI}+52P<84=mT z;e9$s_CU&H&g95?NSe3SI*oD_ZDan{Dl_(>`?ps9v+Br{`|jkeB}otTs~?9~{XYS+ z^Ko9cu=(MZq(k+yBQGqvp8=7iZZ$w8sV5B(N$N>6NJ=SPK>q-3(RC`=J7{A|1E}kr0IGOSo-TSI|tW4L+L>hS%034kVyAzt(=sx#Sv$y z9PKNa=$Y3+?6`K7!#3At?Aks~qqJ=7e7YJStEJ4c zBTZMAumy<@B~r*X^lY~}?6Dl;GRD2CJSq^kX?r^oU%o|pZATJWo-GG|*h3vh_E5)f zoslZzr_ab*Bu>p+Ykf<(iZ+|SwMs(XwRLNitIECHt=%ivFG(Kj?XL?-en3A4a{Qep z$#eRKdfA?#ENK#K4Ad=LR z0!Z$>4c7|rH7l0yC`oeqMi5E*5;cPtkcIM&I%^qwwC%)s{L#;Ui=iHAy50kpep%h( zyDHckc^`u$sXQ4WN$%NNIVod{BhFAcmW1lC-nI>z6)-K+G$3xSP0k0m&23gY4-?Wf z!s=EzhZ+xA_$Zsff0vexn~zijWVMu8cBJWQVuynpwyg;g&UWbKWip37mP1^|xL1|O zQDrnhs(5=Kr*=?rausbhe`}SDz3cw1 zm0wnsOu6q)-dd9MAAR)W@NWE{0NMFCuUpvsa7)sm`q_~;ETf+Rk)&=lKqRRr4G>A{ gNi#@FDP2JS0F$AnmM5C4B>(^b07*qoM6N<$f}R~R`Tzg` diff --git a/classstdex_1_1parser_1_1basic__bol-members.html b/classstdex_1_1parser_1_1basic__bol-members.html index 13e7bf3b9..618746856 100644 --- a/classstdex_1_1parser_1_1basic__bol-members.html +++ b/classstdex_1_1parser_1_1basic__bol-members.html @@ -81,19 +81,19 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__bol.html b/classstdex_1_1parser_1_1basic__bol.html index 03b93b195..3847d06e7 100644 --- a/classstdex_1_1parser_1_1basic__bol.html +++ b/classstdex_1_1parser_1_1basic__bol.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::basic_bol< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -103,41 +103,41 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -191,7 +191,7 @@ template<class T >
@@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__bol.png b/classstdex_1_1parser_1_1basic__bol.png index e85a5e065383cba6ec07d2cd6b94bf616f7d3aa1..0d4608ce8b0f970dd33fd0199528bc61ff676c0c 100644 GIT binary patch delta 691 zcmV;k0!;n$1>^-GiBL{Q4GJ0x0000DNk~Le0002P0000`2m=5B0FzTOb&(-Ie{V@d zK~#7F?Vazks~`--mvyGI@BhSC>mLYU?YZq~v?m>QG?1?Rgy2^U!!TT27)bKc3I>w& zS1^#Izbb}gE+qMX>KVLlI{!%0=z|O-`Kr3UnPCFFQ;wQa=lk-HWB(j4muaBw>89Qd zbNpk!=NJ;1+cNt^nzr37^C`yae;zZ?Bo=S&$S+?kL(y3>Y!B@CtSQB2%b|_hRO4-5 z>am|G0CT?vb}y9-OZjvd){*?LvZtF`c()9X{HhYJqB$&Ux?cbK<<%?HWHb!s)$TDI z`2AoV5}DiPY-_sOtu^-UR)4Y{_WYi%hjkUZ=hAAOPmOKNo+Eh{Hudmaf7kAlex9dZE z0mF!Jd5CXdh;s=5&Y)lb0DlDo0Qf5y0Ki|t009091_1C^FaUtRf&l>h6$}92uV4TG ze+2^o_$wFyz+b@t0EbE`f2E5HNs=zDV2~t#1%o8{YnNf^ewnam(Dd1kDw=N8}oYFmW(zQ7}l7zk)%M{53M9l+v~J Z4;;y(JErFZegFUf2>?k&PDHLkV1mjdOwIrR delta 706 zcmaFD`k7U+Gr-TCmrII^fq{Y7)59eQNbd#W01jp#S$(-BZla=neVwO^V@L(#+qsE- zuN8P&+B>(*`aS=LsxQ-x3EO_}iWS!tUCegdP(I;Ayw2%OJlZ-cmMhe3J&$Evnw-)j zQ)^VO^0WSxYDUhz0^6)x^(vWPy1xJko4->xU&s&MeK!B9*e?6)`s=>!t^bqTckL4I zUR9mH#g4uWFYV2@`piFZsh;nh%dBbh`6iuuu6yhv%Qa`Ci(BTb{1f@>RK(@qEv55} zmuRiMv~{o9l_zGWBYD%@OJ{t$`ewt_V0D{5&-Q;`rfkphHop>Z?Tg)ll%n=4U%%zm zX8q0k&H8!wB^Q$~Y1Qkl-Q%BUT$}t>I5JA^#=NNT*>#83nZ>XAz3j;Q>whDe@77yC z_leb;^k#Fp-@*+G_gXKHF-a@foZx?dhDv3;em$$lCwEcD`maw_PQHKnevPeX-88uG z!+xbkP77pZ$iE`az_WVc%l-S@j>*reYn7L%&-qpPoWWs=nk~bTj7!W8J-8Y57;*=u z26<&hD0*I6Fzd@Ck;R_+o`$b3%Ws>mUZ(zi>cOwy=Bs@D^83rAl#>2`j(u%)vtQ(H zTWxmzU(E8zx7GiD+?H9pRJzJL;@92<(_c&uxpi=^%H>a&9fN-EIchQMK-S(@3ySB> z+qZTBU+u|99jhj+s^8*u{oAd8$+!7lvaMl0vsr&i+|w&3`mQbf0foel2w8{11C4)fL~JZ+c;G@wvoPvJ-2+ozt9Q z_T_GQpNj1T_S!kjFXe08RbNj0cjuP(rS^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
basic_branch(const std::shared_ptr< basic_parser< 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_parser< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
hit_offset (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >
intervalstdex::parser::basic_tester< T >
intervalstdex::parser::basic_parser< 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
m_collection (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >protected
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< T >inline
parser_collection(const std::locale &locale) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inlineprotected
parser_collection(const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inline
parser_collection(std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__branch.html b/classstdex_1_1parser_1_1basic__branch.html index 64ca9678d..3f0e36e7a 100644 --- a/classstdex_1_1parser_1_1basic__branch.html +++ b/classstdex_1_1parser_1_1basic__branch.html @@ -93,82 +93,82 @@ 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 > +stdex::parser::parser_collection< T > +stdex::parser::basic_parser< T > +stdex::parser::basic_string_branch< T, T_parser >
- - - - + + + + - - - - - - - - - - - + + + + + + + + + + - - + - - + - - - + + - +

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())
 
basic_branch (const std::shared_ptr< basic_parser< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale())
 
basic_branch (std::vector< std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::parser_collection< T >
parser_collection (const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale())
 
parser_collection (std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

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)
 
- Protected Member Functions inherited from stdex::parser::parser_collection< T >
parser_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
 
- Protected Attributes inherited from stdex::parser::parser_collection< T >
+std::vector< std::shared_ptr< basic_parser< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -199,7 +199,7 @@ template<class T >
@@ -251,7 +251,7 @@ template<class T > @@ -261,7 +261,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__branch.png b/classstdex_1_1parser_1_1basic__branch.png index 181cf47d2e8992b9fb8eaec3681e2e920a6faa9f..c4c1c191931090943c2659c715a1eecf477628bc 100644 GIT binary patch literal 1951 zcmb`IX;72r7RO(35Q@SD1Q)19N{~${UO*OE3M9fyB=HSKYXKqSG+vxT;ot6 zmT+SXCKRF=nh=&$%F=`esam;)fCYk71VV>RBM>o=uo$_o&M=Urx7;8-ZJ%z`h6hdH;O(BZ zyF&4ztE&sH$1w+m@Y^RjI7}P>>kr4@xKarKrXCIPAX@i=^gG5vO+yy7wm8fH)UL1=N%4^@$+tsKW!0!r$Qj(1bvcFLnE zm&1pKYEPANb-iUm$^LtIc1|RHG!4pMwRh+p>=rd;%*6NDcbK56X<4I!S{P|7u# zKBV$Dt-klh6_tDWln#j@Krd`8(2v}i0aYQ(GrC!yb9MFDy3wJarPs>m3fH<{Gqcp- zfKk$rTqAb{G4CuOjVzDb&Rp8|@EQ|gs`89szB6-*VSakm4a~NxK|BsGhRayUz1Eh` z8t?+zCylItxg9k?88!I6ZI_di`NU0uz}qAXS!|qT%?02-z|_gSD;$Jb}k zYX9RtQ~w@z;PBLcCJ%y_`sgHw_WnC>&Qt3ff_IHPY((Dp!@;6HMR^*}J0K%X{KV;8 zFeF@8d7%4>bf_N)&uiWzbjQ#7Yv+HTYy3Cn;nVC9i?JV}`Fwv4L}Q7AvxbP{={^~| zxK;P}|%S^une#RCX2h1#*#R1=6bt^nu zT@AyuhPk0qKRUPnnTRYj^uT-j@7~)Vgl;Di|HXOsnUh?h2rvGp&v#Ze3I#koK0cBQy?PI&arr{v@OwY*t#{rj+xp0smFXDu{6C{B3rE5>34HF4d;6kKb-APkqXn$qEdYFA>V0@T1FMd5SG`8 zL|zuC9H?*8qN48})}A%AST<%4^A04{hn?BV(%|(xF)s}*w(mW+Ce9BVo@$pfGgA-V zawT1xD@G?KGP}3z1O9SF8hxt0 zaMisqGQzg&5Ee@?pD4C6nfTn-D8LK?EF)|SX|UXf{HXHRS|JN3bzs0@4+1ntoMXIq z(9OmCV5vuy#|_Z~DN8o#h$?z}C-pBjrOW$WMkspV^rho01SP=S@Z|}?>ug4|uwt=Y z=PGWQycjYwDLh8gTE1Xhj|J2>-Ff$X^qEv@U5YEraa9rG|G^=gI&XJ%S{qVCCc;FPjBNF z+7|!l=@sPjNR#ryyrKS87(ce0$r}oY-O({PMU{U+zTq*2nN^Kx- zD4)-L&sTd?R3qm5^OKmJH1X=mu%0N%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+SlThis 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
basic_chemical_formula(const std::shared_ptr< basic_parser< T > > &element, const std::shared_ptr< basic_parser< T > > &digit, const std::shared_ptr< basic_parser< T > > &sign, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_chemical_formula< T >)stdex::parser::basic_chemical_formula< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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 >
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__chemical__formula.html b/classstdex_1_1parser_1_1basic__chemical__formula.html index 51678bd13..bae1397f2 100644 --- a/classstdex_1_1parser_1_1basic__chemical__formula.html +++ b/classstdex_1_1parser_1_1basic__chemical__formula.html @@ -93,36 +93,36 @@ Inheritance diagram for stdex::parser::basic_chemical_formula< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_chemical_formula (const std::shared_ptr< basic_parser< T > > &element, const std::shared_ptr< basic_parser< T > > &digit, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -132,27 +132,27 @@ bool  - - + - - + +

Public Attributes

has_digits bool has_charge
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - - - - - + + + + + + + + +

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
 
+std::shared_ptr< basic_parser< T > > m_element
 
+std::shared_ptr< basic_parser< T > > m_digit
 
+std::shared_ptr< basic_parser< T > > m_sign
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -183,7 +183,7 @@ template<class T >
-

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

+

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

@@ -235,7 +235,7 @@ template<class T > @@ -245,7 +245,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__chemical__formula.png b/classstdex_1_1parser_1_1basic__chemical__formula.png index 124122c7f621549aebeccb8e0477b2601fa60ee6..c6b6357ee351b1ce0bc8714688d015504365d5ee 100644 GIT binary patch delta 750 zcmcc0c8G04Lj74!7srqa#*GKFnyQOwo5d&ls1^SS4hnRvhl8ZUox_(Zz|GAmv z-TgK`rr%}KyH}{answqr-=dWtbDiUU8@rqSoz1f=uTd?a%dgqt>Ip5|%O;`wlpBrf z-_6J?>2`Ei{W9~l{hafC34$Cm&R4lSICTGbk%F-2?eD4D3wJM-yY*0Xe%0V=YY%T3J4K?cE}_?5g^oVluy!m9Ex(F;!8rnqF@I>HRl%mn#$WRW^w2nw06{ zVy|Qg6FK7Rp80GuqGq2g!rJszArGF|g zrahZ>XRGM$)uOR$S`Rd(r<$BL+Wz(Hp~^bx>HA#;(`PMP?JRjZopaml@a#C#vYAJ= zWJgVWCvf7-r6Y-H)3$y0;#vCH*iDcp)%ju>>!az{?KcM`tuj@dq_nVVRsCv?mI~7* z?l<2axL>^TBQI_z^OIxW8XBUP>D>L6`y)0nzwxJ->CL2ssZ&iAbLX*L{vavMVs`t? zn%i+lsyNqV-|;P2{3$U+)#ic5_w%Xl8#*}OO?s`xE;U_E!l1bC(vH%-mJ?Mg;_?47S&O}_(@PiZ{jUDX;q3Eg>Cpjuy)y5We$$<>HsbQsa7eZtJ2F;#MvY0vg6?srUBTiN@3*36$F^WsjNsZlx6D93c>%>Vh2AUwlT dbgnYxC;J(@t0~_W3x8w)0#8>zmvv4FO#ttSSgZg5 delta 769 zcmX@ac9m^HLj40z7srqa#zV_2(f8X}~m5S$0LdBb{*2!Pf+)*em$B^O8-pEv+ar;~x!}V|X%A_`n zrQdN1+M*Zu;8vdJf1Ad2w=cLWu%#xi)Ot4S#fAP&t2WCnRBx?aZ@udE{PYXe+&KZ! zFEa&JXzx0G&Ls4%r*7kl1=9{09)6+Iyw6L**t~AX3|UWQ!Gg@9Da;pt=Dj>?8NiTR z{b8R_+it0at-F6MwwloQ>wW!ehqKS0MF$+d%(Q>~&+QKWk3ysK8|@g*?QH&c?YaQN zywgV&7#<{ln#(e+==#*t3GI}siYEI`E6nEN4FOPAT*jsMx@ zEi*OFGv}Kb=EFFgI&MN5<{y+5C{ezS2;?=^c|w-un8y#lK9d zC#gFh`r>n4z~kSl_6HV61l%L9-pq^J$^69cdxOJ`G!y3^_x|pCkl*-Q%=G4_I0IUHu{{%@TH3Dd~3Hkt$A|>O;O9i{Boe;Z<=U@O}J=z9kcdZB(wWmdS{jwM0Ql z)%)?aug@F=FK(OtVXA?|`FB-w{$4J9@KU!TlKs}k_!Z2i^JnKfZe6vsGX8UZW80(9 z`TJSR&dT49;#AN4v1a4-wHv?fui$lcndg08Szqas^%G&1X|t|ZtOJUidfKa`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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__cu.html b/classstdex_1_1parser_1_1basic__cu.html index bd00d5720..e7acd890e 100644 --- a/classstdex_1_1parser_1_1basic__cu.html +++ b/classstdex_1_1parser_1_1basic__cu.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::basic_cu< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -103,23 +103,23 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -129,18 +129,18 @@ T  - - - + + +

Protected Attributes

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

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -194,7 +194,7 @@ template<class T >
@@ -204,7 +204,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__cu.png b/classstdex_1_1parser_1_1basic__cu.png index 6dc86f687e5c19940cf262fc6093b59afd61bd5d..9b0e44bbfc0166feb33a35257dcdcbb78b543f0e 100644 GIT binary patch delta 700 zcmeyz`j%C(Gr-TCmrII^fq{Y7)59eQNFN5`01jp#IXT#{bfThteTAosV@L(#+qpL< zZMNcRx$PUe>i+*uewJp{g_o&60Ju#gG5nIamJjfo;nrf0^jK zmH!=^?2)2b`K_}gb?wuiGdAw3KhB%ObavI;pHth@4dzZu{F`t%ozt*=tx0XR^s7C8 z7tQ;hVRHa>s!72_22d4>+db}J<@hi z_pRLF&ink|6eliSbMBvC`0}mC?%BQ)e}8!1{inY-yh$?F*S)5iy(ZbNe@f(!3zzq7 zsekQ$Y0Bg~UXzahdb{L*be$m2>Hlx%N-BMCRIv}7+oavgrTq4&CP0%Pc>8Tw0eTq4IK*AMY$4;qStAS4?cKuf2c6e*5QSsTveor(rVQP!SviB+9pYmd#^{=Q`I|F4g( zT5svJuu`kv$nU9@`ghO%%U55n-?-ZOPxJ2y=|A7qM)f%9TFX+U1@u zecC+9t5SEn*QJeiug=@fczEjm1{K*?^7q(1e@T?Gd3J@TPgqjX%cHrpB>yk_u8Ts8 VS9gDQO$8=M22WQ%mvv4FO#tEeRVe@f delta 717 zcmaFM`j1tyGr-TCmrII^fq{Y7)59eQNbd#W01jp#S$(-BZla=neW$03V@L(#+qv)i z9xL!1Y3~d<``iAb>RI_5=c2dYzU{dfWT+)^{Ex!1pIw==mfhwO_PiI;JWr+AYBW#)nE6jNhMWt|K)7Dq#s@VF8|u2UEkg|Z?2WiuRraQ z{c@Kb^REdvtBOGob^tN;fI?o!-H+RO#ePEO#c&o`TPg-WBbkjuCQd7u+)*C!BXlA z!-T~+8TFWQ1=SyS`Z6_^ zJ>%u{y>{j{*)yYmn_bF@KYshZ(Z#4;>&`cn#+z= zVKnS{6j+{@TXXy4fk)AqHtQxmsy@HZW2-Fp?`Y{wHhC5*uca&Zf2_5A|6S(AwK=tK zqdfX7This 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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
hit_offset (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >
intervalstdex::parser::basic_tester< T >
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__cu__set.html b/classstdex_1_1parser_1_1basic__cu__set.html index 4ced4df0e..a61105590 100644 --- a/classstdex_1_1parser_1_1basic__cu__set.html +++ b/classstdex_1_1parser_1_1basic__cu__set.html @@ -93,7 +93,7 @@ Inheritance diagram for stdex::parser::basic_cu_set< T >: stdex::parser::basic_set< T > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > @@ -112,23 +112,23 @@ Public Member Functions - - - - + + + - - + - - + - - - + + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -139,10 +139,10 @@ std::basic_string< T >  - - - + + +

Protected Attributes

bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
@@ -150,11 +150,11 @@ Additional Inherited Members - - + - - + +

Additional Inherited Members

size_t hit_offset
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -218,7 +218,7 @@ template<class T >
diff --git a/classstdex_1_1parser_1_1basic__cu__set.png b/classstdex_1_1parser_1_1basic__cu__set.png index 8d11051768beca0bcb76c89ddee7ef370ec7e9b6..a61bbfd9c7e823d9400dac7dea67f3a5527289a8 100644 GIT binary patch delta 946 zcmV;j15Nzx2-paaV1MIDL_t(|0qvddlB*yL#Se#>PTv2CuU3%+Q2S@^rgqcej1ofN zXCVEGoO8aokV*2=3I>w&S1^#IzZ!;Q9whmiMgiUry8KAe=ocAC@?8z%R)!hyPC03I zUEcM?$-ea0$2`zmhOYO3wf}Uy#~2b>+q(Ninzp^I`%z=9#eWQRj_RwO#j6j?pp2Sf zTW}DkxTwQcySCT6n%MTEp2ss6z`U1^JxiKly*>kmGE!%0%g|ND?ir5aHCMRlEnR)5 z+x)j5ugy^B(J`1$yT@=6?}uFuujYmgPwUgRPlE?b#qW@FzJQ&LV?Uflk^FWfHs9+#Te+2_c`fFmyIp=E& z0RFFT0B~`A0mJQfeTXk$m=G=x@eK@7mjK`s6qCOJE`Rtd7y#f@Ip=(FA(P~#6$~Wl zuV5faf9*0P^B~FBGzxGW)Q+a*N0NJTVIawUbu-RFj2LF>JNl$~{_?J)P4=a~KIVbm zGIYHMtbMiQwrIQO7Z?&*+q(Ninzp^I`%z=9#SCE?VmC+l_wPeV?65AC)oLNx#%x`x8?&ybb*bOz zE47s*kM;Jy21)*yd>J126DG+M{oOo}bl1Odq?vsdV+uOPyHP%|pK<8LDG%}ir8&$)gjf%m9)cdk)>ep@7czY^; zq|8P@AFU??MXmbMIC&38RyFcHg<+`Z)8ogSpoEZkZ z!p({DlR8(0`oHxzeqoy`vF7%@Xv3Fg(XU_K%UD&jI{Y^4<-qootHswPzXiQ7vvv_~ zGrAo1RXI3#YWDdA-dXC!Exzl^&d%KSb-Vugu#6275+N(Uy-H{f_xHc9IC1UO55Ih7 z+h%V(JFoV&4bMrtBDquRX55SMR(05&^J>n%=}~&OO3L)Np7vl3U;p;x?x`yMU%!Pn ztJFvN@vz6oPO9;%-@vExvyh8z(wA_92}|~iwaqEE+s^Rd|0^a2_3PpWF?!G2e=xPN zKKvqZ|A4@EA%>c!$pXx>llL-;)!zv{XE{ISgi2)=E3@Y>Z3&M{@w<6E|4w|8J(k3;Z#rg4@c5qi6uyGzaE_Wt$T5= zB)1uxCTbYxhT0pMhU(vLiOD_n?zZg{mC)JqUwY<-CPXhhn3NE(R7%ok!S>fcYqBb8 zmz{mL{YD!1|9_Plt#j{rt48hi0Ebu7tuOEPnyCFcb=Pas@v7ge9VgkV#kaBB9a5=u zuip*~D@#~dsgM|0UYc`bJd~7{hZ%Hq{Lq$garu)fvF+UL7-M#Qi>uz-qCH$(UW!Y) zxXioqAnnz5!x+Z=Dc$Rmfhny3HMFWXrtXnn6a3iQKFvdEZSGBV!K<$>PxCiVcfWEZ z;fByG-c_wrPZ@k^mTfM&`Fv^exBk+rHhb&OrG7WKxx?(V9cQRz=+T#;Fneqa53~1Q zCpcE>L>GOZz@J_fM38N_E0inQ7;neFwC!^BN{hU5 zx4DPw`4e#syEG>;0D-5gpUXO@geCw&G26ZX diff --git a/classstdex_1_1parser_1_1basic__date-members.html b/classstdex_1_1parser_1_1basic__date-members.html index de9a4e58c..0d3bdb1af 100644 --- a/classstdex_1_1parser_1_1basic__date-members.html +++ b/classstdex_1_1parser_1_1basic__date-members.html @@ -80,28 +80,28 @@ $(function() {

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
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_parser< T > > &space, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_date< T >)stdex::parser::basic_date< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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 >
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__date.html b/classstdex_1_1parser_1_1basic__date.html index 9632f15f6..8c311ed3e 100644 --- a/classstdex_1_1parser_1_1basic__date.html +++ b/classstdex_1_1parser_1_1basic__date.html @@ -95,7 +95,7 @@ Inheritance diagram for stdex::parser::basic_date< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -116,30 +116,30 @@ Public Types
- - + + - - - - + + + - - + - - + - - - + + - +

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())
 
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_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -155,11 +155,11 @@ std::shared_ptr< - - + - - + +

Public Attributes

std::shared_ptr< basic_integer< T > > year
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
@@ -175,13 +175,13 @@ int  - - - - - + + + + +

Static Protected Member Functions

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
 
+std::shared_ptr< basic_parser< T > > m_space
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -212,7 +212,7 @@ template<class T >
-

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

+

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

@@ -264,7 +264,7 @@ template<class T > @@ -274,7 +274,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__date.png b/classstdex_1_1parser_1_1basic__date.png index 164b0d0f8860ffdd61c682863e65df5399898b34..1ef374ae07668c5a7e462aebaa12f2c410ad8aaa 100644 GIT binary patch delta 709 zcmeBX`^Ku+8Q|y6%O%Cdz`(%k>ERLtqz?me00%RWoE&UeI#JQSzR}agF{Fa=?cCRs zUMUE)%=Vjl_5J@N>W1QJ46fI0`wBN^2+#05EUx#nJ9E~u$=t%8^P-v?RUVs4co@a8 zIv0sg`ZF_%ZT;+Z_LEAgl$kyEty-3!7QwK7%I0ZTzTUI5*uMVj+f6L5rlq~QYH)r2 zx9T3ni92%^`!CTxe%DM+SUb8tW`UPU{@Ul$_2(TliE3MXxb6JBB(dmqzoO>8+Vj`@ z?eCqu58i$6iuazDc-xM*&34lKO}b}89>*Hr`K-OIATWA$ng8_9@%#1^wXN#uI=J^% zG>`0l^=Cj!WX{$3i?7~#WZ%v!@^|>R|B<`L|69lG{L;Ht^QGL+%vY`yvD;d$cennF za;Dew9MzM*f4z17zx|Jr#JBfvXG$tPZ&a}lgnQKZu!-;GovaN1!^IgacJ6Clj0e;+3>X~turV_n$tHnOGPOR)OI>`D%G{`C$4QS&B~&!yeB0K( zOx-oj@v@2ew!^ReCq-3RH>-rcGALQ&)zMUsf_ux)Zcvl06=Tlr`E+ic-t+x6l}~v> zB}JQOuZrfW(+y>=O_G~5<@Cch-%AW1f0g>ce&qJ|!~3*mJ->9%)h?%RhW+$U88uno zW1{3MKE_O1(r5R6x7_gyKYw^#YW_9*vx4XRr3V!}KT7dT5?L=jQ*r5(b8G7*vlq=u TROU(nrc4G;S3j3^P6mUq-hly0p`#?r0UP^c&0j3bvJ5LMBsr)iJxTV_ zq$kNf3iQc6Nb-AX1*qC$!{e-J|BZLiu>8&^9{ zSX`CLqoQ}q^Jwm4@*L?4bDzjka$GUTX#;mXk2nPVV7@Al6uN0Xi;`)H+K zmSq`L0Pr7m1At*QH2v*1GXBu?EBwItW7E$&2LO6$(gQ#rO?m+6qe%|{eKhF-ppPa! z0QAwM2Y^1B^Z?LDlO6#2e`wMJKp#zd0O+Gh4*-2M=>g!8Qc7u9AxYApn)H&?N0VNX z`lzNq>OUS-D?l@7X>6PKpCna!FTEsHdO`mzl%wB9cpv7ft$Ba9{nz%rempiq-O_Zu z2Q2lHvSiACl5Dv|pQKU_?j*UA-;Sil7F(R5ax5vM(_uEFFmHY!e}O(niA2W5Y%P<^ z8!J~A+s~?VYUK2Nydmx!OMje}2K{L%y=+U<)x@spcc+{)PO+p?ERH|5akb-w#Z{?1 zDtfm(kLdl*si*kL+$X7&9MhlLu)g(*`zzp$`~KVm%{%7|UM`Ys^LI|+@UAcKoV~-h z?;J^bp%42occOpxFaedMi~3V@FG(MyNiRu#H0dR&k5>AWQW{nN05Wc!NH2y|`2YX_ M07*qoM6N<$f)B!7pa1{> diff --git a/classstdex_1_1parser_1_1basic__dns__domain__char-members.html b/classstdex_1_1parser_1_1basic__dns__domain__char-members.html index 679f439f3..3b2914017 100644 --- a/classstdex_1_1parser_1_1basic__dns__domain__char-members.html +++ b/classstdex_1_1parser_1_1basic__dns__domain__char-members.html @@ -82,19 +82,19 @@ $(function() { - - - + + + - + - - - + + +
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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__dns__domain__char.html b/classstdex_1_1parser_1_1basic__dns__domain__char.html index 95a7e5288..f7a57d2e3 100644 --- a/classstdex_1_1parser_1_1basic__dns__domain__char.html +++ b/classstdex_1_1parser_1_1basic__dns__domain__char.html @@ -93,7 +93,7 @@ Inheritance diagram for stdex::parser::basic_dns_domain_char< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -104,23 +104,23 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -128,21 +128,21 @@ Public Attributes bool  - - + - - + +

Public Attributes

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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Protected Attributes

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

Detailed Description

template<class T>
@@ -196,7 +196,7 @@ template<class T >
@@ -206,7 +206,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__dns__domain__char.png b/classstdex_1_1parser_1_1basic__dns__domain__char.png index fb6faaf693aa4b44e655d119a6979ffe5180bc58..2762da102d4152ce0f597b015594e5dbb51322d2 100644 GIT binary patch delta 700 zcmV;t0z>`X2FwPKV1L(1L_t(|0qvddlB*yL#Uajg&ig;{t%~Lkpr!40yVuhpQy?*f zA0d2A(=<)jmNbcoTv>>K2#A0P#t~%qCnEBkv>d$dbp45l49WK(5D|G*p7Q%Jf*J3^ z_%8EGYu~PWpI^u2Z&uVZP1D7pj)(ny1VI+jRyLnST-$qPJAXzOXPlxkG|7Pe1 za3KZ|?D00j*i6h#(V-vJrp~ut^4y=>tLr}sVdx@Q1f}vc5NsO#%FZ-Rjqe)4k-xCd zFnSEaKsk)b8;>sLM`ckVa0lB%aN_TCS&&7v?Sc7n7;b8$*1hHr)`FhDPt}4g1)DFz z7Ma%TUFR#fZau=Ap1ufOeYu|o&pI^u2Z&uVZP1D7p zj&;dp4P)e0#lD!C@&1vXa3??j+Kv%qKwDWc1Fr485}wh;8K zTWbgC(VCv=8U(xlh99$#?e1UIyECTFw?7lVU|*#M9hjW}L$dfhYh47pY$+WL1e->` zvNKK7);14dcM+`q&Jbugq56eUIT}+AWAetMiy>DQb!LY2Iz-U_K3=2~1TMgVEXaVi z-H$Ja;i^^f_^bACEoczx7o;w8g2o-Lul->y*iyRrB5ccQ!POG&O0Y)gO^;uM`Xa;^ z!CVA=AMC}^6+(ajw4FSP0B|hh4>bUMz5E7(rFw=!b*=({D1+tzPz$qQ2mt{6he8BI iKm=5s}xVw?Q)(C&pg${u2?Im7hW&BI4wE1aE{i zgJ6Zck-p37Z|__0_xXKX{#Hdh(>2{T)ba6Yoq-$A@evUj$bSTaETXL(K8v_kd*wJr z7iXNJF|;lvi)(c!{qqRsF2o#y7?lm?Fflhphkn$Wy1gUy#-OfsXLbDv2(uT#Mpf!h z2f?AyRd%Lp>W*p=L<8L^oHLA`hA>wSWAesN7xSaBXb`wW8D&9qUU&L*7Gx1^HF{qT z!+nj^!hL<(h@8u-QHY3q zO@0%>R`cf4Sw!SDVHW&l1R^5;oDcyK5CIVs1k184mzI=L`jeXhKz}bF$T{b0OUeLn zWg!A0AOa%jASi>kvGg|RZhGQrtQu*~!!Gq70Gxaf0RS}e5&{6|$-@=>uTT-Jd^SjT zS?Bh?U3j10$K`KTv@>1PZ9^Ta%gu)|@~UEA%*?nh(l0y+5P-IG1R2m)JZ8YP+AHB1 zU7T@>#!y{4+g4S(2Y;;?q8_auphs(ZrfU$?{X6>@N48s6wWl+tZg2lhyu-0d4F)g= z0fuDpdDgoK)@>;r9R!C)SJ|1aY44aPu!jit{T?CEa6This 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
basic_dns_name(bool allow_absolute, const std::shared_ptr< basic_dns_domain_char< T > > &domain_char, const std::shared_ptr< basic_parser< T > > &separator, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_dns_name< T >)stdex::parser::basic_dns_name< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__dns__name.html b/classstdex_1_1parser_1_1basic__dns__name.html index 38ba06469..7f27cbc80 100644 --- a/classstdex_1_1parser_1_1basic__dns__name.html +++ b/classstdex_1_1parser_1_1basic__dns__name.html @@ -92,34 +92,34 @@ Inheritance diagram for stdex::parser::basic_dns_name< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_dns_name (bool allow_absolute, const std::shared_ptr< basic_dns_domain_char< T > > &domain_char, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -130,21 +130,21 @@ bool  - - - - - + + + + +

Protected Attributes

m_allow_absolute<
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
 
+std::shared_ptr< basic_parser< T > > m_separator
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -198,7 +198,7 @@ template<class T >
@@ -208,7 +208,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__dns__name.png b/classstdex_1_1parser_1_1basic__dns__name.png index 9f0f93e968105080956170c629bea6d71a6fe054..a81a1d501a8a57f8844c4afc49783a7339618ead 100644 GIT binary patch delta 712 zcmV;(0yq7!2Al?vV1K7cL_t(|0qvdPu7e;9g%8K%=DhzCUv(%HP`9~kfpqaifl~NN z>HcDxrfEQ7BFW+8TqN0#oQov;(IHnbFOqyuEeH3VK7J&5pr3G&O`+J`&km-p;fi%zl75A8pm47{Epfb!NdF3y?ELSrh z+g$r58ooD^EKyU_wrW%3+b((S&j6V3n(QbKbFO$r8(iB+nw9r7O*7v$*O|X!^F^y9 zYuAl3cgi4_Cs|okT;>RlxGwzNJg-2eXJ5_MjUxNYP#j*JC-2vhzgzcf%YbG*+?Gq# zY9F)pEA7mhUVqlZLw_W*=Z!i~lIQyLpVH_56e{d68s4axRkWN6tl( z{b=TzrfC{a0PrpS0lM&$d-1zcCH0_C7-qQJ-+jabN{0qU&}z< z(==TjrgmC#T_ZDU&W~o*{Aaj=l%D7&NaoqU;vTcHvd0WmhG|J-n+@6dE2f#B@!44o zu6+~bUVk$OnRT{^9jr`^ZyRX4;PL!AfX(yT2W%di7{wf@H@l6bS$R*>w6*t>2p03R zG+5e2E*7mA#H?3Kao&BJW@cR}i*BwgqO|22~I75##1z5R{ApASjW u^YZhOq<-XFlGKl!OOpE0%oRci!kH7pDlRtS@!LUhyRpMZmT=$I?1iS*!IcB zgIjZt?^9oGrvCl?ou{|z^N(LQ3-}h|Ti(91R;J0&;O+AT`a76r*3a`0@%TI^zOeV^ zjQ57jt%-7z8lPF(E}i}~>uK`j)9t5}Wz-@UEnAj5b=k4)_fH*qFejVgO!?F|O8lP# zJ}wH|(KpdV`~AvUv%Wr$xu;NB)Lp)oD{^z*k2@b{zwzI+L1V|6iQCSdX1BMkeX@sX z=DcFhZFxJaA8bE#w{iQsaK;a>{?=O=t%~CBU$FAT+~jR?%f3clj_)x;UTEJhNl$07z1+Otx?Ng{w_lF1yk z=_+3rpH%hyd!q2@vD<4**+ZAVck8<9KdEQm302Qly9v5q|61)ddoj1>>b3I!=hWBz z{a#j+%be3(~X0NuKd_0oy)xK`E=$vW9q*Mq5jU-Z{~`=b;%-(tPO(&r_auiL!Y z_KUv#U0Azc>xOuY|Go9fi&uU95cXkKSBO@?GPz}}5tmDR?4la|zNDQXosRPl>_lg6ff@4w&VVE_V8 LS3j3^P6This 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
basic_email_address(const std::shared_ptr< basic_parser< T > > &_username, const std::shared_ptr< basic_parser< T > > &at, const std::shared_ptr< basic_parser< T > > &ip_lbracket, const std::shared_ptr< basic_parser< T > > &ip_rbracket, const std::shared_ptr< basic_parser< T > > &_ipv4_host, const std::shared_ptr< basic_parser< T > > &_ipv6_host, const std::shared_ptr< basic_parser< 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_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
dns_host (defined in stdex::parser::basic_email_address< T >)stdex::parser::basic_email_address< T >
intervalstdex::parser::basic_tester< T >
intervalstdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__email__address.html b/classstdex_1_1parser_1_1basic__email__address.html index b7a36b71a..58aaf1d69 100644 --- a/classstdex_1_1parser_1_1basic__email__address.html +++ b/classstdex_1_1parser_1_1basic__email__address.html @@ -93,72 +93,72 @@ Inheritance diagram for stdex::parser::basic_email_address< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_email_address (const std::shared_ptr< basic_parser< T > > &_username, const std::shared_ptr< basic_parser< T > > &at, const std::shared_ptr< basic_parser< T > > &ip_lbracket, const std::shared_ptr< basic_parser< T > > &ip_rbracket, const std::shared_ptr< basic_parser< T > > &_ipv4_host, const std::shared_ptr< basic_parser< T > > &_ipv6_host, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
+std::shared_ptr< basic_parser< T > > username
 
+std::shared_ptr< basic_parser< T > > ipv4_host
 
+std::shared_ptr< basic_parser< T > > ipv6_host
 
+std::shared_ptr< basic_parser< T > > dns_host
 
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - - - - - + + + + + + + + +

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
 
+std::shared_ptr< basic_parser< T > > m_at
 
+std::shared_ptr< basic_parser< T > > m_ip_lbracket
 
+std::shared_ptr< basic_parser< T > > m_ip_rbracket
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -189,7 +189,7 @@ template<class T >
-

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

+

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

@@ -241,7 +241,7 @@ template<class T > @@ -251,7 +251,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__email__address.png b/classstdex_1_1parser_1_1basic__email__address.png index a6dc8378d19870eeb076aa1bcd909faff30d9818..e543eee7afaf6fa0e9b255633be19edda1b0fb6c 100644 GIT binary patch delta 761 zcmV%1iSt}ggJ;(Z?6 zbb6znZs)pRWbB{Y`STpu_Eb$Lht|IA@Ar8VX(f{;GL*HJ_kZrj%APQ=F?1(<%T=Ljo01Nfk#Ao8!^XAl0;ax^-mhY*WI^SE~SN;m9 zqV7su{iFJ+AL;*%cS=V&ib(P^>i0{M?W*&V zWV`CTB-yS;-eDMq`v?HOp$7omNH^nsJnjX2Gu{#RR={`T?fDr1T2|);fOge+0ia!V zUI1uUofiPwRp$kOcGYV4i_CoAvsFs2h3 z_3WGLe&X0axASMZiA_({baH5IyM)z`Z~Lv9hk5?|nU^--`M)G9uX&SXB`=wzP}bVA zwvClNVSiv_XdBAsyE2)pb@KB|OK?yDWDcj(z)} z{iecfw^oRr5J}Z|_OA1DukbD-Hp}-^O}BAs)7;g&wl}Kth7IP2xF64X(C4c%2FpvS zEE+9pVHhsAx}h@KcjCErzeQ+Xx!)vNSzX6`RdT%6@`#ETbNck`2> zKQA6F=~_w+`Pmkarmyp}i)WXu&Bkxa&g{MXEJ+7?`&U_#zN~NXPMM~1Ay;iA>8kqu rN>aP(ypq(eI6iS ze6PR1n(=;5`O&?iAMRG9*ReHBG_7Pzi1CeMkO-eF&T#DN6V`@8pin&)F*G6h058qE z9v+iQq*e8n~qjmsypWZz=5^bbjc~UEL ztW0UOTy6DT|Crz3%l_q<2Yxm2HE+MR&D-Mdk8Sr?Ro;01etvD{=lZ$-y*GWb%%8O8 ziRxsLQ<2u!wr$*`&J)tMZDGwm_02b3rHfyR1qEqLynQw1>c?9*#dr#H<89No1|BM2 zb1!x0BfvL8Lf#s?$kePJC#u{bbjq`U8m2d{;Hik_0sCu>PK6rxrgkT z@$UQW^3v${hHRBzkk}SviHL6 z{ih~rY|5qDFZ|t`kLB$A?d-z9z`)7i M>FVdQ&MBb@0Pj1JegFUf diff --git a/classstdex_1_1parser_1_1basic__emoticon-members.html b/classstdex_1_1parser_1_1basic__emoticon-members.html index 406b8aa18..6a751d0a7 100644 --- a/classstdex_1_1parser_1_1basic__emoticon-members.html +++ b/classstdex_1_1parser_1_1basic__emoticon-members.html @@ -80,24 +80,24 @@ $(function() {

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 >
apexstdex::parser::basic_emoticon< T >
basic_emoticon(const std::shared_ptr< basic_parser< T > > &_emoticon, const std::shared_ptr< basic_parser< T > > &_apex, const std::shared_ptr< basic_parser< T > > &_eyes, const std::shared_ptr< basic_parser< 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_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
emoticonstdex::parser::basic_emoticon< T >
eyesstdex::parser::basic_emoticon< T >
intervalstdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__emoticon.html b/classstdex_1_1parser_1_1basic__emoticon.html index 82ebb3ae3..c79fad5c4 100644 --- a/classstdex_1_1parser_1_1basic__emoticon.html +++ b/classstdex_1_1parser_1_1basic__emoticon.html @@ -92,71 +92,71 @@ Inheritance diagram for stdex::parser::basic_emoticon< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_emoticon (const std::shared_ptr< basic_parser< T > > &_emoticon, const std::shared_ptr< basic_parser< T > > &_apex, const std::shared_ptr< basic_parser< T > > &_eyes, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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_parser< T > > emoticon
 emoticon as a whole (e.g. 😀, 🤔, 😶)
 
+std::shared_ptr< basic_parser< T > > apex
 apex/eyebrows/halo (e.g. O, 0)
 
+std::shared_ptr< basic_parser< T > > eyes
 eyes (e.g. :, ;, >, |, B)
 
+std::shared_ptr< basic_parser< 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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -187,7 +187,7 @@ template<class T >
-

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

+

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

@@ -239,7 +239,7 @@ template<class T > @@ -249,7 +249,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__emoticon.png b/classstdex_1_1parser_1_1basic__emoticon.png index 420ef04aed7b0cfb214ca5c223408231845c2f7d..41d50ff8b3cf84961334b13387d8d5c35c768ac6 100644 GIT binary patch delta 666 zcmV;L0%iTP2A&3xV1KDeL_t(|0qvdZj_V){golY#&HF#`Nm>HfkTh*~yNJVz*>W+) z9~b8@mStH+5*CsiM-zx7d)5RZ$)42&3g(9--&4!M=T0AgB-zr}fk^UGo%!`Z8~UAp z)i&=@FTJe&k9Pdo2I`)s>D^&&zwGY~pg`slQ37d7s>R@nF@N7<1}ej13!nMRKNhII zdNoj5z2S5>Deh!$+E#69eA^|T`!kW7xzX7yppy_@?1atart3?e+RUG@rMEG=7dPHV@)8E>{%0tBzx8h zv@FXqkO1H-x&gpQ8V%@n8;oc)pp|DVqTzsMmIHvkliC3rlg|Mie|Ho@2qOtWlE%>l zlBAwBfh4JCIiT417_#Nys?*i(f@#cYl4SHnAW6ES%X6EC8EB)uBd^-}9`$nK+W%rgb)VOKXR3 z{APd9jjUD%40suSzz9@mE|n8xy9Wc-bvde`C7NXP9*tD`Y6!% z-+hvNPxFLGvS&>olI&R%h$MT~3bZWCGLQh^PxJ)0>wQZNPpWNR56{gvyaTt;mm4T9E zWnUpluH@RjVlftb+(2b$0qq-@p`xkT>=O&HqE=K3An$*o2+{{oR`aZOtnNuvZ{q~l z8qOw0NRoQi3Y1bx1L+^5 W^Q^i?j@2Ll0000This 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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__eol.html b/classstdex_1_1parser_1_1basic__eol.html index f3ae34831..7ae7f8a0b 100644 --- a/classstdex_1_1parser_1_1basic__eol.html +++ b/classstdex_1_1parser_1_1basic__eol.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::basic_eol< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -103,41 +103,41 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -191,7 +191,7 @@ template<class T >
@@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__eol.png b/classstdex_1_1parser_1_1basic__eol.png index e3a7295e66a0edd3c41550f91ab5c112ed69312d..0f593179db0c5cdc8a569b6212fcb7d3504236db 100644 GIT binary patch delta 696 zcmV;p0!RJ$1?dGLiBL{Q4GJ0x0000DNk~Le0002P0000`2m=5B0FzTOb&(-Ie{@Mi zK~#7F?VangqaYB3o3<*|@BhTBQG`JZIeW61n4J_|av57bE|b5QrfIskFp=b?6$~Wl zuV5fae>DurJV^5I)HC?K>G~r{qc<{;ZJcFKM#ide|u#H&wU`tPgF3Fq`!iJB>gorOw%-7TLAEHbpwEl>kAlex9dZE z0mF=Nd5CXdh`a;0DlDo0Qf5y0Ki|t009091_1C^FaUtRf&l>h6$}92uV4TG ze+2^o_$wFyz+b@t07Ipef6~Q;BuST6Fi4WWfwkG<`~7T@`Z?dz`AX`u z&q?kQnUu5Hba_C;^|-T|t;c-w%-%fh@|@KF_1k_1&ws(L7vldGPkM6x%l|jFo^{jJ zY(0-C&RV3f+r<>xPZUt%_$ zZ_{=0LO%E2^<`JnZry)v@cPF+d%4*QWnb>P$2_g>=7Uca-FBW!W$$F$?RnR>Qg z!ufH;hn~wj{rvBz1+?$uEEB4~dGpovKcVt#xFYw)T)sWIu=Ary@vDU6OJ81?KkZYf z?WI!F-`RO-uI~l*ex4lt+W&U`4Ew3a9&2g(yvggVD1SdWBx>G`dr{M$)*aLfwx0This 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
basic_fraction(const std::shared_ptr< basic_parser< T > > &_numerator, const std::shared_ptr< basic_parser< T > > &_fraction_line, const std::shared_ptr< basic_parser< T > > &_denominator, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_fraction< T >)stdex::parser::basic_fraction< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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 >
intervalstdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__fraction.html b/classstdex_1_1parser_1_1basic__fraction.html index a25662a1e..f091340e0 100644 --- a/classstdex_1_1parser_1_1basic__fraction.html +++ b/classstdex_1_1parser_1_1basic__fraction.html @@ -92,60 +92,60 @@ Inheritance diagram for stdex::parser::basic_fraction< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_fraction (const std::shared_ptr< basic_parser< T > > &_numerator, const std::shared_ptr< basic_parser< T > > &_fraction_line, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
+std::shared_ptr< basic_parser< T > > numerator
 
+std::shared_ptr< basic_parser< T > > fraction_line
 
+std::shared_ptr< basic_parser< T > > denominator
 
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -176,7 +176,7 @@ template<class T >
-

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

+

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

@@ -228,7 +228,7 @@ template<class T > @@ -238,7 +238,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__fraction.png b/classstdex_1_1parser_1_1basic__fraction.png index cbe4e747580293bb1cd1f3fe7c71b0f0e21e42e8..c3afbd2916a90e1d22f07f8a246a636466cd14c2 100644 GIT binary patch delta 709 zcmZ3>Hj`~aLj4j?7srqa#TD=~ z6nUEab@9JnclKS|K7Z-roRw|&c-Q{hbYEMgbIT?}l}l3}XU-12CSD&M<1RR3?cJ&K z|5gaqpJF;`m~%9j|773%(Au>;rT6L@*Z;jUsB82K09#k%!5+v?4X$hZ+hssKz9?vZA#+21HKHTUWZFXL-%;n|~$ zrq_$@lJ?y6X@-htm|2_3&LW#!=hWJbM@vN-Z?^o2@Y*!V|ETQI8q-xO^%vjIh)tW| z8h!QpsetFQ)2@|W++SeFn_pb=$UXtC_uPl1*$1|aZs^>bP0l+XkKC!}Dr delta 729 zcmbQqww7%|Lj4X;7srqa#ghD8cBSW}JN%yemWMU0(l3iSKkJ+Qq?{MmJv}bHtekYb zd18w5zT)+_;%?7Bt&sgcPu~8v!`;gzd)ZBX-^qCX;7zyzv!~M9dRd;%5?y=Q)mq1r z`lVOMoYtKABC0RNe%_K(n`Wu7=_k+AbNw~*<=R_UkM_+Dw|r85chcR>{g+RzGx||@ zR7&M}$KKFyCb4(ByeGX#n0TnDIds<7-hN3zbEA1-PXj0JNZxHV*`l)V%d?p(m!jfY z_J35Iu3U5CY5zOVtxul6KRHvq{_L$%zhqX;{-3u}wLh&}dn=XowC_8!_iMF$CiQ>) z7~ZC`f5Cp`%0EZdPG0|FKOgAx6(FByPMVMsALThMHPTIhp(fUxLBi?qggbeQ7w|Z5 zYT{`!;ybw}mf^x|HBN>vOFfwwfa)0>;%BKaT$qj~RF6eWh2g`VAg@dgMbAqNvs5Ns znXcBU@^z_0k%au^txQ*HS6ZIG^)ut&;vmmSm-Q!kOuF29`TYBB<_eQ@W|UtGjlTac zX5Wr)@4tO4zQ1?X@|RWo8Q*s96g#?Sd;PO2wn-^(4Lv8Vk>&9$0tR}pXmb6=9KF-h+AmdKI;Vst E0Bn9@h5!Hn diff --git a/classstdex_1_1parser_1_1basic__integer-members.html b/classstdex_1_1parser_1_1basic__integer-members.html index 3175149c8..8ca9d7c0b 100644 --- a/classstdex_1_1parser_1_1basic__integer-members.html +++ b/classstdex_1_1parser_1_1basic__integer-members.html @@ -81,19 +81,19 @@ $(function() {

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 >
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__integer.html b/classstdex_1_1parser_1_1basic__integer.html index 22f0458c1..317ddae78 100644 --- a/classstdex_1_1parser_1_1basic__integer.html +++ b/classstdex_1_1parser_1_1basic__integer.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::basic_integer< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > stdex::parser::basic_integer10< T > stdex::parser::basic_integer10ts< T > stdex::parser::basic_integer16< T > @@ -107,23 +107,23 @@ Public Member Functions   virtual void invalidate ()   -- Public Member Functions inherited from stdex::parser::basic_tester< T > -basic_tester (const std::locale &locale=std::locale()) -  - +- Public Member Functions inherited from stdex::parser::basic_parser< T > +basic_parser (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) -  - +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 () -  +  @@ -131,18 +131,18 @@ Public Attributes size_t  - - + - - + +

Public Attributes

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

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -173,7 +173,7 @@ template<class T >
-

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

+

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

@@ -183,7 +183,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__integer.png b/classstdex_1_1parser_1_1basic__integer.png index 1d1126cb089844d9fa658085f78d30c15f1b0c83..4450c4eeac3eb76631fd1ac5fbfe673bcabed0c0 100644 GIT binary patch literal 2363 zcmcImdr(tX8V|26$|`K>pvXgXXT_*3wrCB65L=*#D+CNzR3MSMg<6znB!q;-T@_?i z0t(A0n21<{p^$1o3P?a%9-9cEgE0_<$g&|RugHxd+>nqx!P(jUr=8iE-TTM6=ey_k zo%20@-*;|NbX53;^;_1XP^b+NheD5{PMQ3cTc&_Q{>H^=1H-_uL+B(Y7C?X2TYtI4O$`>e?JEwsfEsXBZ98~jnih#9EkcmqGIIEhHbTnf^W|4ym%AZM62j-RRHtb* zR^>#Mk}Vx}H}g6Go}LLSXPP;3}(mmxlF)x-gof%WH?FvaS5uoYMTdlTBlS zt0EzNmeX^+y=!!bup-@fau;5S_Wn4I#?z}BYhg`ctrBUgSP zGBY#qN149lD628hJ7ZiI_l!S(Sboodi?7x#?bT$8ZjDI_>-n7D0QU>$IIwSFlp7~< zYvbR!1NdfPik6yYNW<+uQ&D}ONL?!`6Y!Jg9i-MER3@r`n(kvIAB>|QI&Psf$DwVV zhmaP3lX)$ggdMyfd&i+5?p+2X<8B9G-dF^?_#D&$q|03z$OBl6@wT=9n$ta*q1ou@ z;?pJ1zJ#)|Z8~Dj%t>|bH66fDt>Mp4Tw`0Mu{FtV`+sQvOfrA&u>U7~c}GFg<~BQ9 zd(G7(&%TGhOtuK*_e1z}=lFFC#@gbzK950ere|NpJHjO(VE!J%#}smFjdQrT31{i> zI%6+=4l%rX)UvA6t7gr;`O;(!dXkbaGz}OWcZBc|Sfi$f-49d?77iyzrwe z0reJEwW&tg+Ogc>n-3D=^{Bq@aGOE;7?xv)i8{`}(20d`F*ihBqoj4T<&mH@4A0b? z*$z`??Mb1p(D=)dt=uYD@?N@owzbUs9@X^iEhe`AE%#Vj^2lLih0`!Zi(hb}2DsG_ zJf3Fx(_)rEdfNVA2n|B#99uBy@)Vp#!u;9Ml{;e{@zQTxj~7gQz@Z1an*X|ga?hJp zf|l+LsHz9+bS}WN{zH+DNRY0lE$>TcxH*s}$(-?B8wW zzhPomOJr|zUXckh~Om@*R~eN~*B*$^kXg_NUn zkvrN{eP^?R&zB|#^w%KE5umGhzu9Lx+BY35pmo>mcFa$X-SIaEb z-_-Mi3+2;OMX;7gzpXqF<;pPPq;FrcM54xL0l6}vdtTzho=+)ayoa?Yo+L0DU{(!0 zi~o)vw&JO>JoAi&K3rDTTg)<&f5J;RP@&KJ*pFDSGV&FNf4jwb7d|#}{*&j?&0n{W zD{dqkUgEBLQ2#hwG8-@XQE;<0mig&tLNei{1;JW@o8p4QSQ+a{(agHr3T@TJ)brf$ zjUloZBA%iL!~4=rUVqfPuW?oDq+5(d&_9khDL-%2i70OtTu23=&XmITF!HrvbIWyn z(~;%eQEIuxwVZGw7~>#7TO{h&3bT8?#ZETJjc-(4q_A^JQeR7Si^q}d=L|Y+>)SI&CFQ5vVqfQ*cQzPPwp~Otlp;W?ySoTM^yL#yg|$eieaAa zPBa?^aJk-#8kT_YAbiCHKkZ?fF7r&}2aFss!-!Un&#M9BJRQdZN`}}KRvGtw zrRAoaeA$<0LeK0Iw;Cq{-PNO*=ImMnwuRopfg&VBXKs=PpXrNS<(GtAqxbx{<0Eo# zSB}!umP4uv)^X_SW4wc)3eIm>HN?>ezE@zQ*k^aKkW|SCjU(}H#%?7566Ou2`X@m8 zbcPWlc%lQ;L4@V3D8#FAl?uf}`exI5m2#=hK!9Xk5-$ON#&vnWm_=80MkAdMjmnsF z(12pL6oLf06#^o7VDzhk$uS5St6~kzsKNHecE%u<4C#F%ko*d67}(&?Wm^G#^R{al zVm6@acnLLF6%MY(w0xVSsfI0fZ%ZrF9b`NO_{~8@ghhom Jetzmt{{#m-!>#}T 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 diff --git a/classstdex_1_1parser_1_1basic__integer10-members.html b/classstdex_1_1parser_1_1basic__integer10-members.html index f36c9871a..667100413 100644 --- a/classstdex_1_1parser_1_1basic__integer10-members.html +++ b/classstdex_1_1parser_1_1basic__integer10-members.html @@ -81,9 +81,9 @@ $(function() {

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

- - - + + + @@ -95,16 +95,16 @@ $(function() { - + - - + + - +
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 >
basic_integer10(const std::shared_ptr< basic_parser< T > > &digit_0, const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_2, const std::shared_ptr< basic_parser< T > > &digit_3, const std::shared_ptr< basic_parser< T > > &digit_4, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_6, const std::shared_ptr< basic_parser< T > > &digit_7, const std::shared_ptr< basic_parser< T > > &digit_8, const std::shared_ptr< basic_parser< T > > &digit_9, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer10< T >)stdex::parser::basic_integer10< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< 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_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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__integer10.html b/classstdex_1_1parser_1_1basic__integer10.html index c75162165..b4397a08f 100644 --- a/classstdex_1_1parser_1_1basic__integer10.html +++ b/classstdex_1_1parser_1_1basic__integer10.html @@ -93,15 +93,15 @@ Inheritance diagram for stdex::parser::basic_integer10< T >: stdex::parser::basic_integer< T > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > - - + + @@ -110,60 +110,60 @@ Public Member Functions - - - - + + + - - + - - + - - - + + - +

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())
 
basic_integer10 (const std::shared_ptr< basic_parser< T > > &digit_0, const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_2, const std::shared_ptr< basic_parser< T > > &digit_3, const std::shared_ptr< basic_parser< T > > &digit_4, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_6, const std::shared_ptr< basic_parser< T > > &digit_7, const std::shared_ptr< basic_parser< T > > &digit_8, const std::shared_ptr< basic_parser< 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 >
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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
 
+std::shared_ptr< basic_parser< T > > m_digit_0
 
+std::shared_ptr< basic_parser< T > > m_digit_1
 
+std::shared_ptr< basic_parser< T > > m_digit_2
 
+std::shared_ptr< basic_parser< T > > m_digit_3
 
+std::shared_ptr< basic_parser< T > > m_digit_4
 
+std::shared_ptr< basic_parser< T > > m_digit_5
 
+std::shared_ptr< basic_parser< T > > m_digit_6
 
+std::shared_ptr< basic_parser< T > > m_digit_7
 
+std::shared_ptr< basic_parser< T > > m_digit_8
 
+std::shared_ptr< basic_parser< T > > m_digit_9
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
@@ -172,11 +172,11 @@ Additional Inherited Members size_t  - - + - - + +

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -230,7 +230,7 @@ template<class T >
@@ -240,7 +240,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__integer10.png b/classstdex_1_1parser_1_1basic__integer10.png index a892a32e78d7e6eb40b9f74e2168f2e294e1f375..1ecbee94d512bff58ff75cd4f355075fa3ffbd2b 100644 GIT binary patch delta 1037 zcmX@Zxs!830;9{sL`jxO+g@ItSSMGX==G{y<$dOp2i41O%X{*D<@QnexmNG*H=pw? zYa%1Q)Rb1|$?86i-v7r&{nx~WFJEo=X8*0cUvuJC(OE95%50{7H7zc4@hxfd6^sA5 z+J07M0h_zeaVEC9^2yH%uC06bb=j%yd_Ql^kJ?kUE#&d$>qb*wTO`~{e--`q#Dy&% z?;6*~{xs$`x4kQSm7_W?r|2zTnV9TkufLL)x$EQK1S@4*E4`FT^xN%w_+@D2XS=yS zch}DU7At>kuWiU$uj6yp1($~2`jUFr`m6ha=*wUnp{%bI6R)O;n!@P~Es z8AkQV=NWnH59B_b^Et&y?c_=kAC;H!2VExpGfjhr)&l9(%KV z*85m5Q~x)s+4a2m_UG5m8twaf`h4*sdC6Jp__F^;+)E2T^ln*i;@66HMA&UOJ4ZH9 zcy1zZ=JJv+lV<)sE^~t~|3FE_*4H^cv+55=?%s8Mw$^>KUfIcA_jKcIrB^+?nZ0+~ zX`}$GJ+@`$trvF>`TCc#n=bO65qUzR{nVo5py;1f^S^YrAHV&3%86Tj8N1wO+)lon zaPC+1_sj`irSo?ktuLDYE!bpDb@h#?Gkun^-(PWUeOY;TwZ!9H?m=7ovn)O1>R-QJ zFXp*#;qAh@iJ7_#e@|{?ovdO%`FgEYv+Bw4UBKX2CkhLftp>oLieYM)f03C%?Q)Ax z|M8jtVIy6S%Z_JHh?Md({A+6BWcZ^!gWb0x&!e!>UJl@aMf`wMDy`Um^wQsr5wwarivlbbzQG7e4 zZ(q8balL6}=Dbe)2AR``P}R*&nXXjv9sX-z99?N}rb5B?<}t3_#%N>gTe~DWM4fM$!mM delta 1057 zcmdnVd4_XB0%Q2ZL`jxQ%U0f-SSMGX?)9o&<$dOp1=5?Dp9fz4<~}L?m#o^PkX`3W z4nCgna%P*Uc=tTMZO^aWHQM*}^!egN@{+UG@nzTh?=uScd%nSchEQbmLeC{x$Acr| zjnmz)xTN1`OIeiFzWmqXna9#Uw47|q-1}bb?87y&cVGKX&7Xbj+=Gg6-8ftR6@KUA zq?gsloMOCe7kodc)k?u{du}|rCHqFlN^R@Z^xrAX^7HoH zTkdkLOvn8?NAa^KR>goegXZkE-zrVV*<>iWZSCf`Etv0EP zJni{u>%MwNT^p?mOyh3-^C(&}KV9jhaBafBQ(Ka&9<8^G_)=3?op)E~arFK_HtN47 zE`0fF!?*sYxn-(v@@`3l^_L?;k@NPMn}VhnC9h2=^K#dpd9(gZgv5KKjmJ&VYu?e-A7k9FO-_M_gePO9_D4W%l2LE)*NNZO5|gmYud{ywBFe@A7XBS@rvh?!U>ux6EIZ zc=z_$a0t)z*i=!;oe*O8kqp3Bo-#eNm8ylJ26<=~` z*RT9T@0Rr@zPyv-rLgAmb95JnR}`J;`cKd%hdGG27kU`ARG7A zN}9d5RCtN^VzbbFXYIcFXjR4DPH?>S&~V}TxYt`__QR8P?|b8AXRo+z_gSVgBhD~C z%VoO3<_U>>(cOKXy08D*y%fLta_3fm&n4TGXRQ-__U(qrjLWqz?RbM$z6(D8u$th+{RFVdQ I&MBb@0FLz_n*aa+ diff --git a/classstdex_1_1parser_1_1basic__integer10ts-members.html b/classstdex_1_1parser_1_1basic__integer10ts-members.html index d5748e7fe..109847a70 100644 --- a/classstdex_1_1parser_1_1basic__integer10ts-members.html +++ b/classstdex_1_1parser_1_1basic__integer10ts-members.html @@ -82,23 +82,23 @@ $(function() { - + - + - + - - + + - +
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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
digit_countstdex::parser::basic_integer10ts< T >
has_separatorsstdex::parser::basic_integer10ts< T >
intervalstdex::parser::basic_tester< T >
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__integer10ts.html b/classstdex_1_1parser_1_1basic__integer10ts.html index bd76d88d0..b4b482f9d 100644 --- a/classstdex_1_1parser_1_1basic__integer10ts.html +++ b/classstdex_1_1parser_1_1basic__integer10ts.html @@ -94,7 +94,7 @@ Inheritance diagram for stdex::parser::basic_integer10ts< T >: stdex::parser::basic_integer< T > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > @@ -113,23 +113,23 @@ Public Member Functions - - - - + + + - - + - - + - - - + + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -146,11 +146,11 @@ bool  - - + - - + +

Public Attributes

has_separatorsvalue
 Calculated value of the numeral.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
@@ -160,10 +160,10 @@ std::shared_ptr< - - - + + +

Protected Attributes

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

Detailed Description

template<class T>
@@ -246,7 +246,7 @@ template<class T >
@@ -256,7 +256,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__integer10ts.png b/classstdex_1_1parser_1_1basic__integer10ts.png index cf7ed1de2aebb5712928e93031feee7ddbe6943a..e3d3f98a0cd023655b8f03e62b9ab8bcec851f6c 100644 GIT binary patch delta 1145 zcmcc1d5UvFLVc*Gi(^Oy_{Dic$_>#s-A8u^10pM=i+{r2$P;7!j` zFWx==Ev72w*!H?#yZyH)$6mgg_-_B3_ewDe#oiH(A#W?ZxOJbssuwi9C?WRJ=JWLb zCU;&`^gZaCTEg^3?dZ<4v3Ik5r{>Fkx-)-K!1>rcA2;eeyma^Nfw#s#*A^|wj{1@J zQ10hyj#Y8&`5^(X7Kbd~eed$IMUBC;4V$b#e(#*ios#G75gV{dI`DaN#oT#&ik0iH zzrRzbulrD)O%{%dh|c$?%WqohbcFKNU{) zpDOQD(LMFh+whntD?|JhUWT-*X9~98K2lSA`gIPCaBe zutQ|N-$37j{{PEB?<&z8RnB6Ba z?@g%7y4AW{J>~4FMZ4SI?)LU&YMd&?9NP_VH?*33;|B< z39DrNHR}w+`&V=xGiYD4yyVN2MSs^@ovuB{c<151xPtn`pgFhiT-|#uPx%3clhquO}?)MG`jV@;GMK6_k3V*cbjWy_;Rfl{kmzDj+DjLozJb8 z$J^M%-QVf(tgPiK>(X6`rFN@+f4DOD^^=ghJKG+uwcakjA#dxQ$Ipc-&b-W;IenGy z@vBCkzpPgEyn64qNd1H-$+7=_O?)D}OYHgag6yplGFr6-o}WVhKAkHaIQdC%m2jWR z|9$X~5!(R_tPq9|u6G#{!p`!P@AmaEH@@`?0@?K@rc_z1zC%RQc9o z-8o(Jt}pZbdTPt_WGDI4muhz{lHF0Owm-D5#CNy&vRmsP%T2jhUGP$)+aoVje{Z*VazkeLRM#-!fLWxFFYR-L#p@<8^1hzhiwh$mNO4^!;^8O8zgB3+ouShjsgX zTWzGRRODNq_uTD@lG6HDq85UJ!9_r#8%#t!aN>;D7R1hNr5O})!xvX>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>JLThis is the complete list of members for stdex::parser::basic_integer16< T >, including all inherited members.

- - - + + + @@ -101,16 +101,16 @@ $(function() { - + - - + + - +
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 >
basic_integer16(const std::shared_ptr< basic_parser< T > > &digit_0, const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_2, const std::shared_ptr< basic_parser< T > > &digit_3, const std::shared_ptr< basic_parser< T > > &digit_4, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_6, const std::shared_ptr< basic_parser< T > > &digit_7, const std::shared_ptr< basic_parser< T > > &digit_8, const std::shared_ptr< basic_parser< T > > &digit_9, const std::shared_ptr< basic_parser< T > > &digit_10, const std::shared_ptr< basic_parser< T > > &digit_11, const std::shared_ptr< basic_parser< T > > &digit_12, const std::shared_ptr< basic_parser< T > > &digit_13, const std::shared_ptr< basic_parser< T > > &digit_14, const std::shared_ptr< basic_parser< T > > &digit_15, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_integer16< T >)stdex::parser::basic_integer16< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< 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_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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__integer16.html b/classstdex_1_1parser_1_1basic__integer16.html index 02d584ca7..b62d10a3a 100644 --- a/classstdex_1_1parser_1_1basic__integer16.html +++ b/classstdex_1_1parser_1_1basic__integer16.html @@ -93,15 +93,15 @@ Inheritance diagram for stdex::parser::basic_integer16< T >: stdex::parser::basic_integer< T > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > - - + + @@ -110,78 +110,78 @@ Public Member Functions - - - - + + + - - + - - + - - - + + - +

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())
 
basic_integer16 (const std::shared_ptr< basic_parser< T > > &digit_0, const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_2, const std::shared_ptr< basic_parser< T > > &digit_3, const std::shared_ptr< basic_parser< T > > &digit_4, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_6, const std::shared_ptr< basic_parser< T > > &digit_7, const std::shared_ptr< basic_parser< T > > &digit_8, const std::shared_ptr< basic_parser< T > > &digit_9, const std::shared_ptr< basic_parser< T > > &digit_10, const std::shared_ptr< basic_parser< T > > &digit_11, const std::shared_ptr< basic_parser< T > > &digit_12, const std::shared_ptr< basic_parser< T > > &digit_13, const std::shared_ptr< basic_parser< T > > &digit_14, const std::shared_ptr< basic_parser< 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 >
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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
 
+std::shared_ptr< basic_parser< T > > m_digit_0
 
+std::shared_ptr< basic_parser< T > > m_digit_1
 
+std::shared_ptr< basic_parser< T > > m_digit_2
 
+std::shared_ptr< basic_parser< T > > m_digit_3
 
+std::shared_ptr< basic_parser< T > > m_digit_4
 
+std::shared_ptr< basic_parser< T > > m_digit_5
 
+std::shared_ptr< basic_parser< T > > m_digit_6
 
+std::shared_ptr< basic_parser< T > > m_digit_7
 
+std::shared_ptr< basic_parser< T > > m_digit_8
 
+std::shared_ptr< basic_parser< T > > m_digit_9
 
+std::shared_ptr< basic_parser< T > > m_digit_10
 
+std::shared_ptr< basic_parser< T > > m_digit_11
 
+std::shared_ptr< basic_parser< T > > m_digit_12
 
+std::shared_ptr< basic_parser< T > > m_digit_13
 
+std::shared_ptr< basic_parser< T > > m_digit_14
 
+std::shared_ptr< basic_parser< T > > m_digit_15
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
@@ -190,11 +190,11 @@ Additional Inherited Members size_t  - - + - - + +

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -248,7 +248,7 @@ template<class T >
@@ -258,7 +258,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__integer16.png b/classstdex_1_1parser_1_1basic__integer16.png index e957f082f9664e98e758dbfaf71652b4bd98e724..ad82a6ad53b0fbbd908524546fa810c7f1b44c51 100644 GIT binary patch delta 1050 zcmV+#1m*kI3Bw7HV1G_YL_t(|0qvb(j_V){goi<@eE$=_G$8?l)3oW+t`~X5Yy&tp zp8@ADa?W`&A(P}(3MP{DuV5lc|2knx>W3un$#U?$)9sHWP5lBBNq(!Ben+Nf0@f@n zdcL|nw~m(atzUkg6XS?!x;m`=kNw?aN@Q(?CXuQgPi1}0Tz@~JCI-VMi&y^Yk7hE? zpv817!0@}9G>5Zxb#F9PzIDiJe`@jSxu>$vUdvRjqrtS#)VJCZ)3otDGQINGExhaL zu2m!Y^U^1`-@(CRU{a|+W4iG7#Xcpnwj+|R5#4F;({OrK-n>s|{%+r=eb>#pw}+}# z>6p`Xs;)|#UQO1$Q-36z_F*k2$=CYdAD#d0?>Cv&5>QS9N&YXzK9Qt<1rtg7S1^&J ze=STo=RB7H;AivzfXOr=)8jE8)Pzh6(sWQWGDY13fWM%V%mF5o-~kSQxUHOXo=nIj zIhBHmB>gLxNYcM-rlfvI@}4XQ!&n`7H(uKQNYc{JGm+$pJ}`e}Ixs!)*BmT*zPLTN zZkF+_Uw)nw)TIRr{!xljLhnef`xU$v1R6&Mz{p z1zgLxNYcL+rkr!0O91dQdH}#=nvm)7m=9_~ zrUhv_s2Q1}?g7AGP?JjoCX-(S4u9NMN-0eyBoUFR6igx_{uN9jBL3AemCo0kmV;re z4qU|Brk8>yB26n*PDDiM2bn}fPV~~eEc^NIMOsXz=bP*6i`Mto=k~>AeCzK)Hsfx@ zG~E}Z(z^O@!tSPxVdO+&wd1LTZRYwBH8B|0ko}a7zJF(?P18Qu zAK&J&VLH6_>uek}*0rm9qp9-U?bFDlqSv(@sI3$Ad>j&W_FAvy`Wa07Ons{zF-;ra zXH1)EAH88xdu5)zGTGLMAz|G@%pA5B1Cv_T^*-qr)#))0&ec98k=l-Ex<+)jr%yw7 zy5G7_Mk>{P8ks)0Px~n{>u25`widHvPS?G7sdsTwk*k#=-j48;xR51DLPz>hH|V=V-FwF`{gN$0*-R$iS}rYQ9?%I z--cwztlUJcQReGCI<58b6I)T7?AM-X4zWi;8+gH5?shb!A1e--5~LP9+fmPg0%wbC zltxcB4=?&ytKLF)DllwNx_Xj96o;-FsEaSZt6hR>SpZR7*cx6-sVnyeuzGQE^K`3il|BU2^~C`WLA}hCrgKvz_xM!8 z-Oi;NWxU`v*D*b`wDdfqU3@HR@_p`Rz6YQH>34dDX1mFRC>KYA4u03AGoZzgp2o*| zs(Mpi60b_DNa{RJiCEH~f-?0Rp8?dPhq6D!>k{gm@voEo*-fC$-kE$-eNA!A4pMdw z2B`s@1HurS5pl8yN8)Txc_k>rAUh7+0V@P|#L5Z$Q$l|4YwhpB`rj%5P6DPTdc6NS z17)GgtCcXkZbB9jlxW-WG*){U&opiVsG>%goW#oq2)lHcOBiWdkQ($~#4n2YGl(t! zTxi?y8GzBA+k$WUa)AQV%Adnejk&2=`7u$m1&cc;?6iM4)_k7?{;GJ|gjZ-(y*i?) zOFMN!v@|oP>TGadOgGT`E3JiD!afxf8s{;a4e&)(y5rMEV!;Kk9>+ijx7CLG`;dL% z-j>YuLUWzdrBsHHTG1W02iZaDA(V@W+oIH6@9kw-W5 +f_^McPc8k5Z_oOEN1B z2)yc(_|^rKDTM?|qc^U9HEfC$N+CvGmIE4JhL-4Q2V*&Fv~mV2&F5d2j6JIE1Ca2a zZ6Scrj)(ZcRFA%#!V;F(vN0hluyz7>lKib6=QdZ5Uq0&u=fw=5kaMJW zxj|Vg841oCtx|mxwBEJcT+fJ}*!tKT*=Q^WkVx-hN}r$Ev^LZQV}Nq4la zKdpHdKSrEi9HH%N(aHf;V?oq`;R^IdU9 o!`c1yWGDE#TThis is the complete list of members for stdex::parser::basic_ipv4_address< T >, including all inherited members.

- - + + - + @@ -95,17 +95,17 @@ $(function() { - + - - + + - +
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
basic_ipv4_address(const std::shared_ptr< basic_parser< T > > &digit_0, const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_2, const std::shared_ptr< basic_parser< T > > &digit_3, const std::shared_ptr< basic_parser< T > > &digit_4, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_6, const std::shared_ptr< basic_parser< T > > &digit_7, const std::shared_ptr< basic_parser< T > > &digit_8, const std::shared_ptr< basic_parser< T > > &digit_9, const std::shared_ptr< basic_parser< T > > &separator, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_ipv4_address< T >)stdex::parser::basic_ipv4_address< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
componentsstdex::parser::basic_ipv4_address< T >
intervalstdex::parser::basic_tester< T >
intervalstdex::parser::basic_parser< 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_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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
valuestdex::parser::basic_ipv4_address< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__ipv4__address.html b/classstdex_1_1parser_1_1basic__ipv4__address.html index 1e2c47653..140399c75 100644 --- a/classstdex_1_1parser_1_1basic__ipv4__address.html +++ b/classstdex_1_1parser_1_1basic__ipv4__address.html @@ -93,36 +93,36 @@ Inheritance diagram for stdex::parser::basic_ipv4_address< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_ipv4_address (const std::shared_ptr< basic_parser< T > > &digit_0, const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_2, const std::shared_ptr< basic_parser< T > > &digit_3, const std::shared_ptr< basic_parser< T > > &digit_4, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_6, const std::shared_ptr< basic_parser< T > > &digit_7, const std::shared_ptr< basic_parser< T > > &digit_8, const std::shared_ptr< basic_parser< T > > &digit_9, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -134,51 +134,51 @@ Public Attributes struct in_addr  - - + - - + +

Public Attributes

value
 IPv4 address value.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +

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
 
+std::shared_ptr< basic_parser< T > > m_digit_0
 
+std::shared_ptr< basic_parser< T > > m_digit_1
 
+std::shared_ptr< basic_parser< T > > m_digit_2
 
+std::shared_ptr< basic_parser< T > > m_digit_3
 
+std::shared_ptr< basic_parser< T > > m_digit_4
 
+std::shared_ptr< basic_parser< T > > m_digit_5
 
+std::shared_ptr< basic_parser< T > > m_digit_6
 
+std::shared_ptr< basic_parser< T > > m_digit_7
 
+std::shared_ptr< basic_parser< T > > m_digit_8
 
+std::shared_ptr< basic_parser< T > > m_digit_9
 
+std::shared_ptr< basic_parser< T > > m_separator
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -209,7 +209,7 @@ template<class T >
-

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

+

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

@@ -261,7 +261,7 @@ template<class T > @@ -271,7 +271,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__ipv4__address.png b/classstdex_1_1parser_1_1basic__ipv4__address.png index f586f05e67d24e71f831d13fe6cc1fa54e4c48fc..e3139aac6436939cce6de8cd468875b62257d43e 100644 GIT binary patch delta 747 zcmcb{wx4Z6Lj5UE7srqa## zcl~Lpk;eqYCdoJoPgSYD?4o+|-W50Acg~aSgU=rP?e|^Y)9mZ^6)Hd1?R)!O^VPQ4 ze%t7+m3LlW`+sZy_Q&bc8r7?o@wc!1yJ>%PAoEPG7M>;A>AG#X^~XNRnFmPBI-C2` zTfYC+juX6BjMtqiYVX|naOKPBr7J(bou2c%*k|28o^6$lx>;u!M6V>PoZVy_8vJ;- zOYJlL$0wt%Z|L1JC4Sc*jZdHTbhtvw1HxDE)_tx& zm+!y&_*IDU2SLYE{m*BdpP?C1pMUGjf$9G|W)+>E&+BP-{cioV`M*B@?GKQTRKF)X z=}*hEm6KBPXRT1VIa^K3^V>4f(#UD49E=CvzvgB*cEMsreEi`Jea*Wj^&PSjcy;Cg z!-e^3S`1&7b#gK6&0NIf0MyBF0jLwFP(57P2gg={LlRCCmI#^zs;)Hm4e@;CE18wE zr#HSh;7jf47hg9d?VGByJlz`{-|L&7yWq{r zS#~nZzDWjb@!sUP?Bwq&DM@#)ZF_E+H6f^Tf@9IsHL}^uH|{ykE7F#E@=PP|rFtK~ z`Kxc(Y+5;Um7}fflZU^z=6;ovCwdv4Sz{n$E@sjhon8(;D5>wRUMUie6S`|=&N zYlC@%w3cVjpZ2LebWiB>|E=4jZm(Uveb)LvDZipk`}dtW(0+VM*m=YGjh7$Y+cL3n z^@_Ajrw>FX)!Q(iPJCGEFTy~6+mp00i_>zopr0Ap);_5c6? delta 770 zcmdnbc8zU9Lj6Ne7srqa#8pYxJ75_oe0)5j&Ni^P>1x?c4OY;_8-v9-k!tT55T++4lcR z@i5lApmxct%_l{p zTDSe}u~YL50wjN_&XhRy?xdaI*FQ@07f)OL+tpmS{P0@I=&hL_V&CPZZaB~Dv#^fo z_Zil2tDoCkaJcK1GwprmEH;(?D5)9Co0ezTw%Gc6KV7QbzsTnOsYOn_?DZw9o<7>W zJb!MM(%LtH$F_v*Szc7$_5I7m`slSY>OQQ^3*R`ial3`i+IPu@%+V(KIiJp zj1{M~zMq}3^~>5)`@(new|{Qtxnk>kdAD=+d&X4j$^4hp)(4+GvO72TeDalgmB^D5 zJh@WW=VsrIxGBu0nXF;&iwDdC{j|AonG6<(`tK zfhJu+uv{%{zr*(GTWjm9D%FuUV~=kMv0L+ME!%(nJy);g$?m;c^z{1u zRn=cg+3wjyMcqA~#J26|;+LLmd5dzopr0Q4Vre*gdg diff --git a/classstdex_1_1parser_1_1basic__ipv6__address-members.html b/classstdex_1_1parser_1_1basic__ipv6__address-members.html index 764f68eec..39ff8a03f 100644 --- a/classstdex_1_1parser_1_1basic__ipv6__address-members.html +++ b/classstdex_1_1parser_1_1basic__ipv6__address-members.html @@ -80,10 +80,10 @@ $(function() {

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

- - + + - + @@ -101,19 +101,19 @@ $(function() { - + - - - + + + - +
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
basic_ipv6_address(const std::shared_ptr< basic_parser< T > > &digit_0, const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_2, const std::shared_ptr< basic_parser< T > > &digit_3, const std::shared_ptr< basic_parser< T > > &digit_4, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_6, const std::shared_ptr< basic_parser< T > > &digit_7, const std::shared_ptr< basic_parser< T > > &digit_8, const std::shared_ptr< basic_parser< T > > &digit_9, const std::shared_ptr< basic_parser< T > > &digit_10, const std::shared_ptr< basic_parser< T > > &digit_11, const std::shared_ptr< basic_parser< T > > &digit_12, const std::shared_ptr< basic_parser< T > > &digit_13, const std::shared_ptr< basic_parser< T > > &digit_14, const std::shared_ptr< basic_parser< T > > &digit_15, const std::shared_ptr< basic_parser< T > > &separator, const std::shared_ptr< basic_parser< T > > &scope_id_separator=nullptr, const std::shared_ptr< basic_parser< 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_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
componentsstdex::parser::basic_ipv6_address< T >
intervalstdex::parser::basic_tester< T >
intervalstdex::parser::basic_parser< 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_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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
valuestdex::parser::basic_ipv6_address< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__ipv6__address.html b/classstdex_1_1parser_1_1basic__ipv6__address.html index 1ad691557..97e7c689d 100644 --- a/classstdex_1_1parser_1_1basic__ipv6__address.html +++ b/classstdex_1_1parser_1_1basic__ipv6__address.html @@ -93,36 +93,36 @@ Inheritance diagram for stdex::parser::basic_ipv6_address< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_ipv6_address (const std::shared_ptr< basic_parser< T > > &digit_0, const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_2, const std::shared_ptr< basic_parser< T > > &digit_3, const std::shared_ptr< basic_parser< T > > &digit_4, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_6, const std::shared_ptr< basic_parser< T > > &digit_7, const std::shared_ptr< basic_parser< T > > &digit_8, const std::shared_ptr< basic_parser< T > > &digit_9, const std::shared_ptr< basic_parser< T > > &digit_10, const std::shared_ptr< basic_parser< T > > &digit_11, const std::shared_ptr< basic_parser< T > > &digit_12, const std::shared_ptr< basic_parser< T > > &digit_13, const std::shared_ptr< basic_parser< T > > &digit_14, const std::shared_ptr< basic_parser< T > > &digit_15, const std::shared_ptr< basic_parser< T > > &separator, const std::shared_ptr< basic_parser< T > > &scope_id_separator=nullptr, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -134,76 +134,76 @@ Public Attributes struct in6_addr  - - - - - + + + + - - + +

Public Attributes

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 >
+
+std::shared_ptr< basic_parser< T > > scope_id
 Scope ID (e.g. NIC index with link-local addresses)
 
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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
 
+std::shared_ptr< basic_parser< T > > m_digit_0
 
+std::shared_ptr< basic_parser< T > > m_digit_1
 
+std::shared_ptr< basic_parser< T > > m_digit_2
 
+std::shared_ptr< basic_parser< T > > m_digit_3
 
+std::shared_ptr< basic_parser< T > > m_digit_4
 
+std::shared_ptr< basic_parser< T > > m_digit_5
 
+std::shared_ptr< basic_parser< T > > m_digit_6
 
+std::shared_ptr< basic_parser< T > > m_digit_7
 
+std::shared_ptr< basic_parser< T > > m_digit_8
 
+std::shared_ptr< basic_parser< T > > m_digit_9
 
+std::shared_ptr< basic_parser< T > > m_digit_10
 
+std::shared_ptr< basic_parser< T > > m_digit_11
 
+std::shared_ptr< basic_parser< T > > m_digit_12
 
+std::shared_ptr< basic_parser< T > > m_digit_13
 
+std::shared_ptr< basic_parser< T > > m_digit_14
 
+std::shared_ptr< basic_parser< T > > m_digit_15
 
+std::shared_ptr< basic_parser< T > > m_separator
 
+std::shared_ptr< basic_parser< T > > m_scope_id_separator
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -234,7 +234,7 @@ template<class T >
-

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

+

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

@@ -286,7 +286,7 @@ template<class T > @@ -296,7 +296,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__ipv6__address.png b/classstdex_1_1parser_1_1basic__ipv6__address.png index 8a40ddfa392a8ce4fb83a2ccadeea3345dfbeb14..3c890456a368c4bfda51ef196494be90bca5ba1e 100644 GIT binary patch delta 711 zcmV;&0yzEP2FnJJV1L$0L_t(|0qvddj^iK<#D|Gg&HF#`B`FEmkg~b9dnaJUZ1`gg zKQQiBEX%TtAuJ?0f+i|S_NIwSlD(;o8q9|z|4uar?>l||kz`Z<7L_F5)sOwYMBR>S zKeJVv$7enFzxF@d@v{w-Jyp})VQSy@_fgb9rV=3oY06oP+kei+e2*C@470;+`AZ** z+6d$Z>bbAVa)(J4;i+j`rK$04mu&kpOs4({wi&=VYRmu?)MF&g%6qD&neP(yl|RSh zTGz0RwB&=%UxmN#!lFPm7j=c&@b~#!4P+|k25ee#FUg9=}>PBjA` zJ4pHQ9J3iSZBf>mHZ$<0KayGb%#RI8zSgIIEWh>R`yZk1StrI0Nq$4~R!OoqO;nQX zO%s(Qd((=#EXy*40O0ra0Dv(x4(j7E4C^?kE9oe#1EJ0g3;_L;&jBuz>H!LWUsMPo zj3ER`8bK3Pl6uobm89O}P-Ek5{F;NJuQXcIq$Cx(wXK+MCCTU)Q6=fMwprDgcehn{ za-weMuph>%ea*d|Ph9(-?fBUS%ATs}0bx#i_n(G}9j3|8snP7%XIfm6j9#M#DV4Zv zkW4vi$J%Mk_n3jgFfHlq+(|fpZ`m3OGQ}ciwXB+2=hL zTRKC%9olwst8VMw>!p{q|K84@+d$pZG~E`o_I_2)z_qWP1Aob~oS-JsN`_3ND@QGF zyBLc-ZlE$OT{6*?VVBs5t~)^G))~+i5d-TrN9$fPhro~QVhCy74g0+iwf0U{G(fq&X1Kob*qWAa_rKl zrSP8O>4f+6)@WO;n11lB?xEPs!23QdtsY}O1KXCpX)6O;+I7y|>3-(Nh9sZs?O$7x z{0;p-s9Wwi4?~jtp60ERWN(_NB-xuLDoOUH6?IvbWe5Sl@9PTy#?UyZUthzpj)S_A zj>0++>de3Z(4Ujc0UMLl0TX|{X`%u^Zjenv|qUm$sGjtt2`9BB~@k*KJmF=GASr7dcRG=dc~ds?FzCFDI`3_jdl= z2I`)s=?>vedt2XzsvX+o`_yc<@6()1lGAh4Bw5LBljO=#+kM+u>~Vhsm7%!|cHtz# zYK0Fax#E$FT2U=f?P$aH>-Z|JqH5KqZtZZZ?sINZ%ACi$b@e0CTmU<__b6$g?jts< z>}i@dBh&%Z$CW3yP~G10qk9~{d9X}NG3eq|G@N>i3e{cwRn&0w52L4wzO!3Rl9gj= zpO(VQjHeTx$c49B{A+HZy0;oVUw^B`qpvgYzM`eoW6Wn@bM8$~GO+E|-^V`LW#Ew5 zuV-LMI?>y|wvy!afh8rWslPzovWmrlBv*=IN%}F(Ta~2VG*Km~H%(MY>P;(ZN+}JY YfA_D#TAoE;SpWb407*qoM6N<$g6BkplK=n! 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 index bcf59efec..c65f60581 100644 --- a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html +++ b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char-members.html @@ -81,18 +81,18 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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 index 353c61583..f76745706 100644 --- a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html +++ b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::basic_ipv6_scope_id_char< T >: -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > @@ -102,35 +102,35 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -184,7 +184,7 @@ template<class T >
@@ -194,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.png b/classstdex_1_1parser_1_1basic__ipv6__scope__id__char.png index f5ba1c202e727e2c19ef18609f226f8172748512..8de0114088c4188754c8b3ecc8efb5e99aaa0b6b 100644 GIT binary patch delta 879 zcmcb@eu#ZSLcOo2i(^OyYL`iWCqA)#&01mm;u5prhJd`%qr-^l%tS$fiqHEu- zqgGPKllb}`J+)Uas{MXPVbikvC$kDQw}sYyS$^$m(r@+t$2Tv${iifJdiOFFBk_%V z6PK#*58YN0+kHcK;@*m@8&)s(_Q?ymR<-oHaP<0l#}+FlUEb&VMB(1?Ye1W>+3ejE zwtG+8jz}fHYZKR2$gfg9UG=tpo~ieupDGc*|KyxVF1mhrbDFW-NvC|d4`;HmbZ~BzoFm=N%kuw*i z%s!p1_gj*q)A3`wt>4xa-JQAfqQbjl`FF~$fBIT}&7{@!kGE9s-?#Np;`i5|w#6pj zJnOw)_SvP$_qC#Tt-G5WSoA*Ntn@0?B-4)_9_Q9+ExCHxhSfDScUq=tPt{iwxwpI4 zirqI=3YE((dfpN7ggYDPnrxZ%Yp(8FqZs!4las7wU76a8BH5ScAKbLswC4Z2$jwhC zW`Do+{Hjg=;aL82vr02me~Rp@x%Q-goBGX>y1 z*YaGpD0I$6@%q4M{?n2XBHrVf>0fr%-g@K&BUC5Y?vb@^kW VkL5qaT;pc|0#8>zmvv4FO#lU3pgI5m delta 897 zcmX@aeuaHPLVdiai(^Oy#|RqUNf-x=Dg|RmhU3H7iXZCrXM_I?bOIw0p>P*g7&p!8M&j!nC zw*JPBr56{=oNRt?TWjGiC3&k}{jqxXt=E!Cw_fMZRX%*>|3Ax3PyauR-P|fIe&XJ< za^Ev&V*B6C+L4e`5Z%&$Zy(T^_jtNg?9=Z1rdZnPKeYpT`;_3MW%kZ3D*xAqA;LsU zNyXQAV&<%6n<^L{Xun}+IMv0$Aanb?zary>l^qN(Oqn%R7@S<|Ss3ngu`>hlYCrVCavu7FcKB? zT;`IZyT|us{fg#=c_p*_t30hT`%t`n*E=* zR@5F4iFucP=l9R6e0ce%g`azT z|D4k3H(&X<_K#QKh^~s=d{i*~`@Lt&E6*H`t>2mb&F7P9&F^)cj>l)e`F=Zm(!ATR z=S})DY3|!k{4EM6zi=v@-YF5Odh&{?_oSKgjc$ItIUOh)+UH?3S5e9H|2|O2Dk+@| oaZ#Ds)uD3PXUW!Uryl*}5B>aDb*YS|4FeE(y85}Sb4q9e01WG}hyVZp diff --git a/classstdex_1_1parser_1_1basic__iterations-members.html b/classstdex_1_1parser_1_1basic__iterations-members.html index a6ab42032..11eab06ef 100644 --- a/classstdex_1_1parser_1_1basic__iterations-members.html +++ b/classstdex_1_1parser_1_1basic__iterations-members.html @@ -80,23 +80,23 @@ $(function() {

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
basic_iterations(const std::shared_ptr< basic_parser< 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_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__iterations.html b/classstdex_1_1parser_1_1basic__iterations.html index 28d1fb92e..3b10c42f9 100644 --- a/classstdex_1_1parser_1_1basic__iterations.html +++ b/classstdex_1_1parser_1_1basic__iterations.html @@ -92,41 +92,41 @@ Inheritance diagram for stdex::parser::basic_iterations< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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)
 
basic_iterations (const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
- - - + + + @@ -139,18 +139,18 @@ size_t  - - - + + +

Protected Attributes

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

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -204,7 +204,7 @@ template<class T >
@@ -214,7 +214,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__iterations.png b/classstdex_1_1parser_1_1basic__iterations.png index 44f974fba33e215a3f6ed8505cb00e1981908d5d..bd6d3abab7a8d4a01be4b13b8b530d33990a66ae 100644 GIT binary patch delta 717 zcmV;;0y6!#2B8L!V1KMhL_t(|0qvdJlJh7GgqwC%s^9;K*NG28fbEGhe@4YJMNc@0 zhRlCd?2NHVtCM9KY-?YI5z5GB&e%92P|_S(9;Y=5lmaRXIg_6)E5?8g(; zx3598FW+$8Lb7XVP2Z|Rowr}|+Rts>)eENPt;>nlm#{&!jo7Tbrx}`g*FXNKaImk;6a75U+NbmVvQJ=)H@nd`QN zEEDZxJ~!E(e1GU=t~>N2nU%M)H%XrBw?8t!?DvO6+qb_TqBv(nl7TgdNHVqt5lP0@ zOf*f?)RO?;Z=o&--5L<%?0Agzp0YGdGA^?c3 zK?DG?HHZKpwgwRZ#MU4JfY=&D01#V)2moSh5CK4J4Sym4xTlm->PkqG)R6{}B*oSs zlBC!wh}Oo(lr4j*Z|-O>bU5IGmOn{y`XZ4el{zGnq)Rp9jOdB`VxINvTk845xqoS| zKd)z5^)y3YhSs*AZPDFs{b#{uB}q=_L`kx;vLwlsy|ylxjg>uapb9LO%qJ_!inm&3 zW@K3{tAA!hc7uzBGJ`DIn!Z(sI`8szDJNG%ZmK&eSKsHmTjw6ldg%2ww-K9__cTNO zw*20`U3K#A3@d}0DbEa*QL&A3i7KKZa>sabM#VuliK;7ebw)|DvK#r#P+ybw#kuz$ zofEzP9&Puhnd>%3OJMt$&vmxA4?W0rmSFAHEk<+mT-P|AA7yVzI@iZvDM|Y0`U|3? zue~IFuK)KLNm6_bB1wv^K_p4BH4~+jQcwC1ydkY;9DwWm00000NkvXXu0mjf_#k6N delta 739 zcmZ3;ww-N4Lj5667srqa#YI@M*`Z;@0cJeSgb)#=Y?G@VNBywaa_k zZ5{L6H_Sb}>iL(waaPg4zkmB!$#=!p_ww0=ThBL_v#tAUdq*v>UTLk2PG^bg^}f5J z$s3RJhO|AMHCA%n=39H>$~hjxphpLf-CnJurBvPXuDOuF^wWou*7InU|7XexC*!l$K#!YtdTh$~RhslBTKnQAozosn4e=M58QLxtxbz>- z@Hi~E)}dLk*WIL8mf_1fPZoySY#~O6`?FjaE^Jp5WcaccNvIx+7(}RM*_0qDFONwk z6VxWEd|m6Q;#sRLAlrL;iY|NT{aY8~UKAaWd|N;1$(L@INg|~{>HMo(j2EfDJGST5 z&F$AucV_>;XJ>aiG7J*pXJ5pa?6&?lbK}lQD$B3Ccy21%pmK6*jCH-3&atF^=@mSO zCp}G3jr_Ro+f3HTK@%_8)&%M37Up>1k8^)Kl%*Z&T?~vIep{cH}Pu6`rD%;wfClspq`CZ?n z6jkd_GZ*qrE_+b(tuIcv_P^}hk1?0elrDGoPN+Qd+$#Fc?6@aZ-W$Y9f8Q~>ZkqSp z`)2f{xYys-Pf_{1<6qN@SJ&evy?gzCpR(tx_{koVeqB?Uv}E5_p`}wUdHiC3_hD`B TMBAU~3_#%N>gTe~DWM4fKK^dv diff --git a/classstdex_1_1parser_1_1basic__json__string-members.html b/classstdex_1_1parser_1_1basic__json__string-members.html index 65bdc68de..e348b38df 100644 --- a/classstdex_1_1parser_1_1basic__json__string-members.html +++ b/classstdex_1_1parser_1_1basic__json__string-members.html @@ -80,9 +80,9 @@ $(function() {

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

- - - + + + @@ -92,19 +92,19 @@ $(function() { - + - - + + - +
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 >
basic_json_string(const std::shared_ptr< basic_parser< T > > &quote, const std::shared_ptr< basic_parser< T > > &chr, const std::shared_ptr< basic_parser< T > > &escape, const std::shared_ptr< basic_parser< T > > &sol, const std::shared_ptr< basic_parser< T > > &bs, const std::shared_ptr< basic_parser< T > > &ff, const std::shared_ptr< basic_parser< T > > &lf, const std::shared_ptr< basic_parser< T > > &cr, const std::shared_ptr< basic_parser< T > > &htab, const std::shared_ptr< basic_parser< 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_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< 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_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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__json__string.html b/classstdex_1_1parser_1_1basic__json__string.html index dfabf5fe0..c7ce7bdaf 100644 --- a/classstdex_1_1parser_1_1basic__json__string.html +++ b/classstdex_1_1parser_1_1basic__json__string.html @@ -93,87 +93,87 @@ Inheritance diagram for stdex::parser::basic_json_string< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_json_string (const std::shared_ptr< basic_parser< T > > &quote, const std::shared_ptr< basic_parser< T > > &chr, const std::shared_ptr< basic_parser< T > > &escape, const std::shared_ptr< basic_parser< T > > &sol, const std::shared_ptr< basic_parser< T > > &bs, const std::shared_ptr< basic_parser< T > > &ff, const std::shared_ptr< basic_parser< T > > &lf, const std::shared_ptr< basic_parser< T > > &cr, const std::shared_ptr< basic_parser< T > > &htab, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - + + +

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_parser< T > > m_quote
 
+std::shared_ptr< basic_parser< T > > m_chr
 
+std::shared_ptr< basic_parser< T > > m_escape
 
+std::shared_ptr< basic_parser< T > > m_sol
 
+std::shared_ptr< basic_parser< T > > m_bs
 
+std::shared_ptr< basic_parser< T > > m_ff
 
+std::shared_ptr< basic_parser< T > > m_lf
 
+std::shared_ptr< basic_parser< T > > m_cr
 
+std::shared_ptr< basic_parser< T > > m_htab
 
+std::shared_ptr< basic_parser< 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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -204,7 +204,7 @@ template<class T >
-

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

+

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

@@ -256,7 +256,7 @@ template<class T > @@ -266,7 +266,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__json__string.png b/classstdex_1_1parser_1_1basic__json__string.png index 15bd53b1b7d4430e5969fab80919f8ed8a6187ad..46fbe9b2cec5dd21c884372e0f55488f036a1b2b 100644 GIT binary patch delta 692 zcmV;l0!#hI2C@c_V1KT zA;eou(=>G|OeEQ*1{+DXr@=;&?dc6$Fn=WZnLG#goxXk~xvL+sk>p(+`t{kK0a>Cl z>*?b4oI9MyU;Xv(IZ=mec{{!nOa=Y){^2jl;PODN+<8zp1<4oZOaC?PHs!4 zDi-H#T}!*OrcZ};a@QZptbOuBJ4o`I8s|om?P;))WP2KH zB-x&3wrQHCJ_P`Orw0IZs*c$nkAC4gW}DHvh3lDZ)JXtnQIpvLACu()6MvvR4K@Jy zib4pXQz1xFml|x6)Sd>LB(<>!c&sEU`Vo z7y4PxvDdSW-77e2j25$c#5G+UrheK`ZnnKtZD?I88lOyo$QGp3R;nPG7N6p_c1O%a zWmqqnFI&t;XU2PsOTm^8W`AtaVY%Nt&h|0BRc|{pHNH)-&HJ?r<9dH%)^VJ$Icb8p zCQ7~GZ6>{ykGQ6pZzm^RHZxVR6{Vx-t#Qd}Nts7wu*<+z78RR0T9?f`k@8?~pIeYp zOW`rKq_|yWIEt*le&77rn(gX++p^28liNC}s>L~5C)1X!>B&0jED8Bpv8$ zAFbQ|&b|2ywx#rV(KoY_z7(=<(;3KL0osli5)?P;))WP3Vh3+5k5zNealV$2Wh?;2izBzdIov5}FD*HyPd~h{q^5-q8zE3E)G+Fy9{Gs`q#jJV1El_YAaPBO^aXaIkP!G zVkQd1d`kwJ7CohZmTf;b57_*6`7WDDmb9sBd!?!I?Za6Z#I**(eDBa5=48Iz`gkjB z+e})Ok5o+!L(b+6k|zh?dR4lETH^D_2ixChVNtM|tKGXdzj^fZv3m<-YVlaMmbf?J z!{Oe}*kz{+C*`{fl`V;{CogM(tsXAtRJo<&}m~BSu7OrQu zQ6~YQMU&0}7L&dKA%EZ_3L%6}g&;{?YOqOCdm3z#)SevM+PTeJb5M+(*=4givR$j9 zBpLl7n()#P$SV=x060Uf(u$ui&gPTFlCks_Eh|_0xfJvu#mvpmnQgd@=6$;m34nJU;^>2SR@E?F({dE|rb16NoS zZ02gKY_%Kl7km5Of|ObckEtc@b@_0(tiS%=>a!)=)%Uh#SG7)V`=qKC=WLx!N3y0T z>trP-s~2{$PEbnH5Bk`T)@^_1R(^wRDLu95n^{S!sd$x=RMi*n?Ok_A;F40i!X`;A pX|PFBdm3z#)ShOx5JKov{{V?Rweuo%`Cb43002ovPDHLkV1iW=WfA}Y diff --git a/classstdex_1_1parser_1_1basic__mixed__numeral-members.html b/classstdex_1_1parser_1_1basic__mixed__numeral-members.html index b6525decd..e245cb17b 100644 --- a/classstdex_1_1parser_1_1basic__mixed__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__mixed__numeral-members.html @@ -80,25 +80,25 @@ $(function() {

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 >
basic_mixed_numeral(const std::shared_ptr< basic_parser< T > > &_positive_sign, const std::shared_ptr< basic_parser< T > > &_negative_sign, const std::shared_ptr< basic_parser< T > > &_special_sign, const std::shared_ptr< basic_parser< T > > &_integer, const std::shared_ptr< basic_parser< T > > &space, const std::shared_ptr< basic_parser< T > > &_fraction, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_mixed_numeral< T >)stdex::parser::basic_mixed_numeral< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
fractionstdex::parser::basic_mixed_numeral< T >
integerstdex::parser::basic_mixed_numeral< T >
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
special_signstdex::parser::basic_mixed_numeral< T >
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__mixed__numeral.html b/classstdex_1_1parser_1_1basic__mixed__numeral.html index 6bc897584..00c57068f 100644 --- a/classstdex_1_1parser_1_1basic__mixed__numeral.html +++ b/classstdex_1_1parser_1_1basic__mixed__numeral.html @@ -93,74 +93,74 @@ Inheritance diagram for stdex::parser::basic_mixed_numeral< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_mixed_numeral (const std::shared_ptr< basic_parser< T > > &_positive_sign, const std::shared_ptr< basic_parser< T > > &_negative_sign, const std::shared_ptr< basic_parser< T > > &_special_sign, const std::shared_ptr< basic_parser< T > > &_integer, const std::shared_ptr< basic_parser< T > > &space, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
+std::shared_ptr< basic_parser< T > > positive_sign
 Positive sign.
 
+std::shared_ptr< basic_parser< T > > negative_sign
 Negative sign.
 
+std::shared_ptr< basic_parser< T > > special_sign
 Special sign (e.g. plus-minus '±')
 
+std::shared_ptr< basic_parser< T > > integer
 Integer part.
 
+std::shared_ptr< basic_parser< T > > fraction
 fraction
 
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - + + + + +

Protected Attributes

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

Detailed Description

template<class T>
@@ -191,7 +191,7 @@ template<class T >
-

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

+

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

@@ -243,7 +243,7 @@ template<class T > @@ -253,7 +253,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__mixed__numeral.png b/classstdex_1_1parser_1_1basic__mixed__numeral.png index f0f689fe2d4224e9b3dbf53deff36f1ab4126469..90c61cf4ddf68c56cce2315d5bc99b933803c0f6 100644 GIT binary patch delta 761 zcmVQda7$jkPv zdpK)}yglddna8(&{96q5NYixPu}IDc%Qn<`;lr^ z?0qFxPm|48SbtlzcYRs0595){+V6g(NbYajza?;6Me(7OgQ0Q9bb3;?}rAOk?}8h^+D(7OgQ0Q9bb3;=(m5JI?@ z5G3hN8px8=y9Tl(^{xUrcHZ8GR)FK6*SsaEEk7sLXGwDULu5%hulJFUf*A6$AM2*f zTE@2LeBwO5_2b`Ss7IQvYe4HKr#PD4WB%qBV@0J&#WHpmN!Fet2gzDmih{D1p5pQ| zTRGwkm49Q}(SHm@S)>zclTHo9cozkZoQOF$<7+Ti5q$R~OsmAfs`aY{WX+ zK08?Ddj0#7!5?h5oAI#J9J|G4vaFwYk^Iv%! zEz`wrBRl))EEh-YVwQtsttu;xOXb&4U(*wJ*>YM|{p!2y2Ac=_XLor&SexMWK5@j4 rC8>7}WJ&5>16h)K*NhxO2)EKdh-1j%WTACI00000NkvXXu0mjf!{>xc delta 782 zcmV+p1M&RL2H^&fV1MjML_t(|0qvb@uInHSgolZAH2YuiO_~H_Lwaee^AMq8)B?u% z!{GkKvMkHJgoPyUq=`(DqiZ6Q)71y4(Q&CT}E-# ziw5#JW2?%Mrl~_Kk)wfm3S6Q0U+BK_6)$53 z;l0IE3h(Wsw|`u*eZyNmuV}MkpYd23&U3zETj<`jRk5v1yUpDxfA60ZNj}%d|JEe= zQ~F!Tj~dl?JxTIC%`B7T=$gnRIl3k?Nsg`+d0Cd_Rsw+E(H8*ROZP+m`nnzS{g7AU zyD{Goc~)!y7+(_^07lnD27u8ukpWaSJea%{u+VX3T z`YcIKKZqNwa$$4DqH@!G5^kw;(m=L# z!DHc|u(q!6)uzt3%RxcoGTHETb$oWQV!VF8JmD|4JI&*=)EwuGttv;FrY;Rnkazn& zWFN-9E>x>n&#LkjFIP-W%ztHZ6{hpuMt1YvS$_^!?8Pi6$y!xb8js4yP(Ra-w`{Gb ze)U^+gUyTm-djFzRnX_REJ{J$00000 MNe4wvM6N<$f{H|wApigX diff --git a/classstdex_1_1parser_1_1basic__monetary__numeral-members.html b/classstdex_1_1parser_1_1basic__monetary__numeral-members.html index 2b3a51887..71dc3ccd5 100644 --- a/classstdex_1_1parser_1_1basic__monetary__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__monetary__numeral-members.html @@ -80,26 +80,26 @@ $(function() {

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 >
basic_monetary_numeral(const std::shared_ptr< basic_parser< T > > &_positive_sign, const std::shared_ptr< basic_parser< T > > &_negative_sign, const std::shared_ptr< basic_parser< T > > &_special_sign, const std::shared_ptr< basic_parser< T > > &_currency, const std::shared_ptr< basic_parser< T > > &_integer, const std::shared_ptr< basic_parser< T > > &_decimal_separator, const std::shared_ptr< basic_parser< T > > &_decimal, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_monetary_numeral< T >)stdex::parser::basic_monetary_numeral< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
special_signstdex::parser::basic_monetary_numeral< T >
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__monetary__numeral.html b/classstdex_1_1parser_1_1basic__monetary__numeral.html index a4e4d53d2..c61cd2408 100644 --- a/classstdex_1_1parser_1_1basic__monetary__numeral.html +++ b/classstdex_1_1parser_1_1basic__monetary__numeral.html @@ -92,79 +92,79 @@ Inheritance diagram for stdex::parser::basic_monetary_numeral< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_monetary_numeral (const std::shared_ptr< basic_parser< T > > &_positive_sign, const std::shared_ptr< basic_parser< T > > &_negative_sign, const std::shared_ptr< basic_parser< T > > &_special_sign, const std::shared_ptr< basic_parser< T > > &_currency, const std::shared_ptr< basic_parser< T > > &_integer, const std::shared_ptr< basic_parser< T > > &_decimal_separator, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
+std::shared_ptr< basic_parser< T > > positive_sign
 Positive sign.
 
+std::shared_ptr< basic_parser< T > > negative_sign
 Negative sign.
 
+std::shared_ptr< basic_parser< T > > special_sign
 Special sign (e.g. plus-minus '±')
 
+std::shared_ptr< basic_parser< T > > currency
 Currency part.
 
+std::shared_ptr< basic_parser< T > > integer
 Integer part.
 
+std::shared_ptr< basic_parser< T > > decimal_separator
 Decimal separator.
 
+std::shared_ptr< basic_parser< T > > decimal
 Decimal part.
 
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -195,7 +195,7 @@ template<class T >
-

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

+

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

@@ -247,7 +247,7 @@ template<class T > @@ -257,7 +257,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__monetary__numeral.png b/classstdex_1_1parser_1_1basic__monetary__numeral.png index d046e3a0227a483c1cad86291deaa329c3efd44d..cde2a79ce4d9772c6c5e3af84e4e54bb9336038f 100644 GIT binary patch delta 794 zcmV+#1Lgeu2J8lqUw;DkNklvHQL41~pcrla?N;*;25UBHP+le9hAj?@?s z3w+4(Us;xAq00gQpYFs!48#Dy8!(6zd?-_=!g4UkadmDxVm{kA;2(~}fBY(NE+!F@6KnMPwp8Z4& zQ!mF9hJDY2t+WvL)>t#P`p}>qm%OhR&KsW3gP43NJce401{m6i&GJ3NP^aBvxTTlQ znp$T;OqIx-$oUF$o^%l%hH$}081Cr3Hya9Iwr?($$n@rBa)+<|$=YzF_s-hT(sB5u zXuGpIzK_MqZhr@fp?AL&hk5{3X6}{Vu4g27e<4Rn-Z935FwG!*FG^ zg1Y#%Z+rF=Fa2A){#*z8o?+-JXze|ytxyBpB>T4oHie*HJqxw1#W|-i6jigTT2zDW zPxVM{EPwZefi7?dzaej7gGpXDPK^_TP&z=nhm65@It(^1DLMfcZOz!~LxXm>mwfQ_ zqpBr&=sm)0Ntw?O_plGdmm(0ZN!6dNjo2*TGYpMKyMtkylvawfk1)ioZ8E7M=9<}+ z$Zk(*^_(YN#L;a9?Niw>Sjh^{?QBRXG?@)W)qiYXA(qHK^TxS&wl>^*Db8RB6{@Ie z^2yrJ(tG%&Xp2}Sx6&L6wCyK`9(*b6y29q&R&1qsjaIoL1KUWQJo~{^RlV&``jV@v zKH{%j{wFZ3g)9{=Rn^UPy Y-4htub|F%&i2wiq07*qoM6N<$f_T|@{r~^~ delta 810 zcmV+_1J(TO2K)w)Uw;D!Nklt@`v@-mN4q|*17pwBba!a&cErITwAUB`z<;SOVJLt}1yFz>{jF}v zjpd#&Fc|tJQ4pkivPZM*;vZ z)8C3=uY;?p4FHcRv*9Ti0N@WQF%SbW0PsQ#4a2r=+uN&%$gA~3M1)EVJB1H&AO@pA z4#dC`DI!jYff$HEM7$6KF%W}@cp(O2AO;cfLJY(}41Xfxg&2r|7(~PiF%SbWh=>O(5ii6*48$NJUVa0HQc9spQB{3+B?e+3237S!3^NS1@ntkK2a8U>>3E`>dM~J| z2K_+{s;Ue66bxs64a1eu4(g)UzT@3by!0RK`nV2^JyX-&p|!hFTcH}bN%nUbHV?sn z)$FK+7Juj5g`udLRIf!fNPnwaa$~tC3=D=H{DHigO(uE2acZ0x9HkAkbI2Hcr^8_L zl1JyjSz9xnkW3This 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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__noop.html b/classstdex_1_1parser_1_1basic__noop.html index d5c9f1c29..c00243e10 100644 --- a/classstdex_1_1parser_1_1basic__noop.html +++ b/classstdex_1_1parser_1_1basic__noop.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::basic_noop< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -99,35 +99,35 @@ Inheritance diagram for stdex::parser::basic_noop< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -181,7 +181,7 @@ template<class T >
@@ -191,7 +191,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__noop.png b/classstdex_1_1parser_1_1basic__noop.png index 387530945ce6e7a1e7a6a44515e739d8bf2eb16f..1c78d392230b849e494ad18490db4aac3ae6c3f7 100644 GIT binary patch delta 703 zcmZo>`@pK$8Q|y6%O%Cdz`(%k>ERLtqz?me00%RWoE&UeI#JQSzS`5pF{Fa=?cCRs zRx1d!%-)u@`u_jU{$t$64Hs2*&z#}hrN?@#t^f2B{kB92Jv|Nj>4|3MVT> zc~07Te6rli6K6iRUghN%H?~PNp}zOe7%<+`aQ9vKdH3IfocXU$C%;+|J!_%);h6dx z?`52oiX+qJdxUS>o@%#jeNKI$Z0Lf>t;+lVeBfDj(I|)6tmc|P@r|OZ*IxxZe=Gj= z#`#!=@B703L~i0a{Wa5IjqOkE+n0Du@0lL9-T#P7eCy7v_a!_3KYcXSI>a@ECol86 z1m7RI8|^O7Hd+3*j-7K&sQUYg`Fr@Q>z2PiysP`{o-I+&*KGXy(`HioLudZam)6zG zdj|6rX?xzgp0ED*{-^GQi2wQP&j{?~SNYlbibq9q{W*t8AEhLLeqX1{@FV&!!-1n; zS$XX3uebkTY7>0;N#Op03!jA;YMQK=8IG(rW^mX;0^`8Kpn9*DkDMkg@m_805wypu zS>@>JgBwitoVjLHajnGDVN%HJvpkc&Ecy1<=CDiEVOi6y=igsTL z|1-S4V1h>5@A^HHO5*-Mw)42Od?n1E*(n~HOS4~#$|r4JG}-s>ZdqWOWbkzLb6Mw< G&;$T7NKqpI delta 722 zcmV;@0xkXU1%n15iBL{Q4GJ0x0000DNk~Le0002J0000`2m=5B0DIGfUXdX`e~w8+ zK~#7F?VW3m!ypWVhly0p{ZG6}^T0Nw+sC#PEfu2%BG{779nZB@^8^BIQ3%Z;X~c2DEW@ z7gJh!>Sv{^i|x{BHuJj%On>XK;48-l++LFk{l1d#vX-i=qqOwVAx8=?X_&23`_{&% z9TOIxO5st^yT@~u`?&cL>4DrQGLK_p|JH`uj0X<2`BL2%C4Rf^_Zq17f1EvZZY0N= z?>U*myViP6ZZvLlm$17#CQ07b%U=PK{8P1{Kl^f$KjXZ)_|XZVis`=%c~2LM`W&;vjl4SE1*qd^Y?&1$Z{-)?Xwk=#%u4^rTM08T#dP*CWnajO(?%cebzd?QdBqEmhZRz&t;3 zTD>Z1{*^vSd2HNCa^tw#NX%NaxP`*e48Mkk3@gT#NF*}7vLGK>VJ9D3; zJaP`)TN|o89{5&CSL?n?|5V-YHBjw2``)=Z9BaPkWK8dR(sP{gm7XI>zvv^M +
-
stdex::parser::basic_tester< T > Member List
+
stdex::parser::basic_parser< T > Member List
-

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

+

This is the complete list of members for stdex::parser::basic_parser< 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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__tester.html b/classstdex_1_1parser_1_1basic__parser.html similarity index 81% rename from classstdex_1_1parser_1_1basic__tester.html rename to classstdex_1_1parser_1_1basic__parser.html index 9d454d03b..e7a2b84c6 100644 --- a/classstdex_1_1parser_1_1basic__tester.html +++ b/classstdex_1_1parser_1_1basic__parser.html @@ -5,7 +5,7 @@ -stdex: stdex::parser::basic_tester< T > Class Template Reference +stdex: stdex::parser::basic_parser< T > Class Template Reference @@ -70,7 +70,7 @@ $(function() { -
stdex::parser::basic_tester< T > Class Template Referenceabstract
+List of all members +
stdex::parser::basic_parser< T > Class Template Referenceabstract
-

Base template for all testers. - More...

+

Base template for all parsers. + More...

#include <stdex/parser.hpp>

-Inheritance diagram for stdex::parser::basic_tester< T >:
+Inheritance diagram for stdex::parser::basic_parser< T >:
- - + + stdex::parser::basic_any_cu< char > stdex::parser::basic_dns_domain_char< char > stdex::parser::basic_punct_cu< char > @@ -138,52 +138,52 @@ Inheritance diagram for stdex::parser::basic_tester< 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 > +stdex::parser::parser_collection< T >
- - - + + - - + - - + - - - + + - +

Public Member Functions

basic_tester (const std::locale &locale=std::locale())
 
+
basic_parser (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)
 
+
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.
 
 Region of the last match.
 
- - + +

Protected Attributes

-const std::locale & m_locale
 
+std::locale m_locale
 

Detailed Description

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

Base template for all testers.

+class stdex::parser::basic_parser< T >

Base template for all parsers.


The documentation for this class was generated from the following file: diff --git a/classstdex_1_1parser_1_1basic__parser.png b/classstdex_1_1parser_1_1basic__parser.png new file mode 100644 index 0000000000000000000000000000000000000000..f759f0581bcf7027685f0d364d00ade14364625e GIT binary patch literal 29883 zcmd^od05kTwtlD9GPYG_YU>K59TDniL0mxDGLCI28l zbKdto?>YJIvn_73-&pjV8UAcm_!nEYz5>s&hr_F^hp)U6{)ziX z8@`PGlS2CFi?(%HAK$+j@@}olcw_#jp9TrpGoPfp(=?xXZ`@rS$-a8h5E~N{b1@Ab zb3f~gvlUSFV_%{FMEq=b{aodcyq-hsS~T~q00Q=6-tWDb&djUdqKOVq7-jiU;jgO$ zKk+}Zp=OboLljU&V{{W>UMVQD)5r4y;b#i%r27mz z|A|k$G<;nvRAdX!v*O6OQLUErOJkX_=k2#<3LLJ8a{XhC>yvv1@92L~pR72a6Nj%H zs?|r{>~+<5)2_ms%H$ZesRzBTQAM!}`u`%{cV&H2kAp^j`!!=KjvS_`CmpjDmz*w_ zw&N|9^(MB()rc&8q zEjkVLSjdJGv-m1cU4n5;Ew4|&Q`%^~Ne1+FN#$z^8Ln(@M3+9>?s|&+_T;IL(L1~0 z0tgImoS60cS~eV|-m#v!^D}?+*EnIn_hNZjS=qyCc+C1>L|gXH4cCuXzBaSKkLWY^ z9YO%%vz7AP3w5u}3|ln!9o?TiX1&2)YxM!Mj(Kk9cK;(s4xae$d|~*8-G|lr5A#=4 z&x-zgjoDVlmkhH2!pfiRmR6xtShSUK1}^GzPrG?`)?$xpjrJZ@RNI#aJDt2Du04P)6h92ig|qY>;fN@2}sLQ^QRPuHdvK z3+{41S!*?t=RvTo(np--rR^CkE$3|+nheY(4*ob#X$v)yYdog8**WrN-V%N2Lz~XZ z*JPLJJ@#7@jdiSdg7=%cxTcJ)Obow&g_X9n5mH&_dMLS1;XAXI7~h(etI@^ zyB>d1agdOv)!VSO^^MAJx{Qkx*SqW@aNtpMaIsiPrV8@R2!@Jpg_Ql=cFIEWs9H-J zaIhosTYDf}&p^21noycl$i`OTa%ght3TKoj>ATdo690MEQ*XsiFpo{Um6m1k1>Ekv z2OwY{N6a75wedY#J7n5v5nGo}X|J;9j=n7+DTgD90&iRO*UoP?*d`wjAoTfaNjC2M zP(w|Ir7;d2JZE>T&)Y3D#vWDDR`-03=#l%tY7K+kY%a|JGdipGPYCj;6W7!WGqD zROhd-ZoTLnMsWYaJrpa=KUj{}W%p35C_np@d}AnoG}RIx7M?(s4lPc|76d^#_I!IQ zKPlBUTlB94X* zwQshp`WDXT=~zt(EO8or1$@0i?b;Okpm z>DsU4OAR7nS!m76S3#4faL_M?oV=3_1;%}!Y`cYpxQ2fX_c_e^5CiG$pJFYCB ztJ{?&Y1T)uSk+GoPP3$!T(BB#KBp9asQ%%wUA;}c!lJiYMnDNn6%>}Xo~K-t>C^b( zH`Thb%#yP_^Tv*==A})?>h#n(O*i^3^YYx5mI##Ermk;HbBGMx7C5^s$qq(*hgJ;d zY#7or+N~k{VvCq9r@q%@%9>SSUovzB@Y0jp;}>FVD+HYJ97NnXh`9ZyDqqV&#VtAz zB}I5e*y8gv2G7$`3__B;2)S}@-g&DKJ%~afjf3f z-IrFKA5ZSTQKTnoHhXt$qiz!;bA9RcdIuL*C;i8aJvs26vrjB@zq{5d+8%$Rr-Ss^ z&&D{)tfbQ1)Ny?so!qMZ8_rT@ITUc(% zs#i$Y9zUc$nu#HH_Vn4@M@^o0B&)RB)SjciBnzs}C6Lmo?wDh>tZZEzw+G zLavdtw2quCz=Eydc`V54*sr-&&8(TNSjSE@(K%;ZAMa7aW4(S2yMnZT>m(%Xk3D`+ zb8axTC!`1A!s1K}7aDAGY61+AtF_VX2fD|uei)2XeRxv3s)Tlpz7?);P%w-4Q@GUI zm76aqBzE>q%XE?I%b&XhW!HzX4tUWCj9HMc^zp3C436%*iv)&o8^X^xv1HYtA;r>o z7!JO4)i_ErlrS0X9PS#c1rOniI}eyUzl8cTm;52zOz4${xXtjh*0L?v58eL)ehTD{ zt1GHQU(L8ZSNPgYS`vUkFTk8xCM zxgNv0&pf?%h+xYix(}>&b71lhGR#=z5%BIj{|bm?Bf!ATpP;OE5@j_jl-0g^A*yQ|XFg%TW}M{&wbDx&mCctuFKZz#{F0;-0A7)M9kyP;0PUcqSue2fs2DWxsHi zk8sEkW+tAta0r10<8hvQC@1 zkF}ms=S+L$z zMe(GM`hKnL(Ym0&CJbM9Rz9m)nUJ$Ac0?{iI8Y!oo9&WxFix@Si0S-{8_{Ee!WvYC z)PS=51;MYmy?KK)SnPMz6@If_q6X*CwL@Y1IP(ov%%a6zqs9j|lNpgx35>;JUXpOF zeAf*xZT07bB`&(<%f>e9_V>uVll;ls$KAlw&pVX_k#h5|Gh*NDHHlqk3QN42ML% z!Nz31RTUkDX)0EO7Ob&=lp!d1`2yE|GH~N##22kycQ{9K&wq{zPaMFNiM*aHAiq zwlnV0p!pamt;XFWsCxFHN`^Z;T`ERi+Zjp}Y=uVXcESc=wX5MRVhY z0VvIy83V1WGKW;oOWlt`AP(Vf3>Cc%#M@ioN;h;b6LJX*Z@4g%OlAq>S|j4yFBy}u z^`FF(X$~$O%ub@b@{(-qpIIJFiyDr*|_AV z!Xo7tTjhME4aHc~by%V)^9$3plTU17ltYEv@;ju)hAkQxjP4m8QjfHys07s20ctDv zNVxWn^d5eWna4G&Z?r!Sj7$V91y4W z^uO<$zO!Z2K8hx_YF*`?GpoTv)OIrKyu7|BNphrLeSvtjXja@=bszVmD ziD8D)sQ}XH*=VDCK9yqO5_7x%WA}kXgfyQf)1g6toU|4|p$NUL-t2$mbAb9=%C0`e zbN;FcTzbz9;nFGn&(jP9$PfRQktha$t&%jO(yHaO(%rwbY|Dd=bo(~qH*J9>^2Zk9rfWm8;1%(~b^T?!Zc zrgglo>t5x?G11SptjgEgwt*Vn-$#sIP11ba(JyWTXiDG4Zeuda%tlD(gv1CVEp$~t z=2mz&EK=}b8cq5}@-~K~D55-o0`!ah{duN^s;s;#;IBJWVcG_A8d>w}pz%CqdPdc5 zmT{I#*0vq!SnusuSN$MrcWm*X&G2AcMtrTf-9oSt&?+Bdf6U*gt1rLv>l0$MhHOOi zX!KN}cci_WY3ADSnyhk64=T#}8h#fZL~CmORpX%Nm^~?t)-eqSEWRDNe7)bhN`Mx3 zxpB>c2W>7mp>iAN5tJ?duB!+E%rRa`X{UL^&oOQwkl(zn^<=2!BL^7AnLJ1LEz|1$ z& zlK$#0IY%>>4!Mik+-Df&w+28R zytr%of8jCNMLf72_U$ee>0G~8v~y%Fd5+3G5!JOU;ZfYL5`1i2&qqj;6p_N@?v&}8 zWKJBJTT;PvO;#Oiq>LS$jK8rM0xx2hAn#Jqg_P8;116FWW9XDKxdhXj;UJmU-$4no zb2xwOQs<%h;_(D|FhtXp_jdD~j4eq2X@pR_P;dSuY&q}3p>!eL<3PE{w=!7LILDV1 z2Y7T*uevdFsrk^Vt&jm!tj118`*PX=*Oc}fc;mm(y?vC~GA~1uX(_Ldd=m%}B80U5 z+u?;JORI3TprGRy!kH?dOawq}`VDCg#2+NwO{2g6w*?=nnYg;si=n%7e>R&OTT&N3{=OF9A7zC+xWS$jjVJ9c_M zCT7R``?0#)C28I}oagkgYg^>zN2_8~`-8iJ-6CU1iFrlk3i~LJ19KIM<_?4Db=~E2 zAlqvSu!4*K&OKC_$*1`rA;&2pzRp5?vFf|Nhzz%JH^BEL7%EeHWIkySH`@I`GL1;& zMgq@^BFTh=@`ow2pfXH!UYyM&77dhAon=+#eYn#Gg+Ev>Cf*#f=6}S{B8{{lyBItJDC+V6xQDdU5qjqz(hIS*r=`0eP*iLXy^EszL@tg)h2v&gjLX-`!}33|G-3?kxfMO%?Grr-n}{xCgUa{>TFL99UuY%IPfEO!#tTlQWi33*YCMf(Q-%+V5LKjX`#iVhY!oUMF$B}Cn)Tki_01k#1`Mv5Y96MvcE*7rk z?T*Y$4vYPj=|?0IGsWJ7Y?_oy8`PgxuY4SWs-?gueNN=f#6P+FS(pdq_@=jJM({;a zBDb;ll4}ml=u4oxB_CBRyaH;Gk0Q3#@kl!5hv^OBXv3{vG ziw}AaF^x#4E0Xg$B=X=bkGFF~eS9yeDnIFQYkH#x`nSo)T*KY*N@>Am~9A)bImJ`bU_IJq@@I;qn)cGF!Zk z&^sWteF>?}diaIZMm+3Fw{9#09o&tL0kapobS_NM^{)=*MA3fAK|lQ?0;|N=B>${V zEs=aBJbNj)BsT1Fwlbs8eAF5V*xfZjVRB{*E!iKWaskE6HuiE?=qEj$M6DvN{S(SE4Dr zb&(laT|xCN@iYXRZ$Ask0o_pfZpK!kYnvw<-aG5EChgwhr{R9Qbq8Q2Pz?|5OW@)|w9?eAdT3@W0nm zo9yIetYc5PZqgwfHZeB-r-h&L?j(wzLms=Ca@X_h+0n5;0WigOq}u4cKp;-Qp^{0B zyLsb%*P|y7x0z~0TKpKG`Zr!g^=?#W|Fs9=o;VsDgVdvu_bIjOM~?t$tbC33 zAmqQ~a``k_&}#pnmN%FOH@D*nFu9nl&Oe=xQWpK}rK6amVEAxXwsOXneCN?4yqQ7V zx2>xZ;5zdgI_u_+Oz*$ZkBt6JB4*lXw7vulr(pR$P0zZ?-p1J*g<2K}8zw16sFbqC z4`Yax;Z!}9rSl-LY#RXo+ht=WgOk7CM3Ms5>)$dHV8T_k=?%ddEPu$HDN%?nU&z6u2G@tV#`a(b!o&iUF zHW+MIspl_#$`JS`rHy65s=Qs7CiDz^=<3LbfH=LI4@>U#If=80fm$Y%)ojTf)eP_1-im~r zbZJKX0x%m4pOlzn5RG3e9^D=)KZEMkuszp%cAn22|Mw>{q01YcNkLKdoOxxM8U)w) zC&hCshsNM>23&?p4(+MeDv=5O3e|2$fngV}7jj`9IXEn5W^0&*EjSL?k#@-CGIrTR ziYvhlX_;7SR)T(3RnQkP(o~(pAAI?`7tM0gei)(tuIfR1)tP}nWfu9 zR%t#*Ul$cu0{oMS0F)Ns*}Zsz%rFNfNPA!oZFE70gKF>)c$-tlz0J75TNM+gKU*AE zdkN2RDwaJ8)pyi)+}Ff`*4AzSV;g*eRnFj4slZ&R2Um5r26W3s;PHJ^+ z!T>`QxVZL-^dDaEZ_d6EPJB1=aFBJRemJr=#5%`E>2-$m0q?$P+b}U8O#Q^06+!0q zT4CPWqd->6o@t#46>@50!2RtMKU2r#gM%|U+QCtK4R4aU4oR4iKKH4K&TZ2Ed$lcv(ypQn)Z^5K&b+8%s-SibZ}fHd ze7nyO09@RF6gU~{tmSADy01U7EB|mA(A&^}Jp_i%4o+dBMW#QD8WG4g^PEus+|xgd z9ftmFbk2T@fu((28Aru@+kyykro zS`vY`dpK${BV?j?I~GhZ(N^dEOaJ%&r_?pkE`0A8u^B`-?e@zVh1ym5!{gxw?!Pv+ z_VO2oHCX;D68U~ns{9NE8r3#snA#bsjNIcTjO-4ONR(lc_wa&>fNshR%AY$;Fk-4A zqk>yfwVAOWx>)xHA^$a?{6|AR%ZW0J#{t7o0m7azy8X6S{lHWo=`r(MEBXHah^_wj zJ$%T)>Jmbjiuu)$!c#31|I-{k23+8&>Auy$L7D+}=4rAUF}k?j^b}N!=5T_l`kHV% z5DW_-7zJZ55DZ(q2Dn8=MG%(YMBUF<*ZTa0L+MgiHvWnf6(f_~u}n$LKZ;TW)HvRg z;*{DCy~ua{oAP{kdsmMO%lLdzZrAYizG^TKO&hNF44@V!)>So=&SgiiR234vEVeNc z{<`0(p|i#GDs&052TYKas_r_F3Q_k2sSrQTyHD~oUPS&W?M6xS(hKrA>XKCH7sYp; zXwxMnl9RrEn8v}Yk9(KOjGo z3;7A3#?<;Mvt-6F+*nMOrN+zu2(8-mnZEs5#e^+1$Ev92_GTqV?bX=(o&3F&b_raH zF>iu)S^0BnZd^O%Ly6xZ!`dS5=;x>pr4MIGR?MoWbYA&>s%KAmN4&QI+D-_nWllmh z>f7S$E0k|E*v>OuVzIkvgx^Sq-AEw};HE zsUUOxYdjOZAez>0csSfsZ;7WVhAT58k%sH(U+U52`hD&9wXV^|V*Sv%@Guoc zU}{IoFnlKJ)Yo8I8uW!?9c9mIY5VPbk18__pWRW4JwqoY+nU{uU;iy~rdjSH)?eX= z%;U&71j(D^C`18HLL&=i(N5c@l$_>`OSO4K$>ZdrlG;}zHV3hKzC=h%1cFFa85F?f z6(qjxpk}-Prq!bY=(Ho<#z~?+nsb<5t}Db^P+|=Jn{?W_Q{|adyirx*jVPC9Zh)cgf*y}Rx+WcuwgYCOCEp5mG|A#RAJsVXibdWv4?rQ3JZ zheXNWQqCvZl$(0XhCjGg`I_+u*)v0FVUen*V~;Jk65e&kgxZ@L;(i$kF@Ucz25>W+ z^&{myNu#fz+*jRD6#(WrEfx2pHuP4L{*gAINbbYXp-IdHh`)hnwA_7TxXmTOex?h9 z($0%~RWe2CT5z<_m@*{4H(ou9-u(6c?JyXL>>r~LGEbUG{ROKObz*SLsTMS$hG@I5 zVaQ87ur8M#w7R_ zk3$ud)Y$>`D)qGugq$P}k#w~r*doJnu|EdP&SR0OShk75(a!)w92xZuE`k8;)k3=) zT;h1v(s&GlaMBn5DZzaJj~WS2d+fi{fuB;x{%_Bu!FT;jUfY9*KeZl^xuYW;beC{lL}WiURr?D2r^?2v{L&! z9>_1(sA6c*j3Ah5%htJKDRE2h=KL6G3+1j-KQS-4B&sbkSD`G5{lqUnhLp9ve6bu| zg!4>gb%o9MLf->d&p40IV(?{Zj?C1XhmR*hX8aVDT%d)l@5+0Zn%Ge?N{E;V`4CQG zIk2Ez{Wyzh|6d8qU;?k$)9YH|yM-_c6b3vOrY2+3@cP<9=Ph!7KT~ialV)*GD26k$ zn69eGk#;SWOAcCxxWZ9TiqH6J7!otu-Nr8dKukMde93>^g3_jQk$OMV_~FaGTU~AW z)T_0fr7>_2$KQR(Y}LX)0mYb`{ee4w*tB_-J3klRZuYSrl5dQ0J+I?QI77F5I{aIL zW`U3~?6*0?1f%%FOrKRuIpYrXhTN;J_RNSMz98V&O9~KXLDo8BEZnPCH91s6H@R|% z_a}%11PBVGa^{4id@!(5ZHZtZh8YKx>HkXrkX1e`6e4$qOJ*(CNsv*=R;u7r2nYGE;Hmt#d`kW^9gFW)MAjRdO=RR$%f%43 zvt`drwngN5J+1aiixU1i+Y&($w{%Czu>iGFi=5$eEf~VlJKpN zQKQ0;6axfe--cr4D*89^Pg82R&kcK)LSa$I6WvxHO30iVLRVFWuT12ap? z-Y)cMnd2Y(^#{CF*9C1_tmjct9eU+7$Cn^0**HiK*mu*f-+XaBDOGIoZ4k zdFoUp9-VvdK4ml88!$^9)mGb_d%Su??a&Yu=3d89%||JeFF?*scBhSd#wNHIYZi+o z$FM;+G+{Vd(BmOV2(n(9f+o-rX6&*Fk(l_GYg2Axy0VB<;brr6*u_OPicay$u3_7_PGrLzl;|-9v z4q+<~gl>5_o>LsJu~W(Y3(RVevDF$rU?x6uY1YTH8Y;@q5X6ndA< z@ps%FHoVyjT*E3#AQ%UfZ(fUK=OyCiA5S0!<2oZ-+m;B{X%~psrb&Ms)nob$n5WWz z8P{j5hF5KU#$}g4QpS!PVma+#SR5JMhArLj!8`=nt4~4mk}ALtdq8oHz0GW?JFm%1 z(NZ!z7)y9+;E~9-xZf|G8q4Esf_YLzwCMmPjsEcczk?;8BF#UHn-gXzCpsRZ9s&nP z_hb?$21$S4qcS0fjz=?eJj&hSo&}SEo;=cKIx5my?f@v+{tT2vcDu#lF0pZUDLP8C z+Ruxd6iI9g`xJBP;UCE{W4nD-Ox2TTCdogPZCxp152GirD))S7n&ZU_`1q&a|@WPfM(!H*^c{8@nmm0$sj>II2^qgUbF6KM{%Iq&CC`V1jjY$`~o zw=ixR$S+tQJ5NqI+-$@L2`bzX>46qMOE4_Ap9Utmhjmu$>W_KWB#vv+K`rRnjqes{ z!+)3*93f9K8>ME-`b&v_-M?Je*|KrD_u^!79gBH9i%YN`?p-$J1E{O z**^1%k6&Iw(Nd}4milqx&byf8ZHXHiHU-k;55T5-{s1$%eXmM4FIR)|Df@9U*&-`(0gu zDbS2=&bK|JS+QUTb%SQnKPMG!v~H;5r7XXV9yG&c4kvzk@om3_e^(qumO^PD?~XMt zHjHef4!X{QEVnG?d80D|{xF zqeSl6XJFt?LjCf@-KBV{7pUCzlQGugU}vr?QN6Kl`=9NX+}%eDQ}w6zB%O34UWH=2 z8Hz19lD{jxQxo7g?sF;4)E8`+0bJy?DA7YIk-v^fir|qa+>b~c)A zhsG)dT=isKn<;n-EKvsQeLjPg zEeyX}vd2X^VAzU5KEb27XUwHjTQ*WvlzRroS1VbY>(7#usg^RR6!*CPO?R3czgHCI z$y)N7qVgAF<|IwxTd|5mX=N~C?7&x7i}Wx#=|Z({-e;Os>S9@Pg@d^ zs<94AW&<5Bk#9%#s((GzSCWJi_9{P@fx!lSZ%30xqf!OG`S8iFaw*3~*4Cdynd6RS zzXXsq(8S_G0yeQ&GrODmbbpodBrnRgYAoW=BdYF#QCeTTHu6N|d~i!cBDm*GV8!^< z+zGf9fGeXlQ?aE&Ri6y^wI?!*=2K5Tp~N&BaY5wpQ)sFd`h1-#ed*`Z94-}BN?1#9 z5>G#V#{BS6FwRrUL522$NH>6YHb`fei!5TbQfSY zQUXn0o`4OT%!oTX*@$(dBRzN!sQ+98=7b&#A*g5?98E`Vu~x$7p%c$2*Jz(w?Gi8l zx+n_ftdeK{P9oIYN{HK$nET`Qa#jy&pnS))FDT7uMsi>A=>bJmBCIyWIfv5d3H!;M zv$s%>_2O^X>|0No+EI2CAyAh+Rd9uN=0Q#%^aa*ce2Y0t{Ruo1mrI90g~qSBg6i!Y zw8`p?D9l${N+l&ZHEiQ9?k=k7L41MLj0_8!(=f1MuSh$nYe=XAwAWj77M4uDK79FF zykERP7~F6lYAdoN+`EAl*^T0KOXFFj92^0)1x+<#p8LtvX9{OXLpvB=lEw&r?j$qd z^LvJSu~8qStYqL}kVSLoX66bs>;rR*^@r&$B%rTb5wkytSqk*kD?0ZJf zo7%{yJeetQ9c;Qe6O8gy* z7kNyH#y!kA+_N5k!n6`Z5af1jDTub$SC1fw79nqisYdqXRAW&wr3~!t^b1HT#xPa3qQ;j7-C7XCPR0#R?nlebDASYnBpu&of*gB8m!3)X{4{t1Vc*ujI5i^LEeTDj*r z4{qC-xt<7l05LEgrs+}zF`4IKBV>H}^BbqU=<#Nyh6osOB!9nW5JZt0?Y7?*MVg&M z@k57Nhg*LstmUaNdsdXc`nq^%N$c;TY5BT2}QsJ zuP7?kR#>ncHw~VyZu><&-o>bb(7P-z8XR|-)=zVpmiLCRB(r^G{q}u>yW9f7!}Ag1 zT+&Xk!p|K%WoeDA=To6y`x1RL+*zvb3O~k}h<2P6ys+bJBH}(R z(iqF01ccGm7ho4ItP6*(?QzJwu%Gz_C-c+TQyAn!stTO)N=YA;t2Qt4z@~EFa{RXE zkYkilmqR(U_G43;eliZd36en5x$(t)>nasd>oHVU0jqh0RO#Q6=Y1>b3>ja|Q*ruA z3@nfA8Y0^2Qm`T1rm2FQhz2z(cJ~*9(O@Kiw*J_`pAz#3v@VR`c0nK-swQz=_L$*v zg(Lslp4MvR=_cyUK(Xn0^K4X`As$Dg1i?<@t8ww#-wen@Th*Pvc!*4$24lZu)XING z7Q(2@sF_P0tjV;5-TgenY8kB9(dZL_^Ufa+&DPF)^|FrEUoA(IAx%#7cd4j$3s6@B z(&Eb?3@@C7e_MjbVn%ZI^QUj(F%cV%nY?Z0ouwL5f`}v{8Tp8}gTUC+uTWe6QAcIUCgJj~3646R`!x@MsgY`Bx>epfmbW?zv z%6@hEZk(iM4#kb!P`o?7a9QyD!sVQ}OyQ7SG%BcHPVRL&opg}>mJ~ zgY$yU5obGJ^Ck?_3V&}0g$=tVfHPCMdu$2j!K3{R8=`IWFzow0Mu%DFvr>B=eJ(jq zdk@hA!<`p*C{o5Z>@-etf;G7D4Lh3eWVsu2#!d5igkpg~h&IxW&-wIB%=wT)xHA=} zo9%`8Q`nxJ07yoCPhd-@1u=FsRI@o!wv$pL&)UL=VIO?29cDiEl%noc z%d{Go)KkzD_s}gZPa<(uJvwC~8!`kg7WZSq?Jfeh$BFr^x}7{PRp?3I=%8`kp8mRx z^lEC_p0-`A7J>B3f*9KONVWyboFiM4*~XmaU^+lxb#a3G&N7v}oXN*Q^Ej%Tg}$0#C#ldv1D{3l0b4YR)Z2BKyYr(Ruu+y{SeJ_Y@szK> zP||h77i`@lE#}vx^x}SWatF!hGFa+XIn;mnc#u41pP3nVmqhvc>8BDz!McF$J1lJV zIu#|g#EV*9r8vcUuuZlGFzDB)q2<(!Xn}xr*fL#%*2(fw|Ae+kEQ#$mq@X?LV_Df| zvQ_R>Hc<14aYnSs!RU$F5HH7m3q34|ol0;8DP$qe6Af>)XM@xPvp0+)@q_8Z=2nQ<`Yy()bzvz0iY_#F_Ibg)3@>=)}) zek{Pr_31Xc8{x9AA`kak(F%Tc9`7gIzdh7(!9=zvE;|$Z93gO2Mi5kZ;iM@(JVJG! zX_MB%zlZkKk*A=)N?7RgXZRE$%IT;`-)H_{5SgDT> zl{yUaY-T!2d}0gNenko;M)IkP&_Yb%EN8Rv$k1 z^bg~mdwpu^adK60y{r#4wGvR2!8)h*hnXjOw6b$ZB!ehR)b-cvIw@8VWrM%5vzR}% zvsn8}*nsai|6C~eodtG0rhRoy+XacZz6~aCj7^nm3XwHw&D&y%SIimqvw4tTHq<}V zAJzEbPTt23<2j?@#ain!xvv<7ovdSWO`_~+*aal6_l`-n&yq4UCz$q5?FR|0YGfSV zxd)t_!Q$}rpK8zaTJ`ncx_?g{D7i`6pdEX_*)I9F{x4E&E5HfZ3INM{-pi!*bG^&& zR8Qlaz6Z6pvQiIHdID}Ke)JIKs2J^rMaz&)?gUnf$#+3Zx+WO>!IA|fVnfY4VoAWj zc*ctz_@OO{(N0IBkQ2KruxQMAG5r3h(FhCaCY+pU4ri&mfvn3VSjt2Fd)Sog9{PlM z;^0oC#?gUqUZCnqKoH4Bf=I;+f{1EvY>41cL^ut$4%>PXXP0mst%+-~+-DjyzOHj{ zd{~m(=<0$#J)_T#m6&A`)zUJUl~xdE5nqcYFN7HCb3 z&rgX z6n6*oXhh%moJRND(?5)47d4(TX%a~mE`u5#L>ZfKyBi5`6yIc09{~%1&-c@24hv-( zmZqcx785@lAEu;#M_V@_J+Ik_6Xcot;^K@o`i8FD6ilSs)rK`$yN+Ag%F#Z?U^H6s z$orkbpa?I>42FjKfeYoaL6HZdcQpp_eFmk517@vn+< z>%Nh^dO72w{87aFbT__B`24ER*CpDytT-+6L=ccnMjUqWgDyijOH@sGT8G!JUO8lF zuT8JnVK3Y!JCOMp^~aDQ{prW|RUX%eho-b+L*lE2Lq+$n%@xz3-v8%E_Vv^Lex7!q Wb@lu}_?XdG+&|v(QQkjy9{GP>OW|n% literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1basic__permutation-members.html b/classstdex_1_1parser_1_1basic__permutation-members.html index 23341e754..1fe1adc43 100644 --- a/classstdex_1_1parser_1_1basic__permutation-members.html +++ b/classstdex_1_1parser_1_1basic__permutation-members.html @@ -80,25 +80,25 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
basic_permutation(const std::shared_ptr< basic_parser< 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_parser< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_permutation< T >)stdex::parser::basic_permutation< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inlinevirtual
m_collection (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >protected
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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(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_parser< T >)stdex::parser::basic_parser< 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
parser_collection(const std::locale &locale) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inlineprotected
parser_collection(const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inline
parser_collection(std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__permutation.html b/classstdex_1_1parser_1_1basic__permutation.html index c2e0030d9..cefdd4301 100644 --- a/classstdex_1_1parser_1_1basic__permutation.html +++ b/classstdex_1_1parser_1_1basic__permutation.html @@ -92,73 +92,73 @@ Inheritance diagram for stdex::parser::basic_permutation< T >:
-stdex::parser::tester_collection< T > -stdex::parser::basic_tester< T > +stdex::parser::parser_collection< T > +stdex::parser::basic_parser< 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())
 
basic_permutation (const std::shared_ptr< basic_parser< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale())
 
basic_permutation (std::vector< std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::parser_collection< T >
parser_collection (const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale())
 
parser_collection (std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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)
 
- Protected Member Functions inherited from stdex::parser::parser_collection< T >
parser_collection (const std::locale &locale)
 
- - + - - - - - - - - + + + + + + + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< 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
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::parser_collection< T >
+std::vector< std::shared_ptr< basic_parser< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -212,7 +212,7 @@ template<class T >
@@ -222,7 +222,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__permutation.png b/classstdex_1_1parser_1_1basic__permutation.png index 47548b4fa10285d6fb75154a16987e8f321eb01b..a752d60b8d5b54c2e64461df7a2dac2c991f92a8 100644 GIT binary patch literal 1183 zcmeAS@N?(olHy`uVBq!ia0vp^_kp;BgBeH$tT`75q@)9ULR|m<{|{uoc=NTi|Il&^ z1I+@7>1SRXIB)&;Gknx8I#-#bIQhvIF1txzRzFbo+`sFI_bbOq z|Ch~cK0i0le$t)`^FK~}vb^f>`;PaLGfb_z=jCnte(mL@eOJF9-~9N_CDT~hYrk^q z=YLk+G;OZV#8oo+zoTZ`-Cktn*XHXI|8q6}S#z7^$@`KG=UR4o7B^&vUO%_&)b@Fw zw%W5Uy7#*!{Q2gmx7Qc7um5r-FxUI~mXEd1c7IA&@LB6_aZdl6&&>t5=h{Zj`Eg}h z&yTntzc2j*+L9bLH~!4q4T_R+Yt7%^KXE_&UA(2_-9M4b*4}*k;_}aR>jGx)J2T(8 zUS;;DgWnrf)_;B5f9rgW%Kv%!zVg2{6;Hm``qr=VSL=tzrS(lfM%KgAmd`6$8TPMa zXYg5b@~2$?PDb_T(I1wv&6%tJNu8l0>;q#%JgYpzk5CdAHG!7TZ8lEuEQ(^4_xu(5 zVd9ebxj!aVO?Z-@J@c1I_4>7M@71YfK56e)(Kp$U@pB$y#NrJvGWYG>-aP%=+I{xd zw$6!qH|yH6uN(buZL|HK6TA*^ zkTsW@Y@FcYvMlsNX9qBTfW*{?x3%SszsvmTzHF6Nxw~jXy0@U<()cIBf;+X3sw)*O zT<7|<`p|m8h%Y&}@7-?n{vCE-KHJA%H}>+?#I^i?bM3kdBhUW}mz^?EDd@CmywJ*} zev@3XEbo0=ISZDm&%P*qTDC-G<X+Kim3n_3}GsZdqikfu?T09k=u*UYU~S zu>PiwpS8W!m!BbuxB3rNUR=7oFDrW2vZ|eJ>m~29YMLMY1d4|0fZ2bH`tBIqyY=YE z@@+q|{+E3H`g70zde0@(q?D${pQ+vGEdfgF@%5tNHRiz7o(W9tbFSBve|gChaeblh z{nPWi9!c!@Y4CINWWD$rc^8*;U)T2E^8YC;xbYYFKGTJ7ek&?{n%wnQSn%WO2XLZQ ff9aHGSL^qvJifg{Z0<~8QNrNq>gTe~DWM4fkF8{D$o=LN|oti2VLomKODf*ITK2s0>Zo1ARu_7Y!S_p{G=uS{+(*eZPJ^q)uPr||E(fAiR)hsM!0+v@8+9ljj?ef@-} zzNI(+JbKr`-?>{^{_cLZCzpTMZ=b&<@82Eu>q{!W-2Aih^_FFO|E%=9?33s8>*#xC zpobo>SMvO~<{$Sy)y|l?Mw4p%ch*Dw4-N?9`zF4ZcQ7^FzrxGFcI`pU_S-ianm?bd zaAxj1H~ptDgOc`728DH#_!%B)VP(`~m)o}@bJnuP)=ri7&`%RnVpQclkA?PwgIoRm z1IhNyzRB0JSMR&YQ^Z~oZGw|o1-bxyvUuli<=zwny30b6RS`}!5O9b(f40B7XOaAFX!zud)m5}j{;sV{}(oY_s4zn-ulbF zQFe7XZ5l6lanWQELEYo^x6MMYK9BZsPmXZC(i<1{&fQB;_bb!)AHVjli_^BVeVTXe zlw<1J(CBR6-hAnT&9O>LwXQbAZH}H(T32%8bEeZ4+19d);K~@wf#GOKbl^UU$u4Kp8CI` zF(3C9{Qoxj+S&QLi_ez3&p+F+i!b|E%s&&6;|H#`pPoOrThis 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 >
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
basic_phone_number(const std::shared_ptr< basic_parser< T > > &digit, const std::shared_ptr< basic_parser< T > > &plus_sign, const std::shared_ptr< basic_set< T > > &lparenthesis, const std::shared_ptr< basic_set< T > > &rparenthesis, const std::shared_ptr< basic_parser< T > > &separator, const std::shared_ptr< basic_parser< T > > &space, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_phone_number< T >)stdex::parser::basic_phone_number< T >inline
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
valuestdex::parser::basic_phone_number< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__phone__number.html b/classstdex_1_1parser_1_1basic__phone__number.html index 6d2223fb4..707a34caa 100644 --- a/classstdex_1_1parser_1_1basic__phone__number.html +++ b/classstdex_1_1parser_1_1basic__phone__number.html @@ -93,36 +93,36 @@ Inheritance diagram for stdex::parser::basic_phone_number< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_phone_number (const std::shared_ptr< basic_parser< T > > &digit, const std::shared_ptr< basic_parser< T > > &plus_sign, const std::shared_ptr< basic_set< T > > &lparenthesis, const std::shared_ptr< basic_set< T > > &rparenthesis, const std::shared_ptr< basic_parser< T > > &separator, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -130,36 +130,36 @@ Public Attributes std::basic_string< T >  - - + - - + +

Public Attributes

value
 Normalized phone number.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - + + + + - - - - - - - + + + + + + +

Protected Attributes

-std::shared_ptr< basic_tester< T > > m_digit
 
-std::shared_ptr< basic_tester< T > > m_plus_sign
 
+std::shared_ptr< basic_parser< T > > m_digit
 
+std::shared_ptr< basic_parser< 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
 
+std::shared_ptr< basic_parser< T > > m_separator
 
+std::shared_ptr< basic_parser< T > > m_space
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -190,7 +190,7 @@ template<class T >
-

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

+

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

@@ -242,7 +242,7 @@ template<class T > @@ -252,7 +252,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__phone__number.png b/classstdex_1_1parser_1_1basic__phone__number.png index 27855ba8646dda841a536957b959c830f5011819..0c8bb188fa3291ff5dcfac95b105e59cab026a05 100644 GIT binary patch delta 734 zcmcb`c7$z00^|9KiDLEKoHM*9<;{L87+{#iaQuhygFi=2e1qc;xlFRnRG6IdTIz(# z&0X<v|a@+8=!K;BUX}@}BoDeV^$0DR%FZ??RQH_h%iB?0){%GA>>2{;z-eGf%j8 zEn9u~LjBGA$|w4G&K|b9wB_;1cKNeQmD7}rdnVO9)&CRuM4J5%+b6;J#GCbZRjht4 z%&y+K@?-AwJ>SxAocS#JWo@&p@^7y|hkNOVqCa|EH2E}FdHzrD9h2@^e(C)*Rqj|x z_NBk)b&OIr7n(ldu0Q{Fld`il)5fRTJ2Nw)vxs4yRVAa_}#YDf9`Sg{r|ecKRqs%luG z-1J;1tM^o7D{_d>xj8RVPVM$K5hkvBF-y6g3H?8~>dGdcuqw&bH?KF{_f{^2TkUkX z&gCAq>f*|?p9`7J9yD9|gVDh+_qV3j%T)%5p&^!68R@MY9w`En}uUVp~Mr1$Hb8*QHD zoaFf!artwX?Dw*j|#eD_tt+>-V5my**ia`dro?F zOIP(}vea%JPhens2LS_n(v@9lDbMG;_WI8tk$K|9%Qdrt7=Xaj)z4*}Q$iB}N0oIr delta 756 zcmX@Yc8hI70^`$(iDLE7m~Kqa$=$x&-QlPPqs-&;4Zp=tZ_-KT#N)Tx=&jBOMimrr4_P2TPH+KkoUY}wDZ-&`ug+X(Z|34 z`&i*KMLG2H*~C}#qtkhO{_m`ruq2qdNFmrdfjKj(#`@6tXMZ|oYVdqkm8{Q*`Z7gM zZ0FmC?TWuOJ{|R+{N~B>b#JFGJGT9NQKG8E+L*(4=&IiDql=gOzX#gZeeu?(r|)K;pR_wa z|L)VKx6I`~Z5Cbasy#OORKc9hqSmc>zS;Gn)>AV#?>PA>{r?h=PjUJGqbEPffBE0( zURKEMk18jxo0QK~slM)_cJiL-M9)p-Yfk_J$C;DipIbbG!L(z}|9(mJRoXn6T4C~x zabo&WwuXPE6B!qj`=&6wh!vJ(sJiaL)&SIrTc{qcEIx=su}77~Q_52~auQJEv?ceR zPUt^(J9CBQj-p?`lD@~weT|&dQzsZXDeITWr>Txkbx)GLPpvwBMY>I{ zt&i4XT-xq>j@|f)MEue7nUf-+p?|kI$#MIi)}`k&HknVqzUR1b2H!T%r-c{1`ij+R zr}l^V8sG0dvFuY#^PFkrS5JNIyORENwa47<&C^1X3q==yyu0tT`LwM8^Y1-XSUT-g zvu6CeS3h)O4vBhA@ ZKgMeP6Yuul=)cGS1fH&bF6*2UngG&7iUa@v diff --git a/classstdex_1_1parser_1_1basic__punct__cu-members.html b/classstdex_1_1parser_1_1basic__punct__cu-members.html index 032ae00f4..91ca1e8c3 100644 --- a/classstdex_1_1parser_1_1basic__punct__cu-members.html +++ b/classstdex_1_1parser_1_1basic__punct__cu-members.html @@ -80,20 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
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
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__punct__cu.html b/classstdex_1_1parser_1_1basic__punct__cu.html index 128ab05b9..18f8c09e7 100644 --- a/classstdex_1_1parser_1_1basic__punct__cu.html +++ b/classstdex_1_1parser_1_1basic__punct__cu.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::basic_punct_cu< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -103,41 +103,41 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -191,7 +191,7 @@ template<class T >
@@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__punct__cu.png b/classstdex_1_1parser_1_1basic__punct__cu.png index 2a47ea012dfae4649764f243583e65ae4ec2e96f..7bc897b381d9e1d72aeb6e7aac20e841fc79e878 100644 GIT binary patch delta 709 zcmZ3_Hj`~aLj4j?7srqa#qe&mKFD3{!%`P7)0VaIh0;EgW=qcA7CKAne%Z<5dbP6P^9xsr>$`r^-`FJL_GrzP|k(uFFP`yXLd%4eF#j`GZ4NE&rjN}-$tZ!st0EP^s!)qxI zh6}scgc!E0BP3K0Qg&xb@wu<67M`y>nLQ^(U3ZwYFP5Mi8FGNOinFVNu0e>bM41aN2B7)25UcWso!<>)MC?R$F|>n zoOJNftLNIw?0jl>D?WQP)Auub+%ZW=a7VrQ>$^lpIz@MXsb|%SxiwPmb#<*rFXsL{ zsA;J=Ethq++@|T1-yiyCY+3F7?c=+>OAENd?+5L00*3arKFdsCXzL%#^X)g97k^=v zh@^gts^+xGDteyBtA5*^cMFQLd;7lK<6-{)8}S<^Et&ph{`^TQe;IjIJhNiK;nDMC cPI2r@`3n1WTTa*AxyAqlp00i_>zopr0OiP8oB#j- delta 731 zcmV<10wn#J2CoK?V1K$vL_t(|0qvdJ(%T>mgqQV9X5asb>%?G?z^)Uwe<&rxjyVXS zkArfHWm%T7goPwW(nKQ3-Zha(vUeRK1@j@v&(v~I_4$tDRm1ip$s>IQi6o7#BVF*= zLV9k(YbRDc=Wq4W+uFai;!UWQky%xhO#(a+% zs0_;`8EDGxDSs?d`vSI+{3@mMWK!JB+_bIQ)cE$hSQ+edP3)%LfI7N(lfVO-<+}k~henT->fzLABF^zbt-h{rOcE6_Po~qf_#W@1E|SQXq5Lqp|71-FLqW z?!Mo8OI7S2ynm&1g_;>Jt(Vi-K4vps4$YdjGG0z|W^uEN_mVhCp6m9%6-oXreHZDK z1KQVzBtO$UC6er26Nw~y*F+-8-nAkv%d!k50Qea_0AMVQhxB+1$21<&N;DeNfJigr z0YLwnNC42gCK3Sju89Nyy=x)?K<}DJ0MNT85&-nBiGKtDy=x)?K<}DJ0MNT85&-nB zi39+>Ya#)_hYBHtv4kK=BWWT@Qtz5blGM8#Qf%DDY&m$#=>_AM-z3TC2azP{vaUI3 zT4kgs?+bd>vu~@H6W9K&9Y4>3x~FOSa+ur3D9TJJ?Y4T7q+HICf|N^y36d#$ErwT& z`5rS+8Gja=n2r3DB5X6Yq&2=8NM>#srgdIc_gOw#V`_ZcJ+2n4uD)Nf^kM4z4KWwb zY+5|7jM0Gz} zY$TQCPy72KQu^CJ_m`|B=`H=|rzA=LfF_b8^{$B|Nxf@D3L%7{^b4$ouDYN|Lrwqy N002ovPDHLkV1kx?YeWD5 diff --git a/classstdex_1_1parser_1_1basic__roman__numeral-members.html b/classstdex_1_1parser_1_1basic__roman__numeral-members.html index 96eada843..231ac4a6b 100644 --- a/classstdex_1_1parser_1_1basic__roman__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__roman__numeral-members.html @@ -81,9 +81,9 @@ $(function() {

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

- - - + + + @@ -94,16 +94,16 @@ $(function() { - + - - + + - +
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 >
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
basic_roman_numeral(const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_10, const std::shared_ptr< basic_parser< T > > &digit_50, const std::shared_ptr< basic_parser< T > > &digit_100, const std::shared_ptr< basic_parser< T > > &digit_500, const std::shared_ptr< basic_parser< T > > &digit_1000, const std::shared_ptr< basic_parser< T > > &digit_5000, const std::shared_ptr< basic_parser< T > > &digit_10000, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_roman_numeral< T >)stdex::parser::basic_roman_numeral< T >inline
intervalstdex::parser::basic_parser< 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_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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
valuestdex::parser::basic_integer< T >
~basic_tester() (defined in stdex::parser::basic_tester< T >)stdex::parser::basic_tester< T >inlinevirtual
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__roman__numeral.html b/classstdex_1_1parser_1_1basic__roman__numeral.html index 3b9b80185..266d6f756 100644 --- a/classstdex_1_1parser_1_1basic__roman__numeral.html +++ b/classstdex_1_1parser_1_1basic__roman__numeral.html @@ -93,15 +93,15 @@ Inheritance diagram for stdex::parser::basic_roman_numeral< T >: stdex::parser::basic_integer< T > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > - - + + @@ -110,57 +110,57 @@ Public Member Functions - - - - + + + - - + - - + - - - + + - +

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())
 
basic_roman_numeral (const std::shared_ptr< basic_parser< T > > &digit_1, const std::shared_ptr< basic_parser< T > > &digit_5, const std::shared_ptr< basic_parser< T > > &digit_10, const std::shared_ptr< basic_parser< T > > &digit_50, const std::shared_ptr< basic_parser< T > > &digit_100, const std::shared_ptr< basic_parser< T > > &digit_500, const std::shared_ptr< basic_parser< T > > &digit_1000, const std::shared_ptr< basic_parser< T > > &digit_5000, const std::shared_ptr< basic_parser< 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 >
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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
 
+std::shared_ptr< basic_parser< T > > m_digit_1
 
+std::shared_ptr< basic_parser< T > > m_digit_5
 
+std::shared_ptr< basic_parser< T > > m_digit_10
 
+std::shared_ptr< basic_parser< T > > m_digit_50
 
+std::shared_ptr< basic_parser< T > > m_digit_100
 
+std::shared_ptr< basic_parser< T > > m_digit_500
 
+std::shared_ptr< basic_parser< T > > m_digit_1000
 
+std::shared_ptr< basic_parser< T > > m_digit_5000
 
+std::shared_ptr< basic_parser< T > > m_digit_10000
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
@@ -169,11 +169,11 @@ Additional Inherited Members size_t  - - + - - + +

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -227,7 +227,7 @@ template<class T >
@@ -237,7 +237,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__roman__numeral.png b/classstdex_1_1parser_1_1basic__roman__numeral.png index 495f6128acad7fbf48667747eb97a71732400ae6..4973ec7683fd9b0b36b4e29ec850e8352490eec5 100644 GIT binary patch delta 1145 zcmcc5d5UvFLVc*Gi(^Oy+jng@DZ6nd@boi2 z*DpGEbM6GsOEa5hsnlw$@VwNXwsLaS#3%bRpFF5t{@Zy{@h|QxDnHl7eYSSo%U0O^ zWYN{1|L*#2-SYnHrzq=R(-yvbw&7a*x9_^IT&@LG2(LW#Gn8YNUH$DvR#u1A&Xxar z~(-*dU zyc=x)IsJmq+qP=0**AkT%}>m0I=5(X*zI!H+Q;u#SI<2Wb#Cj6oV2{TyjPx1oxA6H z_`iJ>>-#sGo_TmYDXY!)cgeZ6udmfF+iv;ilKjbKHGj^#PCEbf<@^uZ>t5AQuJR6h z>N4@kb&+b{Np>PvR9-qe0vTHZp3m8A&UiroB_qSTCzF1C{Lt}sQdMJF$J@zPMHUPd zfdR}7{H&%7KLUtl)B{!jS%ML?YOtVPkiD9B^XH|16;EpZWz3qi=K}XL{mOmIVKYk)UEGTm1|{dPhTi0j(DwpATNBGt&jBKS0Amfbgo(YK`m(N=hZrEUT)T1 zwb*z~@GU*t>dw0#jjlhkV=%t*d{6zfC5D;n9M-;y%3oD;+oAkQ);B)?+WUp)=YA-= zH_43cio3t;)onb!()Yu!>|Qx{ue0&i=XZ>6uHoJl`6@$ximUtDzQcdxUN|O69yJSicFy&_rCjJR}BnxD`2P}%1W~PUBb7X=hhdi_V5dZeCjJt z)wlnTQTZ8@|Np3Gk<*I%lw^hF~y%o5vUizef;lrW@Yz*>TSqvW*5@yuH75(sB zI%SfzVrPd%a6oqlFb09dgoS!jw<{YKeNcXQb@G%RU8O}|ny)A+#fO`JEKr?V#d}h0 zx@-3Be|Py}P$J>#tBhOruO}RCEDBG_-6}7bdAj(ON|5)*SuP=#`?(x1r$>jlr{7@P zH6tgXe$~AQsq$mj)_m{Sv@}mz`jyqWiX0h}Yg<=k?_K#R_uD}>xAjiaajYBX8SGB6 zeR^}D{|>GUOC#G;7lYlm>N*E+6+XZ6yJGQ`D%IZ>llSCQz1}p_c4}Gk8_gFw>!z)& zxgSujod0dt_s^%|)F(!rlPocNeg5i?CBFAxUtbw&{y5{wIf)k(r+B$zj#|ihZ(pRE|j6B_4 wmR#SnwBy8{r1h>YH5w~mM8-ltP1XEg{PItJ%g$)lS;qhbp00i_>zopr0L_q1JOBUy delta 1167 zcmX@bd7pDaLVcE}i(^Oyt()xGyZes1f0$8#=UbY9i`hx6 zyd4DrCvt`1fio6HJubNqzE9_DwpN_H#291;*fQTB z^{)yi=Vv}yAibJ-^T$j7luv5@Wz3qi=YsGv|H?X_y~_$tKVEe8>%V(!QOCa5Rjv{K zd*VV#al~)+19{*Eh49K-Kf}bXow+GkZ+cPk+JrJMcm18#a?he{ z{0{JZmApR5MD48TirBlaeW&Kne$f}@`u@X}-^%ZH3g0`Xo0{xUd*;geTN4*%KK|WR zWxn;IwaMk(=WT<}?piW?Y2P=;$dW6sENt#&|9$xKV>39&zrM&y%i9PH^5Wp{RTFYb z*IV!Te(&|;HGJ7W>NjqPnsMGT_ON!d+1_;zMN481d#?KStX^-@p7qoJAN4G9df)wd z`ikvArG<81Wfe|_f4TqWYp9jSr_8<0vsC`;!vjb6iskb+z6>9{cQH0t?_9F)u1(VJ zC2xB)X`zgy0xQ&A52KTx>RW?tjr$oxt=db zYg*-) zv7d^axb-fHT_r0yYt`Hx{(I|<+}DP0 zs!#8luA3igx_SAfya~3fbB|s%n);so%H8Sw-*$cfd?rr4e&Vfj9J^+HeV$cwY1#X) zpRcT%p(1El^(jt1y)@!*zrt37>sqU_GGqJA_O5#9dp6In!t?u!LmrcE-P&=sTq)>w zbG@G6#NWTR+9wK5-2TdZ#df8XuD%YB^_AX&6DyC#b$9#-2!Ij5j1uH^?+gFQPrsFG TTDSKz00D=mtDnm{r-UW|L#R)s diff --git a/classstdex_1_1parser_1_1basic__scientific__numeral-members.html b/classstdex_1_1parser_1_1basic__scientific__numeral-members.html index e6b1410ba..61e46de07 100644 --- a/classstdex_1_1parser_1_1basic__scientific__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__scientific__numeral-members.html @@ -80,30 +80,30 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
basic_scientific_numeral(const std::shared_ptr< basic_parser< T > > &_positive_sign, const std::shared_ptr< basic_parser< T > > &_negative_sign, const std::shared_ptr< basic_parser< T > > &_special_sign, const std::shared_ptr< basic_integer< T > > &_integer, const std::shared_ptr< basic_parser< T > > &_decimal_separator, const std::shared_ptr< basic_integer< T > > &_decimal, const std::shared_ptr< basic_parser< T > > &_exponent_symbol, const std::shared_ptr< basic_parser< T > > &_positive_exp_sign, const std::shared_ptr< basic_parser< 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
decimalstdex::parser::basic_scientific_numeral< T >
decimal_separatorstdex::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 >
exponent_symbolstdex::parser::basic_scientific_numeral< T >
integerstdex::parser::basic_scientific_numeral< T >
intervalstdex::parser::basic_tester< T >
intervalstdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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 >
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__scientific__numeral.html b/classstdex_1_1parser_1_1basic__scientific__numeral.html index 2be4d5d8e..cd6b0a0d1 100644 --- a/classstdex_1_1parser_1_1basic__scientific__numeral.html +++ b/classstdex_1_1parser_1_1basic__scientific__numeral.html @@ -92,75 +92,75 @@ Inheritance diagram for stdex::parser::basic_scientific_numeral< T >: -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_scientific_numeral (const std::shared_ptr< basic_parser< T > > &_positive_sign, const std::shared_ptr< basic_parser< T > > &_negative_sign, const std::shared_ptr< basic_parser< T > > &_special_sign, const std::shared_ptr< basic_integer< T > > &_integer, const std::shared_ptr< basic_parser< T > > &_decimal_separator, const std::shared_ptr< basic_integer< T > > &_decimal, const std::shared_ptr< basic_parser< T > > &_exponent_symbol, const std::shared_ptr< basic_parser< T > > &_positive_exp_sign, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
- - - - - - - - - + + + + + + + + + - - - + + + - - - - - - - - - + + + + + + + + + @@ -169,18 +169,18 @@ std::shared_ptr< value - - + - - + +

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_parser< T > > positive_sign
 Positive sign.
 
+std::shared_ptr< basic_parser< T > > negative_sign
 Negative sign.
 
+std::shared_ptr< basic_parser< 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_parser< 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_parser< T > > exponent_symbol
 Exponent symbol (e.g. 'e')
 
+std::shared_ptr< basic_parser< T > > positive_exp_sign
 Positive exponent sign (e.g. '+')
 
+std::shared_ptr< basic_parser< T > > negative_exp_sign
 Negative exponent sign (e.g. '-')
 
std::shared_ptr< basic_integer< T > > exponent
 Exponent part.
 Calculated value of the numeral.
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -211,7 +211,7 @@ template<class T >
-

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

+

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

@@ -263,7 +263,7 @@ template<class T > @@ -273,7 +273,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__scientific__numeral.png b/classstdex_1_1parser_1_1basic__scientific__numeral.png index dfbf4c31873b72ec643ea9fdc5260bd458dde70a..40fbf11a19ed27b83a05b743aac47861cea2f842 100644 GIT binary patch delta 763 zcmVLH1TXkbj%YBVnR3bl4yHv%d&o zV17Vx7Req#v>U_5lj{K#Q zrrwhnMhat2;r#h>jx-hxgz$0iL3rTrlbKLdP4=zD!kBJs=63hGKUov*`TJZ=*b=e( zI&6Eh+P%-kYJYCWh^7x;hr9k%)yZ!^k*cc4`tHa7-TqWnyZVg~mbzE-O;z>Rm6`Bn z2&$_8q!I!l5CS122-7r87grIHzpOtZB3D;JxH0%41wvREkOCpFFcJbGh=>zHAOu1n z1VRuIFN8n{gg^*{AR=A}fe;9R5C}m;ybuB*5CS0(f`5p3Ap}DB8VIG7a&?sg0M}MR zAOu1ngaZh*a~e#~!Lie3_BJq&m2ze`acO-E03hfGAppRDt}aeG>Y)XIs0Lvsv|y_2 z*S24H8(;hNZ~0iwNY`|6XnhxQ8?)JU?cAPQdqTK{)qB--AMM6A696X15DH+jMFxtO zy|pE(&41;QFwq#Mkf~JwFP(+ie*JD~8#|i{J3;V+4nm0MJvs-@+PbmVng-u@626Jt zK!^(u5L-It6GTV*M7$1xZ%wH7WZR6b@*`c-?pZ9UL&(=5#Eq@KQXR~dvMG$cuzmwM zM;eO;LP(YtLO;-{Oh}12mDcSA*Sm19noKa0_=LE~qfaCN9P1k%e*pMC{TmRL0+tFE06f%}7XrY6 tG7|XO2H*yeV1MgLL_t(|0qvdZj^iK`Sm+eJOD!7OVafg?gvo0$2_eVj!)Yq+zSuC1devY%bMF+6z2UT>KZ9ZVI{3J1 zB^p3zE4Ite3{}HnJ%p@ameNVn==&HZ3u8{<{P}W@bQ&FmkSxzKAv-@Ty+0F*s!mCQFZh>*pm>P2k!5FB2`t-<>fe3 zRew!B6v9^hCX-rK^)+E8{5%9z)qhV2fe;9R5E6uCS(clNh{!L?mx##Sg%BPLzDR)( zb_S$C2rP_*KnNn@8X*t@ArJx~h=^~5KnR3D2!tRazJCz{ArJx~5Q2#KMhJvJ2!ucg zBH|k%5W>emD5aFUixdF3w-5p$5CS2bK&XSuU`7VcjdrV#iFK}&E78QQ^(_E^Aa8^K z028vCxM*mE7676cgq6^Ssj}bue&b_)AJ@O_V|6n_)y<%doy#_7tNY%yzxIxVa2u=j zDtjD#V1G>ofVFc71+dmU1I4$a*Ams%@=RFh6qC!;D}Zl0jF)lIO0AU4P1il$ev5PylO(hgcZd3hrMoCq^v5&{7HmqG}HKnR48Ae2(d&E*ev0@v&klQ44t0000< LMFvhpu0mjfN?LBR diff --git a/classstdex_1_1parser_1_1basic__score-members.html b/classstdex_1_1parser_1_1basic__score-members.html index 5db6f2c56..3e367d0b9 100644 --- a/classstdex_1_1parser_1_1basic__score-members.html +++ b/classstdex_1_1parser_1_1basic__score-members.html @@ -80,23 +80,23 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
basic_score(const std::shared_ptr< basic_parser< T > > &_home, const std::shared_ptr< basic_parser< T > > &_separator, const std::shared_ptr< basic_parser< T > > &_guest, const std::shared_ptr< basic_parser< T > > &space, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_score< T >)stdex::parser::basic_score< 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 >
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__score.html b/classstdex_1_1parser_1_1basic__score.html index 99354b7d0..46b2c9f0f 100644 --- a/classstdex_1_1parser_1_1basic__score.html +++ b/classstdex_1_1parser_1_1basic__score.html @@ -93,63 +93,63 @@ Inheritance diagram for stdex::parser::basic_score< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_score (const std::shared_ptr< basic_parser< T > > &_home, const std::shared_ptr< basic_parser< T > > &_separator, const std::shared_ptr< basic_parser< T > > &_guest, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
+std::shared_ptr< basic_parser< T > > home
 
+std::shared_ptr< basic_parser< T > > separator
 
+std::shared_ptr< basic_parser< T > > guest
 
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - + + + + +

Protected Attributes

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

Detailed Description

template<class T>
@@ -180,7 +180,7 @@ template<class T >
-

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

+

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

@@ -232,7 +232,7 @@ template<class T > @@ -242,7 +242,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__score.png b/classstdex_1_1parser_1_1basic__score.png index 389448e6e0c7070afa123298c0905a6fa2a344f9..01be22f6d0bd87def80231a7b49e094f91dd9b15 100644 GIT binary patch delta 710 zcmV;%0y+JR2KNOaiBL{Q4GJ0x0000DNk~Le0002P0000`2m=5B0FzTOb&(-Ie}YLw zK~#7F?VanAs~`}Bo3<*|@BhR{r-J^d-7Mdr5b9yONK{&;R=V^T(x&P?tfgoxI;xm!Qhs5kKw@Y z#6Bc4m(AJV>2O*j_U=)C@;>bOJ$)b6U99G%)jDU5t{fh0dsoq;6Vt22;fdyNdkFbvlg0Q_Iw0N~>K0*2e|`Ve2h zFd|$Y;u{!xUIKtmP-g&u_Ua4(&|aMZ0NSfF06=?n1^{TU&Hw=I)foVwy*dK`v{z>U zfcEMP0MK5Y0RY;oGXTJ$e^N^6;zE+7ORFJwa)MM>#=>VFOR9CY^jFc4RhTLX=1EvIpZf7l9bCb`y{!ty)E-G zeX+%L6oFyLipLUWSo~`5F*q~pX+q3lGb8!VBGh@um902d#`fRZe~x&TEW>h#Dhz8+ z{>rvgLydQwN{!+ESvXIjmKWdM>0)ogz;TC)h=RdwRml(rD)#g2J|roZZFqmD!|9LM z;mE#tAN(mjbsyGKQO!&1XgPyyeLkn;iTThod8r6{KDSEJV}0g-dK-oZf4Y)%Qh#qB sBH_I)fy&9M{N@QcBm>KSM#HnyU?+MF0Q*07*qoM6N<$g0_EF@c;k- delta 731 zcmV<10wn$S1&jtEiBL{Q4GJ0x0000DNk~Le0002K0000`2m=5B0FdNAU6CO_f0s!_ zK~#7F?VaI{;~)%#hly0p`#@%I6fG5_2JF}$V8~x=+qTUsY$Q3W7CuRi z(!wXnQ409U{gLGN)CG2~;uOGxGNvG%WFO3!dnB0AayAI#Svwd?PfAsU; zVQ5FXuJ?eoe=ezWaQ!FeR`3&9e_IAmq-*6VqZnHpafZgxrevaPB~tzK__l~FevD`X zoi3)jYS;H#R~OqYs7dCtMo#x?HTdGO5%XE;;GdTImL2K3I!ucn9crX-QbR9y?a_@J z9+xccOXJbtyA8Tp{g}K&dS&$!SzF2Mk8Y^XIO9;CZ`FQN=6|XEvkba7f6p1aUMI!o zZ=Q47`w_?vqPJ zp1L?C>1%!9_jv^VG1Vtjl3vs=T760SFfDvZ8l{CVNu#vmr46gtH N002ovPDHLkV1jwzW8eS) diff --git a/classstdex_1_1parser_1_1basic__sequence-members.html b/classstdex_1_1parser_1_1basic__sequence-members.html index 77305f32a..e3a18dd09 100644 --- a/classstdex_1_1parser_1_1basic__sequence-members.html +++ b/classstdex_1_1parser_1_1basic__sequence-members.html @@ -80,24 +80,24 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
basic_sequence(const std::shared_ptr< basic_parser< 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_parser< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_sequence< T >)stdex::parser::basic_sequence< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inlinevirtual
m_collection (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >protected
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< T >inline
parser_collection(const std::locale &locale) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inlineprotected
parser_collection(const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inline
parser_collection(std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__sequence.html b/classstdex_1_1parser_1_1basic__sequence.html index eba1fe885..2e1aca34f 100644 --- a/classstdex_1_1parser_1_1basic__sequence.html +++ b/classstdex_1_1parser_1_1basic__sequence.html @@ -91,67 +91,67 @@ Inheritance diagram for stdex::parser::basic_sequence< T >:
-stdex::parser::tester_collection< T > -stdex::parser::basic_tester< T > +stdex::parser::parser_collection< T > +stdex::parser::basic_parser< 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())
 
basic_sequence (const std::shared_ptr< basic_parser< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale())
 
basic_sequence (std::vector< std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::parser_collection< T >
parser_collection (const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale())
 
parser_collection (std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< 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
 
 Region of the last match.
 
- Protected Member Functions inherited from stdex::parser::parser_collection< T >
parser_collection (const std::locale &locale)
 
- Protected Attributes inherited from stdex::parser::parser_collection< T >
+std::vector< std::shared_ptr< basic_parser< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -205,7 +205,7 @@ template<class T >
@@ -215,7 +215,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__sequence.png b/classstdex_1_1parser_1_1basic__sequence.png index 4cbbb2b70b1766ea378cf7646480ced8f278806e..f1ee0179de725de3e8eb8e220d9adbab831e8a93 100644 GIT binary patch literal 1154 zcmeAS@N?(olHy`uVBq!ia0vp^w}H5WgBeIhy60&FDd_;85ZC|z{{xvX-h3_XKeXJ! zK(jz%`k5C84jcfA2T!`Z0w~8>666=m0OW&#In(Sb3=Ay1o-U3d6^w7^zC8C?i>IaC zaaGO#@S05%8X|9PIs5&a#LlEy2|W)J3;!t{lTa5`^7PY8SN5zfGMltzxq6PHt;Z+h zuS_-aCI2Tr39wI6KAHd3C~tml?1bDf4*#evs35<6LLSBYC}}3(tneX2*u+*gkn(!R55~ z`-@}gn^L^5Z#!JJ}2wZIY-Z#&AtBV&6d}vZ7h4-H)+V% zF?)R4`R-rF-|qeg>u+ugndryvc~A4c`J^rCaPPM29+P-3!tiIV9D~71wX|xRXRWhm zH^?z?_DdA56U<#p59+uWtLY*|}>v#dpJ z=IP>X4$q2s9NIR`$;Z->Kyz24l?}z!H{BO!VEj~A2)bpMaUBcLjBQZ#^qr*otU086VI*3?4 zP50`4w|A^N>Scr7LmX<5?%}Xol|!40_(QvEuR!(b;{`XSNq;^5q&%%gc!g zeN%PzYK7?RS663F>{}uI%6R29ow?m*hupp2g+}dKS2eBb#9jBzQ@2gdHNJLRS!w5# z$yawSv1Gj3@=7+>M#^mKR^8~`+IQ!!61wyIx0p*&;OiAlVL5A;KL2&CcD31?zTags z6Y}QSq)q&M_2#nADf2dzfdc(O=(RsK{#_k=F4+IixNCW!|Hif@7j8C7-f(f*^-FPf pM~9>(kgx?4x;ct12Fw33#|k}YWB!(V2UuD#c)I$ztaD0e0st2%I_m%c 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 diff --git a/classstdex_1_1parser_1_1basic__set-members.html b/classstdex_1_1parser_1_1basic__set-members.html index 67165926b..436a1af2a 100644 --- a/classstdex_1_1parser_1_1basic__set-members.html +++ b/classstdex_1_1parser_1_1basic__set-members.html @@ -80,21 +80,21 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
hit_offset (defined in stdex::parser::basic_set< T >)stdex::parser::basic_set< T >
intervalstdex::parser::basic_tester< T >
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__set.html b/classstdex_1_1parser_1_1basic__set.html index 1d42ec797..026dd37ef 100644 --- a/classstdex_1_1parser_1_1basic__set.html +++ b/classstdex_1_1parser_1_1basic__set.html @@ -88,7 +88,7 @@ Inheritance diagram for stdex::parser::basic_set< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > stdex::parser::basic_cu_set< T >
@@ -102,44 +102,44 @@ Public Member Functions   virtual void invalidate ()   -- Public Member Functions inherited from stdex::parser::basic_tester< T > -basic_tester (const std::locale &locale=std::locale()) -  - +- Public Member Functions inherited from stdex::parser::basic_parser< T > +basic_parser (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) -  - +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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Protected Attributes

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

Member Function Documentation

@@ -167,7 +167,7 @@ template<class T >
-

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

+

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

@@ -219,7 +219,7 @@ template<class T > @@ -229,7 +229,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__set.png b/classstdex_1_1parser_1_1basic__set.png index ddc42eab11d8837190f3b5944010003bdffcc981..d86121dceb2e676c8568fa5f4f9489bed7ad40d1 100644 GIT binary patch delta 956 zcmeyuagSp{Lj6lm7srqa#x~u`*uw5{B((nZPJ%;g9%IaOSPrQsr;Pf#(0l^*B_5dFZd-rKE?7r4r`PA;Afdx z7W?bh(abu@_5C+5oac#s&-nVs%Zh$Ol}+19zjvDCzFzw~a9i22dI>A{uUF4Ky4s!^ zFnLyDbb-L~9V-rpwU=GlJ?qA|#q*9Eiy!!M`oKKZvm4^(Gdgd)vi-}M3!z8fN%lQ5 z4c{TD>s-71_Mh$Y>(2%}zi2qafA{eMq4%9OKudHt?Y(?9Gk0To|F7oniTd{re_xnV z7%|=JMU<)8?6u0J;@7@z(R+K$O?l-l&s^1$$$v{O{$E)k$Mf|6w^KaxDiu!phk*Rp z)Tr{;)bPoi&s$j;_OF&^h>3|mP_R2z{t>r?TFYtY8fND!sti9^ChIUuPCm^jRc{gM zr5PLJp`r>ge~jYfH!qwox$7SDwT)3l(Od3bTXAq!t)_VCjaL`?s=|eWn;xQdDXmykuTobs7$=I?djXOd4BcXcV!;# z-_NhQ@$jyYu+^<8n{Vz4F;9#2e;u^{VtCf-juRX0Uhls<{b8ehqToc~zxyi%1b@n~ zHg|OFZ&G)3ITA1I3=D&4h7Y@UF&;Sjm6d1v?XQaa8WNp$*c>r8aEWDV@DG?Q&8$`b zN0f)*!TJP-hTx}jKCgc@t@zx2t&~Z7wt&K1lt<;|`ZmRx?4J9U1vZE`-3q_-N!fF; zeTu?K^{cIt$JX)~KbTu|>CLV$U%OEPuJG@M)HwgVW&ak-8>6K)39I9~7G7LZS-3b$ z;>wb=dIQC;``*mjwR^AWy?I86DE>9;1AL`8dkim(r{`r`S?{pmr2Kl|_g7FIhc{5Ky< bs{6|SX8uWI`Hu_o7=Xaj)z4*}Q$iB}EuZ7f delta 973 zcmcb|@r7eTLj8YF7srqa#aE=Ri^GcS75YK zBJ7Oy>qVspzunW1KeqkfzXC-!Aa{@{weFz3qFL&#uGQcI`5srFH++<+6h%R}weB+WVR(eP#LX z_(hz~Gc#BJnz(Z1t?cs&ytCAcTYcA;ot?Yw=XUw?X&DS+z+-TqL zYf)VAF68{XrS2|IJoJFV$ECt-iVTw@R=$7HeeLGkz2CR>q+PAyvf=EGkp+%?PDOKWGde*rMb7t0-s@+Y@j=d}GJN3QiiFzr2)l82W z9VKsH=zQh*J$IJDl$qOB$N`UlbKBUu8y%Nsr5H5s zo7=8(DT;Uf`z@A##cs)xfk!BIl4Tl6#;pai%m^X5ExvVOG}6juIF>=L$}W<{uin^`N>jISddG$ zEs<0CIV+7Xu3**lCBXFN^?zcc%KR%2(q3&hT+>i~%60WiV0w!|NpIWvqmTVQXk}XW zrMS&y+qU<16IWf`UTc4Mj%=WCbK>m_IRUzBLfRHezmc4Bx-Q--?SE8#_}T5(cfN^J zW551x)BToHb51?_0t&aUGvVR(zUtHhn`z3G6(`%RZ9Nxr7{beF3vHcCWsD4s@ zD*NFt{|&#r@SmX~|6={qMwR=4@a%SILh-rl*X(&pPFijX{d$Z62s~Z=T-G@yGywqk C8S@kX diff --git a/classstdex_1_1parser_1_1basic__signed__numeral-members.html b/classstdex_1_1parser_1_1basic__signed__numeral-members.html index d444b7f66..b9191facf 100644 --- a/classstdex_1_1parser_1_1basic__signed__numeral-members.html +++ b/classstdex_1_1parser_1_1basic__signed__numeral-members.html @@ -80,23 +80,23 @@ $(function() {

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 >
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
basic_signed_numeral(const std::shared_ptr< basic_parser< T > > &_positive_sign, const std::shared_ptr< basic_parser< T > > &_negative_sign, const std::shared_ptr< basic_parser< T > > &_special_sign, const std::shared_ptr< basic_parser< T > > &_number, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_signed_numeral< T >)stdex::parser::basic_signed_numeral< T >inline
intervalstdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
special_signstdex::parser::basic_signed_numeral< T >
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__signed__numeral.html b/classstdex_1_1parser_1_1basic__signed__numeral.html index f4cf20d3e..7ef78fa74 100644 --- a/classstdex_1_1parser_1_1basic__signed__numeral.html +++ b/classstdex_1_1parser_1_1basic__signed__numeral.html @@ -92,67 +92,67 @@ Inheritance diagram for stdex::parser::basic_signed_numeral< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_signed_numeral (const std::shared_ptr< basic_parser< T > > &_positive_sign, const std::shared_ptr< basic_parser< T > > &_negative_sign, const std::shared_ptr< basic_parser< T > > &_special_sign, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
+std::shared_ptr< basic_parser< T > > positive_sign
 Positive sign.
 
+std::shared_ptr< basic_parser< T > > negative_sign
 Negative sign.
 
+std::shared_ptr< basic_parser< T > > special_sign
 Special sign (e.g. plus-minus '±')
 
+std::shared_ptr< basic_parser< T > > number
 Number.
 
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

template<class T>
@@ -183,7 +183,7 @@ template<class T >
-

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

+

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

@@ -235,7 +235,7 @@ template<class T > @@ -245,7 +245,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__signed__numeral.png b/classstdex_1_1parser_1_1basic__signed__numeral.png index 34aa69bc99b8b6150fc4ae6ab40d1c1734898016..d0257a6cdb00abb9e303f04df97ae17190b7efc8 100644 GIT binary patch delta 769 zcmV+c1OEK#2Gs_TV1M9AL_t(|0qvb(ld~WUgqL;ZX8->$eyyS*fUREZ-OU?1>{K8m zJP_koOw%+46ef}kr@>8^aeUjPtLLAk%aVuAF4qrnXT zaWuFAAdUt%0L0PY27ovk+yD?qgBt+iXmA5S91U&&h<~HO4FGX8xB=jYl~PIpg(OMg zG`J-xjs~|R#ZkqbJ8z#w&%uGyXR*Gs55Fc?Z%K0cL2gO9sQ0;#oEZ1xP?nRK^%z^9 z%Z2m!+RuNFiFTxGx;V6c5i$=izM4g5oaeH#d9#$<9p)rGF9Yjv8{msDp$V{x=i=UbAs zCZvme?!K#xyLjJ8vbIO?b*;^3YJ$FV`J+CbHo3*Q1gI)cONz!wD=%Xx2t!{NLNnXFfy%eMJ;=7;S16xV@fd0mP z-$5ox$GXBTN&kxmwU-DW3iT3ir(HJtSCS00000NkvXXu0mjfeE*#S delta 791 zcmV+y1L*wK2I>ZoV1M;VL_t(|0qvdZj_V){golZ=n)iR=ljde@NR_m^-PJJ_qXsZG zA2`lmOw%+a6ef~Pr@>8m+OcI{ z*TOp(k1D)_Z-2et4d73`-+RV(>-oMZE7HfDujjUZZ`!NpR>WO!chn#Fj*;YZz5P`u z$ z5;fIJ%90FXz68vycX za05Ud4Q>F)qrnXTA66-)BovAyrPJV+q&ynjl9We*d+WS?7Ci?iPM^hkWgmXcR=p+3 z>4V&obW`thpE)t^$Du4IGwU(7KGzH9@wLDGJto?buIb{?`c=qnc=6RNGUIJ-(`Mf6 zWjB#z?SDCUk*sZAi{#qzv~Skt;)t7Q3{OHfiz-_`w;V$o`8W=@)Sq+9ZR>)^%0Xpq zUEga>o$q)NO~|kT=kV+xEzjbneb8gV=eax5Ep1wuea2SRBVAK>7fqgbBVXh8ds)|o zG8PM6Q`cge#Y>8r&{&*p)A^QUtqJKOU%T&+aep`OyGYiK2)?ehxz*3MSKsf3t;g-k zN|6+F^Znj4wp-8lAXaa!p1P`P`|+k1>$x)u^*mS}H)~h32D|$mlceYRrjN2Dwfa%# zlH~Op+)FX4FTVTPJ+YOfZ_wYk@1G!(q;uWjmZbkhgIkjFXmCqX9?jgPl#);X0CfJ$ V@(`ezc5(m!002ovPDHLkV1i+Mo$&ww diff --git a/classstdex_1_1parser_1_1basic__space__cu-members.html b/classstdex_1_1parser_1_1basic__space__cu-members.html index b2faf2728..73d573262 100644 --- a/classstdex_1_1parser_1_1basic__space__cu-members.html +++ b/classstdex_1_1parser_1_1basic__space__cu-members.html @@ -80,20 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
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
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__space__cu.html b/classstdex_1_1parser_1_1basic__space__cu.html index 88e3c2af5..3201de6c7 100644 --- a/classstdex_1_1parser_1_1basic__space__cu.html +++ b/classstdex_1_1parser_1_1basic__space__cu.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::basic_space_cu< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -103,41 +103,41 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -191,7 +191,7 @@ template<class T >
@@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__space__cu.png b/classstdex_1_1parser_1_1basic__space__cu.png index b429a485e3319ccf3e8d5e6ea62466fb78f1f6ee..bd5999c590fa0db924ad98cc28c7a588e9225bd7 100644 GIT binary patch delta 710 zcmZ3-Hj8aSLj6)t7srqa#byly#3=bI#9Brbwx_MDmnjsUy3q1?`oE&5 zE2AdfSYoy9!iPCNJ{`~2y}!Eb-1hiSJMFjEUSGGvPw7I?(e|4Qyo`TpTVFCU-Iu*e zyZ-34?zn?j&xoa7nZh1(FDW%JaOY$D#Z`~qUyEfmnx3pXU$<+8KL4XHC-?kVcka*K zitv~3W?LHQPBXq@_`Epm-gNWY`dQ5We=$nTzw)p4)ptzCH*JO`8UC9(!KT1yk=%O-`g3Uo7}(cZ-H$6m*lO!SCoA(-%WfsTQxg4`l+=i zpUTc6U(qGNK%Ni-31n~>M{hF8mHOq_oD;PybH%JWZuVohbb@5-mzbCCJDr?2(`?Vp z)H|lr%H!P^EbThK!EtKZr|_~RnOQa01v7kw8@!qNR(bHb>d%{UQY=(MBw90nYZUsBmF;BWO&3wudantu+lYoIYX$dg!R8|6m eU9rVr);`Ajzc;#+%nVdv00K`}KbLh*2~7YzD^&#m delta 730 zcmbQmwvKH=Lj6up7srqa#b{~ zr+%Z(X`?wCCOk=)6{2#pT}{;U+d}q`leHe7Ot;E}6c;|S%G&jR;*+KOTwEvloe#Es zywP{7?9n>8)n?+~_m%EAcmMeD^yn4ovzF~XY;;ci0neQu=_jU#)OYH*dNCo2#yBae+r2uGO0vYDTryh0M0P|4~7^`SbR?-|Ox_+I7xB z`bEV&-c@^o>QaHG=6#>0B_-mY_&PD9I5xC)6oS_4RLKpT=ZeJ0P=3WLxps>jySj=ige@xb(x$2k#W_uY05N zGa~=Lxbn&Vm$yTzJ$IZ?o>b%ed7Z~5eqXIgZ=5H0sr^roVYmPcGlnk-hn1moC`D x=$Um|+UwHfS>>=Wm=!YVN_*IThis 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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
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
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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 index bbf80ef5f..4472db0ee 100644 --- a/classstdex_1_1parser_1_1basic__space__or__punct__cu.html +++ b/classstdex_1_1parser_1_1basic__space__or__punct__cu.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::basic_space_or_punct_cu< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -103,41 +103,41 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -191,7 +191,7 @@ template<class T >
@@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__space__or__punct__cu.png b/classstdex_1_1parser_1_1basic__space__or__punct__cu.png index 0d9647b599d1d0ce36b8002ad6c3ae419cb8d82f..00b474c3353d9ef1ffcfff2627b664c22d647396 100644 GIT binary patch delta 784 zcmV+r1MmE}2c`#*V1F@5L_t(|0qvdZuHzsKgolZAH1Ge!+cuZMK-#1|+jduu#!3KV z;DeaIn5Jn;TOUj$nKnO(gQS%>NLq=5q?I^GTF>Ap;YE_q*(kv4LFb1gpRjMkL6Wc9 z3vo~4xMIJtzu0xu`MaLOrG73iuWLhJGjzQLboq3=x8o?JwSRypWYG4tEUjv5YeGZk zSZ%ENyb##{MjwR-L!Bp zckIRcMDAFR>2C05S!e0IzqQ4izzd454{w&;cqA*m@1iBi`}V?INV2ovjz^OF_O&=} znQ}RUB>5i8(?QbubsQx5?^@y@X(bMlR^lLOB@U9-1;;c^Q`+(Xz&F?r0Hh@j0BG&! zCwU|e02tVXM)F7;05G(KlOX~WlOO^WlOO^WlOO^Wf5ZX6`W76el#;eSD3X*mKZ!$< zl{h3>i9?c=I3!sOj-~K2qEUdiaX&E7a*s$-us7n6q_^0y!G~VPab}bLuJy~C8RM_L77H=zuJiY5lC1kUiexPyiWIbcElaD~+M3YN zIffxyf7hYo7Qfy+yLT}{M@Oq8#9ire3@6kCsJyE|x*dqFA$GezBiB6~vF{LK*Kv$9 z&Sh(eKT80<9JJ9UZAWnFRo4t%yL}5oR<7#;LZbT}98KnIO3U6NT|Irt`RW zN=G=3tms3hqe#{^LQJJirf3N^zvExX9dQApe?+&JJJ#Jlnmg8GKfGDiv7NuSws^C6 z-O=^n&Ek7u=VqxEv)x%C(RCTO@{&~P!9^=c_wBf+BptQqqW+z^d<4fWPx^P2q_IWE zP<4MUgN~B)*z$Bpvd-X;r2pI!ha@X;NU{=#Br9=9vMxAEDJ5-r{s1hZ;MIq5S~~y$ O3IG5}MNUMnLSTXfF^U8L delta 796 zcmV+%1LORr2e=22V1GkNL_t(|0qvdPj^iKnrY$TGodo&)Em! zAjx3Iar}5n&*QklzwN-qu4Av??MyE9Yq`Fz4P(vJ^%l_OZGX#yLnuGTiXMxg zRS<;?+P~`3nzp_sGz^aIkSq+^Bl#6^ocU?a;OJ-APHb~&{w5b=X><*-`yCh@_P$}= z;rnSI=YE!UhBbFhaBMB^)z(a1!?If(y@MllYwk)<0y&dP`vcx@X@718j{!$GK=)2Z zKlmQ$ou{La)_=Z|m`c0NF-#^M7!@6IbJGNs#y;-)o`nuTL;?3e^Mc3KQ;_D;~ z9(Le;7cEIXwx7+2B;RJAjN_Is&m4J@JZE`2NLs&vgCze^OB^Jv#6i+Z93-v8LDIV5 zSe9i;s}BHtf_(u%TH*kJ-oCz)N8$j0iCt(UkHi50QvypElK}!Dlm7uDlm7t{e^0?t zN-1gEgCa?3>ytPnS&2iEl{h3>i9?dr;i!clBbo(x8TSJN)q6yeg1r!jB)!Cr4L9K(>k>(p_Nf8TDN-G>;VqocJE;;xK1rW5J{G~Uf1!wy8(5WC-> znd?0qvF{Y(&~c74&Sh_iKT7~!587;#_9Iw(wKY@MVc)`#jqA36km&vnjxKX{rMfpw zDxICUb`AZx89W}H(ix5;D|*xED3Z005L0QFDSCq4@AwP3BQ9W;=QRmR6U-{q@yH#Z+SW-Sbb(n$aS002ov22Mn-LSTYAii!{b diff --git a/classstdex_1_1parser_1_1basic__string-members.html b/classstdex_1_1parser_1_1basic__string-members.html index 49bbecceb..bf073b349 100644 --- a/classstdex_1_1parser_1_1basic__string-members.html +++ b/classstdex_1_1parser_1_1basic__string-members.html @@ -80,20 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
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
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__string.html b/classstdex_1_1parser_1_1basic__string.html index a1264984b..3cadaa02b 100644 --- a/classstdex_1_1parser_1_1basic__string.html +++ b/classstdex_1_1parser_1_1basic__string.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::basic_string< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -103,41 +103,41 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

template<class T>
@@ -191,7 +191,7 @@ template<class T >
@@ -201,7 +201,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__string.png b/classstdex_1_1parser_1_1basic__string.png index 421a49836787138912ac8c47e57ebd400c2b27da..8e47e378c36bb7fccf467d8dc81d557c39ccb93b 100644 GIT binary patch delta 725 zcmV;`0xJEN28IS9iBL{Q4GJ0x0000DNk~Le0002P0000`2m=5B0FzTOb&(-If00Q< zK~#7F?Van6>mUq-hly0p`#wZq?Eb|xP1D7Ni6k$r!9bGz zH5f>;zZ^p_|48yRwF0~!bonDmqYpBW+)Srock9${<{yqb?5~+&nx^U60)YRk8vtBfKfrLiT_55H z7-odaL;M26s7nCw4H^sp&|iZA0Qze%06>2Y1_0=e^dw|TwDl}bZHF+N$Rh`AW8jIGerAsv{rzPps9Or%~*mY z$?LNWlGM;i*DW{0aL0VG&boIm-}a=IqlhQ+aI1Tou8)A(u9l3!)>-wI&oBfjx48Qt znYMn#{S;%q#|%`CZpqc%%uno|!M-WSu!i;fDqM=kmQ8Ebt|qoWf7)X5_R@B0IZ(Z& zGEhvS216Rjv&x>PYZ2S;WsAY3u(MXv<+Q(le|Y|wDvyf6Tvg5B!@YYCLCP&3hRJF7 z`aQOLv(My%XLv0i(yM6JrL<*aMVgE83F`lJs>N43gAegF%w|Yi0-`glp>`FCC&k$sd|a00000NkvXX Hu0mjf(Y#)T delta 742 zcmVuM~*(2Ka%{JS`Ml)KXANj*nT8w^g()(G`dcIG@0q2M|+)b)zfr)E*GxjTR;9i zC+d-=>C0j6?*TOirhn~di9V3Ie?{&5IXV-a9P) z>?TEO<*x13rpC7kXR(>x)nVGDX~Jes=`dcC2K_#hSCu18Q$tzOdxPxBT~gQEy5+6) zZ`%jVzm>|OqBpPSDE5ByLW)VJ8z$;<>0{SK76)ktT2*f^g((_YUrYA(=5|JkM=s>s^{4DY@@RsKStqYR*y7I zUk-D>+A=yzt7_PD`XJ>Nxr1a{dWs~)oF6e0m7&`*nVa?dsXcu;e^}5bhn}c#P*~@# z?bW8nw-0Br_;_o(G)>sdDP6>C(xBgG@~U#AXc}dhhP%u@6#iIRNI?x-9nxcDZ>c?>+t9yx()6S#$P%av@1`w&r9cYkFLBT#49& zezWFC(qHt+uky9MJbKU{eK{KiOOj6Xm9alNnxx$B&`Z*HY0^tlA5D5m>Z6rDgb+s6 YA72BU?VKa_KmY&$07*qoM6N<$g4_#l9smFU diff --git a/classstdex_1_1parser_1_1basic__string__branch-members.html b/classstdex_1_1parser_1_1basic__string__branch-members.html index efef6092c..a6dd15ecf 100644 --- a/classstdex_1_1parser_1_1basic__string__branch-members.html +++ b/classstdex_1_1parser_1_1basic__string__branch-members.html @@ -74,37 +74,37 @@ $(function() {
-
stdex::parser::basic_string_branch< T, T_tester > Member List
+
stdex::parser::basic_string_branch< T, T_parser > Member List
-

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

+

This is the complete list of members for stdex::parser::basic_string_branch< T, T_parser >, 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
basic_branch(const std::shared_ptr< basic_parser< 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_parser< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >inline
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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_parser >)stdex::parser::basic_string_branch< T, T_parser >inline
basic_string_branch(const T *str,...) (defined in stdex::parser::basic_string_branch< T, T_parser >)stdex::parser::basic_string_branch< T, T_parser >inline
basic_string_branch(const std::locale &locale, const T *str,...) (defined in stdex::parser::basic_string_branch< T, T_parser >)stdex::parser::basic_string_branch< T, T_parser >inline
build(const T *str_z, size_t count) (defined in stdex::parser::basic_string_branch< T, T_parser >)stdex::parser::basic_string_branch< T, T_parser >inlineprotected
build(const T *str, va_list params) (defined in stdex::parser::basic_string_branch< T, T_parser >)stdex::parser::basic_string_branch< T, T_parser >inlineprotected
hit_offset (defined in stdex::parser::basic_branch< T >)stdex::parser::basic_branch< T >
intervalstdex::parser::basic_tester< T >
intervalstdex::parser::basic_parser< 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
m_collection (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >protected
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< T >inline
parser_collection(const std::locale &locale) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inlineprotected
parser_collection(const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inline
parser_collection(std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__string__branch.html b/classstdex_1_1parser_1_1basic__string__branch.html index adc2efac5..5b758bf89 100644 --- a/classstdex_1_1parser_1_1basic__string__branch.html +++ b/classstdex_1_1parser_1_1basic__string__branch.html @@ -5,7 +5,7 @@ -stdex: stdex::parser::basic_string_branch< T, T_tester > Class Template Reference +stdex: stdex::parser::basic_string_branch< T, T_parser > Class Template Reference @@ -78,7 +78,7 @@ $(function() { Public Member Functions | Protected Member Functions | List of all members -
stdex::parser::basic_string_branch< T, T_tester > Class Template Reference
+
stdex::parser::basic_string_branch< T, T_parser > Class Template Reference
@@ -87,82 +87,82 @@ $(function() {

#include <stdex/parser.hpp>

-Inheritance diagram for stdex::parser::basic_string_branch< T, T_tester >:
+Inheritance diagram for stdex::parser::basic_string_branch< T, T_parser >:
- - -stdex::parser::basic_branch< T > -stdex::parser::tester_collection< T > -stdex::parser::basic_tester< T > + + +stdex::parser::basic_branch< T > +stdex::parser::parser_collection< T > +stdex::parser::basic_parser< 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())
 
basic_branch (const std::shared_ptr< basic_parser< T > > *el=nullptr, size_t count=0, const std::locale &locale=std::locale())
 
basic_branch (std::vector< std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::parser_collection< T >
parser_collection (const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale())
 
parser_collection (std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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)
 
- Protected Member Functions inherited from stdex::parser::parser_collection< T >
parser_collection (const std::locale &locale)
 
@@ -170,30 +170,30 @@ Additional Inherited Members - - + - - - - - - - - + + + + + + + +

Additional Inherited Members

size_t hit_offset
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< 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
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::parser_collection< T >
+std::vector< std::shared_ptr< basic_parser< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+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.

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

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 index 31fa6a8e1d9f81d2cd60bec2dbefb7b2520e8110..87340acfebdeb5865f317581e2d5d5022a80d792 100644 GIT binary patch literal 1950 zcmb`IeLS028^>>|o`==e^u-i?i%_A~nvzw$Y?FvvE2)H1C1FZQ1Qn?bp=I-!Zq!|^ zl{RVf(xjBi7)?ZC^^j?&S<|SON@%U#vQ|qnEi=2j&+|t=&pyvzd(I!{T<2WppL2bG zzw3N?kbt+bwzmcVzy=J#k^sQW6^=XqxeA_7O5e_e7l(rfB5*4!D{wgVi-}cnOZ35R zbf#VPk5iqUo$xssx-W)vR@o#18G!eH4vcxN76AT%2C*MSd}{Xek|B%lw{~?czfLP( zSzp*H1(SYT9k|+(Man>7aj)p{K)toUM}`dG*q7dBnZdx&2DT=Z5(^ zuL44}+ZqN0DQ9Zv(pulRev@-pw@Z_KO>@41=sq*NPVPdR?k6Npo}n=sE1ur>Y3bD! z%=u9h1ybeZnHfzzE^KL{Tr5py*S|Mp(~y;c+x*0kmQBp4m$hD4xFh6RF2_E^reVF$ z{(M1vHlORmw@mFgKhakESzEC&otqxm>pyc?p&sT>fXcj?zNb{RK-lOne9+i>MI_SS z&xh&^s|fy}@1ypZSE4zP1Sx~Gi8nYC4X9;v4*d2pbr~cmv^Wh3ENq=YtDT|Hy4R(- z`K6n11347^FCgEM3RsTWoi_hq(s1W0K#;heWTtb{tjE@zHV;V%1FUvhZ##uELp8ac zw6I-$rjrM(i{9{|Ih>3S|2xS5QUqG~4JmYQ2@(v3%HL#l3I~#k+ORf#6{zJsZNv

KLzl-k{62Zt|Hy`+yK50Wq%H1 zGk;TPu^YYj1VY9wc~(A2BI=OknsF{FZu~5Kt;>O@;4`9dI@PpiH0IgYn`RAHb+=WM z(~}g5$B+#h70YeE?0L_Qti%L@F*inSy+aJ%XnVm#%(JV6C>9$eORTP!T>V`q$Gj8i zah*+t^p7C1Fp51{|E3SWEofN&bn`*wz=*P8=COtz%&htSpYDHQcU+s%BK=>P~?bx*zk$^;&H;GG2Eo?U;Dm!^d=+5)Sg)youuYl9XixUsit7wEO7S(hch z%Y8=>;ndm}dkrd=1ZP_6(zE?xnCjt6B1X#D_KbW}*1~iL(R7^k;XXQ&CtH*q4Rkx! zr=j`67^+?2}gvi`@VCmLdLK_dg{(?PeS zyVntO+-MFt3BgH=5-)y9sVPR&0yktRuZ=ZJ8R6%e<>hI;uJotK+wlIgD*YC3qC!W` zxZBLJ*&mk|bDf(O#O3DddOg)&caSrB2a+G|Jbz+kUx118s}r)Oo|20|;D2^ne zA01ZD9eOsp)->qV-q*Hrm#wYfBawu`i<=XBl)(|$e{X+x8H;s%p~B&?zhy}N3Z+(@ gU}x#IrYrM@La|pWasC^c4*p325J$i^ejH!)2Rg%nBLDyZ 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 diff --git a/classstdex_1_1parser_1_1basic__tester.png b/classstdex_1_1parser_1_1basic__tester.png deleted file mode 100644 index 292a3495d8264051cf2b7c3b3254f82b3344ef7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/classstdex_1_1parser_1_1basic__time-members.html b/classstdex_1_1parser_1_1basic__time-members.html index 89a356cbc..84a61c950 100644 --- a/classstdex_1_1parser_1_1basic__time-members.html +++ b/classstdex_1_1parser_1_1basic__time-members.html @@ -80,25 +80,25 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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_parser< 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 >
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__time.html b/classstdex_1_1parser_1_1basic__time.html index bc9e520e2..212bb1959 100644 --- a/classstdex_1_1parser_1_1basic__time.html +++ b/classstdex_1_1parser_1_1basic__time.html @@ -93,36 +93,36 @@ Inheritance diagram for stdex::parser::basic_time< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
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_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -138,24 +138,24 @@ std::shared_ptr< - - + - - + +

Public Attributes

std::shared_ptr< basic_integer10< T > > millisecond
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - + + + + +

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
 
+std::shared_ptr< basic_parser< T > > m_millisecond_separator
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -186,7 +186,7 @@ template<class T >
-

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

+

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

@@ -238,7 +238,7 @@ template<class T > @@ -248,7 +248,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__time.png b/classstdex_1_1parser_1_1basic__time.png index d0ff90add76a0fa97bf70112270dd981fed6851e..41eac60b10cbbf385f4e56e5dcb569b6e8ef4b74 100644 GIT binary patch delta 714 zcmV;*0yX`P2KxmeiBL{Q4GJ0x0000DNk~Le0002P0000`2m=5B0FzTOb&(-Ie}+j! zK~#7F?Van6>mUq-hly0p`#iOcU)$*K~H6 z`!D;u#*oO|*4-!4wEb<}Pcc`If0&8JusF3dfB9h0DlDo0Qf5y0Ki|t009091_1C^FaUtRf&l>h6$}92uV4TG ze+2^o_$wFyz+b@t0H;bRf2ErXNs?}@V2~t#1%o8{tIx2Gy^Z(8w;6c8&{};YsjHu7 zkR+okMo(=ThKYBE9yLuZ@1>t{eCe-``5>E-uIcPB_qS7CLb0#YIr5hnl9b!(HA$xJ zZ|i=Fxq8G*G=^r$nb%B~pyrGvm94{&uV}Te!lbxt#hP}qF*Uvqe~zuYqWz+w=-#E0 zVa=uv!#0z@Do47eh3{jA*|^$h)vLN~PS^3T53i0;W6>~}P+f^bv(cC0kfhx98++R3lx!*(mWb!l597n@v5OkK+Rv8KJclv8;Fc(*P|(uqFqkKK{s?C)2S wF6ocPL6Sa7!5~TgAPNRa^4G|aQcCyMKh;a3%Q@nMK>z>%07*qoM6N<$g8Ecl$p8QV delta 733 zcmey(+Q+8Y8Q|y6%O%Cdz`(%k>ERLtr1t`G00%RWtiIe5H&M~Pex|33V@L(#+qv)i z78~#!QEv`8``i9w;J>3~PW^Z9t?f1wT|DW?jr|hGYmS=uUe0apRLNiE=s(F)>Wj+E z#SZazw^;f~x(<*kkee{|y=hy1~p8eG%_Wj%D&ws4${hP=A z*5`UjVZ`xjr@4*N@waa|#-FIK%DvNCa=mc-#2H&H9*apiOHXQjXJvEM-alVWx3(nX z?;EvcTV7r0j|zT%d+BAC&wc2#Mn3^n`cYKNS{`FUuzwx<#B{1q&Mu2Urvy|KG z3-fOM*p__gQFNw`RMq#Yb4Bva^7Hmh`0aGl^Fy z&fko^?pCzs=e%IeJ(=sDUvYcfw7Vtt-3*nVQTg?(9-roGHUE2a+H+F;<@YCTJ?o~i z*?K<9xG*`TFYQ<6tYy2o82&AmV76i*NhQI&Ri39VE||VVru4=3&h6z_i!X40v$}9CMrGwy{>$Ez zE{iTMmiGUD=kcbCk>`JYy;n8k`Sp+AwyUh4`Er&X-|LF=Z)W{d_ESGA{<1q{{n_}5 zcS`T%s-)?j+tGULLTgOfE3vm?vGrx~7q18LxEwn&Wm@Mmap~aazf}_NcKqW!e?P2m z>HTxw?RD`h{cp}(xAJ4H-+qa9k@ktc5FKWJ~? zfqz%p%w^1Fy1r!H-QFF){`X$CUAF1v@zS1eh1Wd~5z4>y+Vbm$cQ5Y0x197vy!P63 zOXKc;Pt`*v>Afs}8aK(#y*X}Dk;w~HO?Ts3U?7CnGd!3*x6=8^`v1Tb%i!ti=d#Wz Gp$P!Z-gI98 diff --git a/classstdex_1_1parser_1_1basic__url-members.html b/classstdex_1_1parser_1_1basic__url-members.html index e47bfb86d..0bad03dbe 100644 --- a/classstdex_1_1parser_1_1basic__url-members.html +++ b/classstdex_1_1parser_1_1basic__url-members.html @@ -80,13 +80,13 @@ $(function() {

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

- - + + - + @@ -94,21 +94,21 @@ $(function() { - + - + - + - +
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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
basic_url(const std::shared_ptr< basic_parser< T > > &_http_scheme, const std::shared_ptr< basic_parser< T > > &_ftp_scheme, const std::shared_ptr< basic_parser< T > > &_mailto_scheme, const std::shared_ptr< basic_parser< T > > &_file_scheme, const std::shared_ptr< basic_parser< T > > &colon, const std::shared_ptr< basic_parser< T > > &slash, const std::shared_ptr< basic_parser< T > > &_username, const std::shared_ptr< basic_parser< T > > &_password, const std::shared_ptr< basic_parser< T > > &at, const std::shared_ptr< basic_parser< T > > &ip_lbracket, const std::shared_ptr< basic_parser< T > > &ip_rbracket, const std::shared_ptr< basic_parser< T > > &_ipv4_host, const std::shared_ptr< basic_parser< T > > &_ipv6_host, const std::shared_ptr< basic_parser< T > > &_dns_host, const std::shared_ptr< basic_parser< T > > &_port, const std::shared_ptr< basic_parser< 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 >
intervalstdex::parser::basic_parser< 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_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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__url.html b/classstdex_1_1parser_1_1basic__url.html index d84cfead5..94dc1e7b7 100644 --- a/classstdex_1_1parser_1_1basic__url.html +++ b/classstdex_1_1parser_1_1basic__url.html @@ -93,99 +93,99 @@ Inheritance diagram for stdex::parser::basic_url< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_url (const std::shared_ptr< basic_parser< T > > &_http_scheme, const std::shared_ptr< basic_parser< T > > &_ftp_scheme, const std::shared_ptr< basic_parser< T > > &_mailto_scheme, const std::shared_ptr< basic_parser< T > > &_file_scheme, const std::shared_ptr< basic_parser< T > > &colon, const std::shared_ptr< basic_parser< T > > &slash, const std::shared_ptr< basic_parser< T > > &_username, const std::shared_ptr< basic_parser< T > > &_password, const std::shared_ptr< basic_parser< T > > &at, const std::shared_ptr< basic_parser< T > > &ip_lbracket, const std::shared_ptr< basic_parser< T > > &ip_rbracket, const std::shared_ptr< basic_parser< T > > &_ipv4_host, const std::shared_ptr< basic_parser< T > > &_ipv6_host, const std::shared_ptr< basic_parser< T > > &_dns_host, const std::shared_ptr< basic_parser< T > > &_port, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
+std::shared_ptr< basic_parser< T > > http_scheme
 
+std::shared_ptr< basic_parser< T > > ftp_scheme
 
+std::shared_ptr< basic_parser< T > > mailto_scheme
 
+std::shared_ptr< basic_parser< T > > file_scheme
 
+std::shared_ptr< basic_parser< T > > username
 
+std::shared_ptr< basic_parser< T > > password
 
+std::shared_ptr< basic_parser< T > > ipv4_host
 
+std::shared_ptr< basic_parser< T > > ipv6_host
 
+std::shared_ptr< basic_parser< T > > dns_host
 
+std::shared_ptr< basic_parser< T > > port
 
+std::shared_ptr< basic_parser< T > > path
 
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - - - - - - - - - + + + + + + + + + + + + +

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
 
+std::shared_ptr< basic_parser< T > > m_colon
 
+std::shared_ptr< basic_parser< T > > m_slash
 
+std::shared_ptr< basic_parser< T > > m_at
 
+std::shared_ptr< basic_parser< T > > m_ip_lbracket
 
+std::shared_ptr< basic_parser< T > > m_ip_rbracket
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -216,7 +216,7 @@ template<class T >
-

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

+

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

@@ -268,7 +268,7 @@ template<class T > @@ -278,7 +278,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url.png b/classstdex_1_1parser_1_1basic__url.png index e02fdfa07078defd4a87953ccad2318a5845f0c6..837957881c2f3555283ab681219ad7c624897723 100644 GIT binary patch delta 700 zcmey*`j%C(Gr-TCmrII^fq{Y7)59eQNFN5`01jp#IXT#{bfThteTAosV@L(#+qtjT zJyzgpY3~d<``iAb+F90|1ut)YTQgfvbTP{t3A+RD;(acg#Kz3<_;g8%M@4e|L5E2n zi+E1jczk+)h3iArg|F_D-2P8!REZBY&P$76ct2&c*!8b_{}jl@|Gu4UctzRwdi8-j z{|om#mk^qHd)qIUS!H{2Uu)*n*Bz12I-Yd>+@q)MsTyqFZOMn+=G)c>Il5=x^oP$rZryJy z=4^YZWH0-fzkAMv{yaQgV$u{~$g0eQge)jv-H&g`zsB}X;#T>p!v#Jsu0MTd5*_h9 zD_nSYDc{wQYg=6}*6;OJJv=Rhx9#qv{aWs`*15isYmQ#wU*x&0wCL9S{r7F^ou;}U zP3U{|{k)>*PT9-1=ag-~pS;`pkB{AxlzMl&H`^CQPX8wQB&qmDPVA}ft?SP2Dmn9I z+bu26{;z@c?+)_#|Kaw&l>GPja|KWN#RnBUKT7dT5?Mb}ap{zGYwb0-gcf()`*6nv Qm>?NEUHx3vIVCg!04iZr$^ZZW delta 718 zcmaFM`kz&?Gr-TCmrII^fq{Y7)59eQNbd#W01jp#S$(-BZla=neV3<;V@L(#+qsE( zZxnc1+B-we{`LPe$(QNIggv?2*NRUSUCevKQ2yA2{SnhrCBq^-iUNGACiPrgqJC1s z@>j|~k5AdJSTm0OIq-E&=KqOHF6v*JyyW8NFX6|W_UpdgxG!|}>whu(cl5pg`#9ft zi*oFB_XC&gg|lRQ{_k9x`pacneOZC}r7eF-CWM&TC-L+q+o}rto}PGW{?heq*;Voz z`iggjEDhbY?fR}+H`L}{O(_d&&x}9I7HwI2;PH%-7yjOrtL0wqk~%f(p7j)ucN2Eq zySLVV?fu;O2K%*p-JSEdJ=gkP_etiZ@J|1f%*v$dtk~RNth;a3tb8|HX#e`(o7r~N zm!Ff|6{B)9?fo35#MtU`znvLpo~R}I-=CpUxqkY7CY7ISyB6&KRW#|z^DpH^{*&G> z_4J=)IO~gw!Qr^d%Cp7v!7u*RK(OV79_k&b(WtRMbJ=b9z?X zj`(cn{kmT_-V2?bTfdHZ?c?hIKW_89^|=03aKjhw2kSmP5`Q^4sukWAF<&7!s_g5~EtDSeMUU=tCpIf)$US}nJFS_rO8Y}&;?&*~;$2Y#bFn`*o zFxyL|Ym?$HTD#Qus7}3Ry|r$8?V&&GOyqd?-kdl8OzkAE)55odU$45Of8**a+j}HPXE;=9X#pXSG)M<9>4zAdaAyRtJnWN>5JSf ql`oS-7JKS@8b-Yg_R0+T%lz}yJhQsfVQ+v*l)=;0&t;ucLK6VWJ77cr diff --git a/classstdex_1_1parser_1_1basic__url__password__char-members.html b/classstdex_1_1parser_1_1basic__url__password__char-members.html index 705a2cdbe..33cf98a6a 100644 --- a/classstdex_1_1parser_1_1basic__url__password__char-members.html +++ b/classstdex_1_1parser_1_1basic__url__password__char-members.html @@ -80,19 +80,19 @@ $(function() {

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_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__url__password__char.html b/classstdex_1_1parser_1_1basic__url__password__char.html index 455e68375..ba7e25220 100644 --- a/classstdex_1_1parser_1_1basic__url__password__char.html +++ b/classstdex_1_1parser_1_1basic__url__password__char.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::basic_url_password_char< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -102,35 +102,35 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -184,7 +184,7 @@ template<class T >
@@ -194,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url__password__char.png b/classstdex_1_1parser_1_1basic__url__password__char.png index 5ed55350fb4c3ff2a3b2e6a15a1d4f39df98bc4d..2c9e060d55f45f61461f293439de93dd44351d91 100644 GIT binary patch delta 825 zcmbQq-orj2p5iJ2?sjoTF#z%H%ol3gaA`L z$4BwYCcf7`B`A4j*PS_}<6(4K=S-8z=6eZ&hvYr?EuYx@-a1x((w?>P$C_03uipOm zUh+qVeF5{o&M2zQ7dP0x{_ETK7cXw-@fC01T6g}w!P2#RpkBR z1&{Qv^?$DJKk?{UbvC0j>#+-Ci2f+m@zOjRB`4y!>Dh6eGftB>0bQV? zslD-r*8OM3MIWxb+@AJ^&HnqgyHb-xzBr0aDp}>f$-;Prj@$yVsLgV@udA&K^5S3L zzQ1^JzT_-DzU;kv8KJTka`n6P*7132XVm5e&t3Ccs$1!5P`X}_?(y5-VtwQDIA!N1 zCT(3rw*)X%g` zvg)=A`)#}Tl#<)sLZ53QiYrxmBU=7R7X~hg;>(EK_ zUhi6}vUm0QGfJM3_6L(Zw`$J3dTo1})m_z^o delta 838 zcmeBSpUFNUpWij;{u9!9U^x*z@X_%zRrZ`ZaPA8M{`vQ?>c-+#PGW$wAn z6~&&@BXw?sf7?8*bNlx)$>QH(_y14p+n1WL%WBK7jW^F7xVpZvUg@Oxu2YL9gq3l% zmMq=(_Wso`N5!sRl-w4)>B7`kC;!=WzfOP3*1cm-S!lawamSih*?U)hmi<`HR=VbQ z#`n63$JQEO(#!V`V-|Do@6C#CTlQ{twAjT1Hm&@8TfI&4o}81oUTBcuFR!%ZRh7c^l`7RdFZo$s{XG2e<}Mc7S&et%W!W!z3|)5>LdG3&hC3B zxZCE=6Tbh`--S%7SzA8Mc~bmk{>>4>PriDnpR7K$mU3&=CvJUK{Cs``bOfIk&g}s{gmWOax_hE($rtu>ccOKN5{CQOGL#q#i8w!v=WOPg+7KHYHiV)Ei!(-vkv z{;k7pUjO((Jr{R$xX09m+cxJFrSqKIG1D-~s@pE?x2^5zL+-J*YSCR2LYmxkV*a=8 z(3mv!)$!-&9LxK0I^mZ{%$L1Qtds{dEeAMynp>5FR@U!Q(o`3#Y?Xu-% zAUB<><=4XF>)&q7z4SwFp8*IwUHx3vIVCg! E0AU=Kp#T5? diff --git a/classstdex_1_1parser_1_1basic__url__path-members.html b/classstdex_1_1parser_1_1basic__url__path-members.html index c93e13110..086313d3d 100644 --- a/classstdex_1_1parser_1_1basic__url__path-members.html +++ b/classstdex_1_1parser_1_1basic__url__path-members.html @@ -80,25 +80,25 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
basic_url_path(const std::shared_ptr< basic_parser< T > > &path_char, const std::shared_ptr< basic_parser< T > > &query_start, const std::shared_ptr< basic_parser< 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 >
intervalstdex::parser::basic_parser< 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_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__url__path.html b/classstdex_1_1parser_1_1basic__url__path.html index 20e7b9055..35c4e8e9a 100644 --- a/classstdex_1_1parser_1_1basic__url__path.html +++ b/classstdex_1_1parser_1_1basic__url__path.html @@ -93,36 +93,36 @@ Inheritance diagram for stdex::parser::basic_url_path< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< 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())
 
basic_url_path (const std::shared_ptr< basic_parser< T > > &path_char, const std::shared_ptr< basic_parser< T > > &query_start, const std::shared_ptr< basic_parser< 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -135,27 +135,27 @@ Public Attributes - - + - - + +

Public Attributes

stdex::interval< size_t > bookmark
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - - - - - - - + + + + + + + + +

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
 
+std::shared_ptr< basic_parser< T > > m_path_char
 
+std::shared_ptr< basic_parser< T > > m_query_start
 
+std::shared_ptr< basic_parser< T > > m_bookmark_start
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -186,7 +186,7 @@ template<class T >
-

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

+

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

@@ -238,7 +238,7 @@ template<class T > @@ -248,7 +248,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url__path.png b/classstdex_1_1parser_1_1basic__url__path.png index a47856f69d96cf2119ffbe3d81580c8c7c389ed8..0c1b2ffe4226577747cbd154fad929428a43d9c6 100644 GIT binary patch delta 707 zcmV;!0zCb!2A2kqV1J@XL_t(|0qvdZlB^&MgqyZ%tKa{LkB%2eKwWpXW^*W}=ut=r zd|cvROw%;=B1|ONhXxEuM$~{I$%tyeB=aE2pQ#n#{h;fQBx`*bh9uwBd0Y##Aiub0 zEq&JaGQ!-x*0;xEs9Tz@uYkG!INn2;MCP(#B+``QZJStO^M5VIP&pRMcNZ@|EQ~*H z9_ARi5pZ`Y&S9?FTJ36L+ad4cnOU266RkdGCCql$8Zf&h_bOYOu0`w`<|>}s09Pxj zJ^}cn;g{3zS>;i|n8iMWxrz6aok?Ua#}GCFxD)O9Pp`u_@61`e=XYk`;AS@4$H=+n zu-WXBr(<1jvwzuXJd#EEZfYjUYyI}e<5%PT70mu6?*b;o&X8nS4H%M)r~yNg5jDe1 z(=>G=0Qi8u0H7E31oQRP5lv4pGfO`-UBQfO1^_WNU;rSZ1`Gg1)PMnih#D{e5K#jL z03vF@06;_y7yyW<0RsRLHDCZBq6Q2AMAU!*fQT9}0DtgIDW%klkR+)O4H!v^r~xBM z5#?aE%G-dg0GC0}jB|T!+H#j98GR5&l1}vq=FC6CETk{oSxejcUUr<@*ZTH&ja0QX zU0(rnJx^#=?&!KMe|v+ZT&`h~l*@*ZBvX#JZDNJZw-`g^=wQt9*If^D0cHIgFnL$q z1l{0fQGe@N?P_ATcIL8cVLMA$QbVZCkD) z0r>s(%jx&5@~CEHHt!jXIiXK?CP}&E^)Ly*1+Ry@IQZ>5lQY9**Qa-8KQPT~wnxo* z=CIjpmM36co7wCb$sv|q3l~Yb+@xkny4KrYA3RCA)f=Py1x)(`zPJ8oFp_kx55Y)M pXbl)iil_l2Nf9-}q?A%8`Ugbjsd)0Z*NFfC002ovPDHLkV1lI=Qsn>u delta 728 zcmbQvwuWs&Lj8767srqa#QKk{~C#I zG4lY+Y2HQ`x5}KXv+;Sn%QPYBkI|clL3f;A|B8G2D(U#&)iR%Arf;q8vpAa_cI^KB z9c*U|lQw&KU%sjud&q^oTf~UZ_I|ENLxt(1vSY@pZL}oHE6)3=>CIE#TW{34W!mQt ztO|EtpOAm|)&0HC)UQj+pY5nOIGa_rCPh`N|7TX3XXW)U)6GK9#L9nv&&yOhSzP<) ztK!N1i{e`H%XzfI-$l@`U5a;AwMo7~qLoZh6<%)zj4fiy$UqKOH4+Z!|7 znj#~QEtKR+3o~YT5iHEcP<5q+u>q)_VS&4^1jCC!RH1q-VnCrC%ccZLxq3`8X;bS_ z`MQEr+0$0*z?-@KjM0pK&34i;Z@*rM+pTi)Ww*hkFCo(t=KYjDGxtm5?pJxY=bi3c zUHkgIeg9M~NMKL9pf+1#*}ea=Y@XN7B~D5K2KXdIfY)2HNo@c7^@>f5L*;+Ap1D~b z20HJ|w!XW%POt2Bir;cGqmL6mHSAAQJ@c>2G@(y$c4*YBb*^vbAIb?Xc6zv~_1?Z% zSH_O#(%X&aMLrEoeZu!%s%Q7YaDO$=YdQ8Yj2s7FKlRhA`#pE#sRFC7udIt>W~7-~ zFN&IbGI`&uNTz#R10&CV@?zXLCu)bsrf-W(yf5vv`}fP^l6UQfQ~3wB*gt6hD&IVD v$@5=AJu0PZLBWu9$RnsfDly0_Q{XRSLCMOx^Rfr`FaUw4tDnm{r-UW|vm;z@ diff --git a/classstdex_1_1parser_1_1basic__url__path__char-members.html b/classstdex_1_1parser_1_1basic__url__path__char-members.html index 3fccc04ed..12422a72c 100644 --- a/classstdex_1_1parser_1_1basic__url__path__char-members.html +++ b/classstdex_1_1parser_1_1basic__url__path__char-members.html @@ -80,19 +80,19 @@ $(function() {

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_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__url__path__char.html b/classstdex_1_1parser_1_1basic__url__path__char.html index 8fc5fe3bc..6c0dbb4b9 100644 --- a/classstdex_1_1parser_1_1basic__url__path__char.html +++ b/classstdex_1_1parser_1_1basic__url__path__char.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::basic_url_path_char< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -102,35 +102,35 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -184,7 +184,7 @@ template<class T >
@@ -194,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url__path__char.png b/classstdex_1_1parser_1_1basic__url__path__char.png index 631633e716bd2defa4b7133de6bae0614decc42b..ff905bfe89dca934611ac36828b5bcbe04e3f4a9 100644 GIT binary patch delta 752 zcmcb~c7$z0Lj8G97srqa#heYTnddKP8Oy1i4BWnI{nTaWw$J}`Z~oz;_rCYk{ffM#g`HZzz1SF->3!AY zW9+4Ee^Nan*B-2%z4X)N>G>Y}UbnhBzTWn_>)WyW;or=mHm*h__sd>ZgGAXzAm-4T*{h$83?p9q` z(d6+-dsa2fyR){a+*}@ZD>ZUjAPd9(1@a6MZq66~{po437J18ME$}X4i?KSh!}?iU z7%nVV(`ERw(vzD37*I?O^KlE+Ba|K3F6zW_n8R@r+r=eQm)MzRs;=};-Lmo1H?Au( zCUfIT*S)>EuB^q7*?ZDud!PdE+G*cT9mtUP-njPoD)-y}=JCbc{$5p+vrq&Q(7Fp^ z%?zY}{jiqGxv!TrF=eT*w2JmbV~=%n@(n*N(a$fGZB2B0U2nEQ=GE@xYRk>GHo3QE zT)1^m^Y4<2J99O&m#+LAd;9jY3!8S!d6%)=DO@q{$rQ7=&s=XWCNI7;ZB^!@-;uX! zU&yXKJ4bct8ZmL3lR-ZPPnoOS|9WVVP5#Y=m5tY8o4ljU|FrJqoiz1w|M{Ssv6_!E zWA{}(n6_`0b9DE^uzxqJt25`E%<{8aw$-NM+s`u@f>oD+y!2BAmlk$CX_@}jC;k5a&i?mKO!1dY-b(tk_4W!Z==2i&#JUd)wgogIDWySv|w+^)iJsQ=j@Q(f)l~ zs`8qc?z)8qXO^cd(*Eu7?ZXyxzb~@4BpmGCKbs_5y82ht%U8$xxMM8d)XGk)-v4NC z`J~Sb*R}*Kyc@M9Ja6SLt5tK%tZsNPYF;^4`95W3#ji(gM`HDDxT3cIb+49IzwiF* z!9BH0r{q?g4|e{r*CUtezsR~t?ZnlIW|_?byL@tlqO&Q_H9e{ z&6s{w8OCy%RqB?@W7k)TT6FiM*%p@7;du6IT4m zZ0*y7d(Wo3bzj&Gzopr0P^;L A$p8QV diff --git a/classstdex_1_1parser_1_1basic__url__username__char-members.html b/classstdex_1_1parser_1_1basic__url__username__char-members.html index 971326cf9..a6a4237e6 100644 --- a/classstdex_1_1parser_1_1basic__url__username__char-members.html +++ b/classstdex_1_1parser_1_1basic__url__username__char-members.html @@ -80,19 +80,19 @@ $(function() {

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_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1basic__url__username__char.html b/classstdex_1_1parser_1_1basic__url__username__char.html index 46566c336..26d5b11e6 100644 --- a/classstdex_1_1parser_1_1basic__url__username__char.html +++ b/classstdex_1_1parser_1_1basic__url__username__char.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::basic_url_username_char< T >:
-stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T >
@@ -102,35 +102,35 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

template<class T>
@@ -184,7 +184,7 @@ template<class T >
@@ -194,7 +194,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1basic__url__username__char.png b/classstdex_1_1parser_1_1basic__url__username__char.png index 4a9ec7ed9b9886a85307d153e0ec468ed2ef51f7..f307ac5e6b02a402acf1060b150e80aa24f40f9c 100644 GIT binary patch delta 816 zcmbQj-poEBp`Opv#WAFU@$KB#>lPabG|MW7*8Nw%SEP9|#VPvMX4|_{19dzk&U{ey z`Ij_n*~ut=AC=6r?THd>o@tV8i4#(;aT|D9Onj0pCAlYmmz+vvTs&K|%KfXa_dQQI zb3*)G_}TX{>u>X{dz@Wweb)Tb34;>DHGePH$+rcbxMjxE%9C5a|CZgFo!9$Yq%}7j z{C{HoJf)t^`%gzoR6lEO$x}RAAF_Mnbm!*sny1P8KU{tIOQi4feoyY?)uGH1+pWK@ zEK8BNRgo_7{m(A_cU9^Ib95K{z4UJR=6GXGrGp%kYgryQ-p^mt<8*D?atZE?@9y9K z@SQ$5+4S*=_n%E4Z*yqheNwmnc+~6f)f<0ZKi|2KzkIT@{UqPtSFU+Y`u?>_O=afS z%XKQ1EAm@6UOArocj6QGCsRL)Cr)@`uYK5nXVMuXp2G?!*J$@-&Qi;^WO%?`!pLyi zfT5*q=Zv;Q28ZR^+?Ne_7(9%)4l^|905ve20BS&I)?*h&6YY859O$Kat!jbCBvbje zM2SgLQYG3HJtJj%)_yiyF!5mQW%+rNewW?8r|9V@-=gT*{!620aRXPf+SUiVvgD%I z-)3Kr5(Bd?tooH;e9PMXeErwAz8-VGHixKQEt7Yfn05PJ@RAGPR@>e_Jh4ET_1Ss9 z#mvuN?5ue|@wvj)sxE_D2icCzJ9=QbubofUyQdc(*hWbvOH4ZDz|YtpoV#BoZPWdZ z{hkW@b$49!d3U<5dX=nXTbq6jms?riyt7I<|0maN`gVMG)y=PFUwj$gPA{{cTmN^K zr{Lk2xzmqIN}Sv|drk8B<`DliJxW)%{XW8U>u-nc{&(&*%hFmh`4=B9w~cM*d-nF` ztitGNhwnc5b}MR8wkE&p?lcK!U{wBFW)b}R_vX*<0)wq?`QEy5@ZQIS?5RtBSJ?$k z`setUt!L?zQr5Q_A(Q4^toE-?^$5BmDKY7bX8dUb9_LA$cn%w=XujrJJSAw&(;v)= XefQbU?bvaR0SG)@{an^LB{Ts5u8Wdt delta 833 zcmZo>pTa&Np6{)ozpQhRIvw2F* zZU30%F+K6j1My${XO-9Aua)Wlwsqg$XMHz}Ok!oW{n~fu*nunS>nAFmOy9+|c*5Eo z39d}9zqiz`ef=qRS&-+qVq}Kb*DG;i$9mruF}L-v=g&5O`7Lnuttb=IeYXD-0{)wB zHoG5Qc;}W{ZO!dY(}s=Tx9tBlZQ;t9CH#k_P5kqYtt;a_-phPt`L=k!`Njv84j7y) zo+4TI;nmC9nSm$5UfH~1eD!T>{qyJFzIvy-&G_0sPqO+DfBt0KOJ%NC?5byP@r=BD zG569s0plGH|F2s;Rb~F`r4=5Za(^XAoYt&VzUldCo{{lCU7ksQ=0ZY3$nB8A$rbE9 znX{H%`NVL5{RKBe5GQkkW_-M-aw0>+l$y~h-FweC&S-t^bS zvU`m)SJw%wS`s$zutt#fZ3|bUrFB;`_@jN?4SFu~tz|xc?YYr?<@wD4w@)8>A#E*T z+SNGUu440wjbgsN?*r3%5PD)ePqIYp}Z}VOy6#Y#L+`diHn=R z-c(Jj-|zn?>FWKvl`pfTf4yV)y7KMx%g=o_Na*Fy7Yk2dIiI(&uU4+5O3}FMir3d< z{($X*w)Wcv&(D!eyXpJ7V9n*{7Y^>4Yis;%i_AT>-y7a` zu6|tn{MF*tl9Jh9wl(j5JbQKMqwaTnm6NZy pcszft2Sx-uF!?2xPMH)n&wiE6eICA)&5{g2;OXk;vd$@?2>`DjinRa$ diff --git a/classstdex_1_1parser_1_1http__agent-members.html b/classstdex_1_1parser_1_1http__agent-members.html index 39ab39f16..c0caa369e 100644 --- a/classstdex_1_1parser_1_1http__agent-members.html +++ b/classstdex_1_1parser_1_1http__agent-members.html @@ -80,7 +80,7 @@ $(function() {

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

- + @@ -88,7 +88,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__agent.html b/classstdex_1_1parser_1_1http__agent.html index c6d124338..3a28e23c8 100644 --- a/classstdex_1_1parser_1_1http__agent.html +++ b/classstdex_1_1parser_1_1http__agent.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_agent:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -102,22 +102,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -127,18 +127,18 @@ Public Attributes - - + - - + +

Public Attributes

stdex::interval< size_t > version
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

Test for HTTP agent.

@@ -166,7 +166,7 @@ const std::locale & m_
@@ -216,7 +216,7 @@ const std::locale & m_ @@ -226,7 +226,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__agent.png b/classstdex_1_1parser_1_1http__agent.png index c025b1f8a83f6826c0419720fa492af302fe29eb..03742b69048b1460dc386af941bb3a83ae511c22 100644 GIT binary patch delta 728 zcmV;}0w?{N28jkCiBL{Q4GJ0x0000DNk~Le0002i0000`2m=5B08-R@*^wbXf0Ri? zK~#7F?VahetRM`8o3?7I-~WlP$Az$Y)LG6Qs7%o#LJ0W;!e30&G>s=rBsrQKizIuI zW07PpDzHNKAj#*{a`3X#8;<@EizMHoTUcSX4(s1CaIL3q=Jxe{d;E0NEltzKp}pVs z7h_x<{ce?F1=7j}6v(W^+7@Ece^<6-9hG77AsVP- zSlI#`VV(FpT&;SKG*&B+R^p&MWfXh5{1S)9=Hl5p@>iX$1FY8B+LynXe+l>5ECa>9 zJSSOTx#?*pJoHD>itW1HS+xb4_ZCSW>fM*o2QRn(fwg3WZBLNo2jr_olD){WNU|3> z7D@J^8EcxRX*dDEU+Dn=<7rH+$74vYF|lT<5xEA%@=OQ-{m8KZpcgq70Q4fq0)SrR zSOCzA918$?kz)ZsFLEpZf9OSy1pvLsu>hbKITir)BF6%NUgTH+@RC9ZVLTy7(r9ul zN$N$8B}u*LF4kuK^0zQQw_IH{cC7Fd!}_%*I{oeB2{E$_v?JQJ2nz6@z(!eW{mUqV)-#>G|B0XL50C^-owVs=C>b`!AhcQp@?R{=vWx^QBsmVIAd>7E zQxHk^j36kv2T8t$mV;_64t&jeBd%W*M3N3~7L-=&wEt}j_r7(rj_>cs<8z`OX_{^h z%lkoiGCK0$$r?8!AZc3`l*rN!e<_J{E%%P#%v>CC6P2N*WTI=?Q+X7-rj_Y9BEGj`RiB}nlV4%Q6rE;8*Yg03%^EK_4H3DH=`Cs%I=k!wH&I4gmVb z6a)Z0V+sO*o-qXhK+l+he*mCoOhEw9Go~N_=owQG0Q8J02mpG<6a)Z0V+sO*o-qXh zK+l+h0N@p*l+s8*lB97k1xZrRn1Up!XFMh7F#Yxx6hBY7x@G)l1*K2+{cm%;_btsj zzP}%jE#7LxnC_pAye<`Swe@UgeL>b41rZ|$M zhqy1OoRJWu55;!#Dm&?;j#Et<^N^&6c;?7i-`iThis is the complete list of members for stdex::parser::http_any_type, including all inherited members.

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index b3654a3fe..556110222 100644 --- a/classstdex_1_1parser_1_1http__any__type.html +++ b/classstdex_1_1parser_1_1http__any__type.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::http_any_type:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -99,34 +99,34 @@ Inheritance diagram for stdex::parser::http_any_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)
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 

Detailed Description

Test for HTTP any type.

@@ -177,7 +177,7 @@ const std::locale & m_
@@ -187,7 +187,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__any__type.png b/classstdex_1_1parser_1_1http__any__type.png index 60dd77744fafccb967a135fa362d3816184bd7fa..4adb0246b4e71c7f983f1a8f912c611093839dce 100644 GIT binary patch delta 754 zcmdnUwwO(^Gr-TCmrII^fq{Y7)59eQNM8fu01jp#8FZ!k=0rvN`gNWzjv*C{Z|A-) zdac0IGX1Mh+Wr5X{mID=F)-vbX)H2nnP}rHfJVIe4-H*p<>x( zq?4|v@^elWUtHO*hQ<6z6Q4wX5tw#+?cJZ{J~r=z&8z?ae53!pantgwDvO@;{J*&k z=k@K|=Cx5qayEO>lFWza+Go`FJhe?*VBjOR>A8N~qTQ=Pi;_1w@m%#(TVW7YspZ?7 zKij9aK9b>UrR5CYLn5#Ltxk?rE)2UBZ0cJxJtF?6_vCF6&41P!-r17!q;s-<;lBP> z*Tz({1+7;=Gqd88K!T;4lT2vwDIVg-E%}W1ODbsObLGfPvY-`<8RG3^mRQbZc?dt$lmTz zB%-S`Nye4CTgCli-`3pQW^)-H1n*)zP%}&Tb=mAm*?w#0X1T5N+!&_H(onc%149B( zJ%fZRH#dXZ#Y0RDfha=tSj50W)1S;K{>>)_v-C_pB5~=IC;iA`Dq6FdtMaOm&I`@?^CXxu5$J2!J?oX zxf7ntTCLB|1%|g@*V&v~PjC2{?!GNmKW#}&t?1Zoi&@LL|pfnGxb}^M!)3bz$HF%tw00yC68r3z3}{ZL_`hu>JLd9YubCACP`Jj z%DFiyP$zBYp3pU~ZoW#``!Xl?Wyso=>()u7T*=#no<-OBtPDA{LsjjS%Fg>CoT@7q zr+YjvpB6kRlXZ=X>DSv4&)wHBPV8Cwf6|qU_wTH=dgi`S<>mRzM9)jW^ft+)t4!zl doY{W=8DbeXGkAVUy#-9h44$rjF6*2UngC(JX3PKp delta 768 zcmZ3?wvkP-Gr-TCmrII^fq{Y7)59eQNM8Wr01jp#8Gnj<-b6+F`aPa5jv*C{Z|5dX z-mJjWGQIR!+W-Ihb!(L-G<=P^|JqPScAHjZ%U0Ey8q0(C?p|R##;{V%f@4hdcy|uo+Z~AeEyO&Mw$~=26 z@u4H5$=ZKup)vEMRBwmIGrIMQST1cT5udDmtfpUb1<&aTJSMu8r>5sz-=dYLGoe3G zeP+p}jK?d@O!u8-(`vf8LeE!xTi5j5x6`zfZR&CtB&(d)s-Cq>?W52M=@ft02fu88 zRajo!r12y7QT*!o-KQ2Y8Fg1|bF!=WRIsHRkpJj&aRE}C_n0Y2_?wlE>xuH8_Zut~^=3A{b{cZ^Ny+3>tpRCNQpX>2y z`B!O&+b7M_=c)Xk{O=3b#FX!|98_*@Rul02wnj7~a$2ea;{o?CtPIMTCJWZDKiJ{M z994NtNs2Ec%#z_nv@i!l)ioBT24D~}EJ&~SRbY4#i7JL&sKQ;b#bAIansZ2uOiESZ&y0&-Dvi` z`uRc=A?p|&&#V`c0TYV4H5`p}@47y!Pdf9RMbmt9Kzp+F)ip0}ZcveoWr*x|on$uk zliAr-#=!x3daJF@c>d>Iu!Z@Oc31RbHY>MJYc@R>$}l$*yK43^(j&-O-1Xp&Y?XQQ4-~kT-u}@@JFPcOKe?&ofC|JtzKI zu2pFj6xZ8{Xgl8kLy$np$44$rjF6*2UngGC$Tj>A* diff --git a/classstdex_1_1parser_1_1http__asterisk-members.html b/classstdex_1_1parser_1_1http__asterisk-members.html index 77a9c9921..0c9efa616 100644 --- a/classstdex_1_1parser_1_1http__asterisk-members.html +++ b/classstdex_1_1parser_1_1http__asterisk-members.html @@ -80,12 +80,12 @@ $(function() {

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

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index 9f1690af0..cd8e78863 100644 --- a/classstdex_1_1parser_1_1http__asterisk.html +++ b/classstdex_1_1parser_1_1http__asterisk.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::http_asterisk:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -99,34 +99,34 @@ Inheritance diagram for stdex::parser::http_asterisk: 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 

Detailed Description

Test for HTTP asterisk.

@@ -177,7 +177,7 @@ const std::locale & m_
@@ -187,7 +187,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__asterisk.png b/classstdex_1_1parser_1_1http__asterisk.png index 75c3ff4954c2f903eb70ebee512160ffa4741c64..484fa430804c96bcaca601886431435a9b0a0e6f 100644 GIT binary patch delta 740 zcmZ3?HkD1WGr-TCmrII^fq{Y7)59eQNM8fu01jp#8FZ!k=0rvN`URdYjv*C{Z|A=3 zd!oS8(%p4s)%W^GzRw?|Ih{`_yFM{Gq`g3*K4H%Oh-s;n^EOO)a`{PwN~UX{>!h%d z#MVcSlkNwfKhWP>m+(SAY2p*zUmV(N79ak%-S^Jxoin%A*4xXy@7uQ2y2Nt5%>tuyyTD_5VrE0yr|-L=X;ck6vB z)=e`Cc%xk$RJ2B>Y9?p`4Sef-5#gJr21K%B=#2KDQ`%`cF>woFr;FO(pW8%{9Y!$9GS7Qz8MF1 zE3>8pp55nBRHm zrNWtw+kU)EnroXGcCV;&s`NSWQ{O+@tvS_sZt42-8zl`}LuHCgEwlIQb6A(J_L01r zx}rR(!?b+6)!RuX*Vr9zoNxIkcYKfd?^8Yz@;}X%PUbu>6P0qvh9iB_pFic^ldRf) zt(zDvHhqcLf7WaN1a}Kx^!J{$=EO#olU*`EM#fPt#g^kQ`OiPu+&Zs21M3N3)EGRv^)Any&xINo25Bv7M|2!vZOVf1? zSl)NSgVB+PNY=TT0ZBWuphT9je@jWE8~JHZ&df!No2VQuB@^Aqk;+f;YkHXnFDP>O zMJ}B@+jy&8U2IoChRm~uGy`qLSA2cRS&rvlThK96R#{8a)g^8PMTZi}5ZC({`AVX; zDa0~~+ZxZV@~8y4Lp(d7NS-5|o={y8jT1^_8F`U!3Za7I9@z9=y+a|*e^5PcE@dA(A}B%U>sw{A&D!p!MdvJ5Q2t z!mmCdlI$K+5J~ooDTpL{#zWAuEXzOufN#ME0E~pu1buuArf4)l4?SZk8cxvcasbdb zrXT?58B-7d^o%J80D8t0e*^$MV+sO*o-qXhK+l+h0H9|~K>*M*rXT?58B-7d^o%J8 z0D8t01OT5wN-2#5BuN?vQ;;O}j44Qxdd5vbyVJ|!OPs%l3bXn3I)VQ~(53xf1f?hY z_HT{1J=^FH`}V&7toc?JWoH79PsKjwRd%wGb;vI(v_#H+S#$SF&I($qr77r`DXXmIQjiU7 ziR=!(Lr|b^TThis is the complete list of members for stdex::parser::http_cookie, including all inherited members.

- + @@ -90,7 +90,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__cookie.html b/classstdex_1_1parser_1_1http__cookie.html index 60abd6c97..12082b353 100644 --- a/classstdex_1_1parser_1_1http__cookie.html +++ b/classstdex_1_1parser_1_1http__cookie.html @@ -93,7 +93,7 @@ Inheritance diagram for stdex::parser::http_cookie:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -103,22 +103,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -134,21 +134,21 @@ Public Attributes std::list< http_cookie_parameter >  - - + - - + +

Public Attributes

params
 List of cookie parameters.
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Protected Attributes

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

Detailed Description

Test for HTTP cookie (RFC2109)

@@ -176,7 +176,7 @@ const std::locale & m_
@@ -226,7 +226,7 @@ const std::locale & m_ @@ -236,7 +236,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__cookie.png b/classstdex_1_1parser_1_1http__cookie.png index fe910cfd07c902fb659a02343b31c4c66b733529..16a99943516990c0afe7dadb7d1359e142f2b852 100644 GIT binary patch delta 724 zcmbQj*2<>X8Q|y6%O%Cdz`(%k>ERLtq^|*S00%RW47yT%bE2Ys{RB@J$B+ufw{u@l zTBE?zGJ9Lrs{8*t`?a;g-P23U{a5&0YMomnfxI{EG zV&MvpPt~t1cf9?=?7qLlbyEKe3RU?TW0AzZ+Cy(st8n-cRq)qU&2v$$71*<-6;6bji1S=c2Qt ze(3RE-nl=E>2INFL?uV@n)UJW*{?kpf10)~^V#mBRnPV9x15!_5_q}f^OQjOIaQsn zYjbp@)+90aZSeae`!1~7&1$#kiI8uOsi#()E7>d5e*M{_yH=mB-&xDN=HA^~+xFMb z=G>m4$^5o9)z3><+t=Ut;X?aKE0+Xsx6JNy_`ch9QhU{}brCkfZZJ1QDs5`>ZE0tTZbx+E{ z?WGo3oIzSgm#H3i4c+Hmf2lh5_^YF*#jUt^elNRsYNvUyu5HfMGM#zHy5@a$c>OVB zWc#jpMqQpIdbNA|dyn$2(ORRj_xjr1q04$+sa@4B>?nPjS32Ec z65p4bif_^n>85zaRmacde61Vb7IV7gcAxERPSuw#_rHD)sqtL-M?d1D@;3>sMenDn qL{3choFr-qWL)eKb>cYuQr>0C7UtVKzi|T-Dubu1pUXO@geCx{a#>yg delta 739 zcmZo=o5H5p8Q|y6%O%Cdz`(%k>ERLtq%Qz*00%RWj6cOaZ=#}o{d`Xs$B+ufx3O<0 zJyzfmKIP;7{{NBb&zLtXyc=`-?&qSC0M7#vVr=^F^Nr*VGkDYbUP;EGHK#N z7S+oWpJczV%sBSv!1XoakA68is$_mR+jJ>w?zjE95C6sNjy(ST`{LdHTa;rjpG~Z^ z=kRxPerI#_*j)~fYr5QCDVgo{Q(R_Eo8R|fm8E@>n$+Q0lRB5B`Y+Wki(UQdAlE0E zvWcAP=gaOz1wXzmv!LtDrdd`9=E6;_^6`EoCHgspuEuNh>4=+0FiA z`$N2G+wA;zHlB4H|4Z9EjBJ)EOzP>;>`+lo7TuzA+DL%mfqMaS!$gBw3vTBcxGv_5 z`r5NJ!@_a%DMp7JA4diO$zTBnmt!I<3=<7m>lqzV(8aI`9nkjBTspBq#q)6j*Q6yU zW;Cg28m;5DdUNku{GXWOthBS zCqBJ-Zg%f3&P!DmyFY8x_+5Cnd6@;Dv-XQQnyX(;G-s7vr}ENJPmI<1{?2Q5<-JFx zn`G9i*dBacenO13Jo%5DjY!E;zS5)KLHzZFPkx2IQ_*hKJbzQ``Q<&jJHwuy)2Ur` z%JY)AWyRH#?k7~IiaA~Q7x=4Z$4o`ft{zQ~NlM8eZ$_{#opQThis is the complete list of members for stdex::parser::http_cookie_parameter, including all inherited members.

- + @@ -89,7 +89,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__cookie__parameter.html b/classstdex_1_1parser_1_1http__cookie__parameter.html index 4ff75a358..9aa9ba9f4 100644 --- a/classstdex_1_1parser_1_1http__cookie__parameter.html +++ b/classstdex_1_1parser_1_1http__cookie__parameter.html @@ -93,7 +93,7 @@ Inheritance diagram for stdex::parser::http_cookie_parameter:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -103,22 +103,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -128,21 +128,21 @@ Public Attributes - - + - - + +

Public Attributes

http_value value
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Protected Attributes

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

Detailed Description

Test for HTTP cookie parameter (RFC2109)

@@ -170,7 +170,7 @@ const std::locale & m_
@@ -220,7 +220,7 @@ const std::locale & m_ @@ -230,7 +230,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__cookie__parameter.png b/classstdex_1_1parser_1_1http__cookie__parameter.png index 84c1f091bf1e9535055bbb74b2eb7f7f316b70de..9e7aeccbe21142b0faaeec235663d8c9518ede56 100644 GIT binary patch delta 742 zcmX@cwu@~-Lj6%s7srqa#<#H#Cw*4nh%q;oz4yO!zloaGiriUW-r31o<@I(Q;Cd9V zb9&PmP8}6XZR-N(l(~mr(bbWjgWa}UAy!2 zt64!u-FpSQShFMRT5&d8wZf48pmP2ID4PG*Stb>wJ!9grS7k7PGw&wp3zNzuyBo6>$}}8D7TwL6m7jEOvyL`6l+{&&X^D}1K{)GcY^&Y8i{qRNkUvAUK-FLQuLOgd~ zxN&PnP28n@DIRZc?#j@bd6sXx&N1GTyAKsUbzLOpQe=Imqh*sQpG^A2*_`!CJ6AqP zJ-X`h<4-%Z|L#5~!BlLpd&<&ln#o{iW!qU$PO#$3;5I-z0JrH+)>9k{4i{_FGI^eCgw(vv)5$?IHW4 zOe=!@+?}o83{7;s1g`q2rR;W+t1jMq>TA4bs6lqY{x|7bPXu?ywd!amebdm?&`$Xr zD=hf((W}SBe=qL(dgrg))*mP4)*QUtt)WyTD2E7=U|~T?UhS;{PBVo5Gn|RuoFZd+ R`V#{Xc)I$ztaD0e0su~nZ1MmA delta 754 zcmV8$76@@n zX!wg|S(Y(@g(OGBltz-hVM-&(-VjMk=0TF*A#%`+`GL=@SL6D%G?Fy~a%Wo(+1fsqyW1voXkP9d#T*C@wgVHQVbKOFL%Ds(K_e zH472By+)F! zxP9A^8UXZ$DGdO6!;}U9yN;S z0O$=<8UXZ$DGdO6!;}U9yVWT zbXDLcihnFENu?b$QmR`Oz_Ax+BS|XFB(FF&58JP|yYavK+*05+X1DUvBF=ilE8098 z^lbcXxS_)1c!X};tCCFf(!v92$o9;)M8`~7Rgc`1w!3=A=#E70yC~{1;T_||M0X%inG1s}kbZ!O-2kZVy%rd>RcafLkAmU>m{lc`{yaR1n^ zRLCQ9XBD!ph$W)zpstYNy(USg`1bPo{?fX2-ThA5cFA45!SjtMNnc`SO_F-UlqN~N kVM>#v-td%`Qc6SOKMV!4YByeXIRF3v07*qoM6N<$f^)TYasU7T diff --git a/classstdex_1_1parser_1_1http__header-members.html b/classstdex_1_1parser_1_1http__header-members.html index b9d2f7575..c0418648b 100644 --- a/classstdex_1_1parser_1_1http__header-members.html +++ b/classstdex_1_1parser_1_1http__header-members.html @@ -80,7 +80,7 @@ $(function() {

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

- + @@ -89,7 +89,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__header.html b/classstdex_1_1parser_1_1http__header.html index 479af56bc..0f0b795d9 100644 --- a/classstdex_1_1parser_1_1http__header.html +++ b/classstdex_1_1parser_1_1http__header.html @@ -93,7 +93,7 @@ Inheritance diagram for stdex::parser::http_header:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -103,22 +103,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -128,21 +128,21 @@ Public Attributes - - + - - + +

Public Attributes

stdex::interval< size_t > value
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Protected Attributes

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

Detailed Description

Test for HTTP header.

@@ -170,7 +170,7 @@ const std::locale & m_
@@ -220,7 +220,7 @@ const std::locale & m_ @@ -230,7 +230,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__header.png b/classstdex_1_1parser_1_1http__header.png index beb24399e6e6c93cbcd67ecf09a02ec0088d5db8..fb179461035049c8790a631c01de8c5fe77f25af 100644 GIT binary patch delta 736 zcmV<60w4XL29X9KiBL{Q4GJ0x0000DNk~Le0002i0000`2m=5B08-R@*^wbXf1F7~ zK~#7F?Vah8;~)@&g_9QdAu$@A&%^~Pg(PQ_W0B-2 zax9V@MFm#KE+qLqwG7@iyr@0VvoUDNEk8m8yl zesPVP(d%9oE0C$|K!MCkyxW&(f7;5LtfA^?UgViyx+J@1FLRS)#WgesWs8cfji_P7!(4?>Ie{I#);mNd%NG`kw_8tavx4ch7*l(VMg+LTcSPWg(Dtk&5&w!fJPe~;Nx28wNY zPD%^QyPjskt{=%%Qq&!0RR}b{TO`@lr$0tN_;LFiSZhYuV}c}qK)zcfIf@*MBu9~B zk>n_PU@gnCOeX;NEqwvNe3}#M>uXA`Ik6s8GjdIe<(Uuw#*t$Iz$kJo02oD%1puSS zu>fEcITiqnBF6%NQRG+ve=v$13jjuuV*$V@ax4HCMUDjkqsXxU;4Os^!hAxIq}k+H zk~E4OOOi&>4XnN6+pi({R90Q@yOaLcSmC*b?Qfl7ySMW_>bK|pvaY(SFUBU`dDmze+vJ&t1C78CdCP=Ado0hwnX$m7rda0{ef8|8w3`do@jiYR1 zddjKGrXp1Bq>^-|>p^H|SmUROb+n{Ww&p5U^tZ858A(z{S5rn69mSztxNoTqfgzZdttS}|7*p_F)a?95tWhRWFY|V;H zC`l)}@!gW7uDmU#l@=QkeKk;+@0lN!M-K6bfC>a#nut>-(>%Ul*Wf=)rNOBxZLnPTV zrXiB-8NpC;7m|DpErO~qc6_dSV_m;!h$J0;*ic%d)Bd+j-0v;T+P^;^mydzEry05t zmght8RCMBj$p$x9K+?8sD3PTde^wIdTE06LXU1ZW8>j-UBokfBOyyGIno;J)8;Tl! zl3Pw5Z9LVXj@u=W5%a2HnL)PFE3rQ1tj5Q$ZRi{+vusZ@)Ggc^iUEbm2-oj1>Xn7s zq7c(0zSg*RRYYaTZQ|7qMe)pZxkGhEGb1_$ znLN!ZcdC^dlgE73DGT$VttwYan-h2Mu&Q!}rrPl4cZeh}@%Gn=B!3$J!_ao}-I*uJ zZ^ED6A(HGK(-2AajA@7@d&X*LS(arW0Kl){0RSUmG((TaV2(yJwE7v#(Qt-ll>>mj zF%1Dg&zOb)pl3`&0MIk0e<1+q8PgB|^o(f;0D8tW1OPo_8UlcxF%1Dg&zOb)pl3`& z0MIk0Apm#KS(p9Z_$)FFY01CHI#^|DvJvp}zlZ-21&% zTKo6sM^1F7bDMWvz(VAYKbJNh0hHoskFmNl3dGohqxJwe?3Vm&25xtF*1Qj zlCE*fP?U(=XP3Fnv+Q7b@_yq`NK7j#Nl$SzEloq`NSS4O?i$McHXkY?NowI% zQK)hu9P9RLG!b9jp^CF6lB5=1Jwv`IgcB3r!KER8hFVD$&yXZN#qE@9SGjX-r7-0& zU*+O9Z&PBG%ZY2rMM9O6q-VJM9g?I=yh`y6(vsxRfua4Q^j+rW4oOnan1&>&XG}wq h)H7B?DWxSbhKi diff --git a/classstdex_1_1parser_1_1http__header__collection.png b/classstdex_1_1parser_1_1http__header__collection.png deleted file mode 100644 index 0b89c27b661b05c735334aa6a3600a9d9b7afa48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/classstdex_1_1parser_1_1http__language-members.html b/classstdex_1_1parser_1_1http__language-members.html index a5d092f15..18f376981 100644 --- a/classstdex_1_1parser_1_1http__language-members.html +++ b/classstdex_1_1parser_1_1http__language-members.html @@ -81,13 +81,13 @@ $(function() {

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 >
intervalstdex::parser::basic_parser< 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 index 37467dcb7..0fc8b49cb 100644 --- a/classstdex_1_1parser_1_1http__language.html +++ b/classstdex_1_1parser_1_1http__language.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_language:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -102,40 +102,40 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

Test for HTTP language (RFC1766)

@@ -163,7 +163,7 @@ const std::locale & m_
@@ -213,7 +213,7 @@ const std::locale & m_ @@ -223,7 +223,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__language.png b/classstdex_1_1parser_1_1http__language.png index b3cc04998bc82155337f34692d340ea284f317b6..f43a86f965637d73aaaeaf4dddaa821ea73954cc 100644 GIT binary patch delta 748 zcmVkGEjXd)gAJLs@mAvFwAqI0&7E~BDe$}R# z?>w2#{S^V&^GdKh2~(`+pN(~l#93*NX`1-1vA*(`CT+C`<*G5%?F4wCWr&PRo(8g-LnIC~~^oiRQJrc(+>qs=L*|vhLP#{AMLQe^!eXD2(Mb zDF&9Co>s!9Ka#PL6YB~d0HgdizXIH_M(YJ zlD%lfT9#!QP5|&zdH}$98WZdB7?NvDtd(j+u0gS8B?N$eG_e4n7fmbx=tUC?0D95H z0)SpLu>hbKO)LQDMH34Ee|pix0)SpLu>hbKO)LQDMH34EdeOuJfRE&ybK?n4l19_S zlB8ZVu_UP%UBcQ;KHh-nr*d`k=KiNx?iqvsw=M18(?HgK|9gLIQCB^QssFHqc@fLo zM}G%@9Lu7Rq?S&woD^GJ#YwS+w|&KAtn6`8Y}uhDz8eeHos!hhe>qm^H-wt*bN(7; z6#K$t@qnl{v&4iFca-O`~LiC*|2BXcN>-@{W(o6N$N!tOOkrg eishVh!|5Lmud;g$5{P&J0000OFRRgMqPt)AWN7lf<2)v9r5F&^mxs(gcCEE7D(yKQ&r{MjC9>2%BTHy~;~vM4A*^}V zFCN$KyykjPUU>hSy7yAuY$tLaUFG}v;O6D0d|TC(ZY*?}HckEJq6dB(;+w7ZhQF_$ z;C*?noV@-n=jRVOSKpCbdu4`A+G;<~Gqc=6*G(}KzOyDV_-WVdw8Mw*D^A*T<@A0( zm7jNi@h*7#Y__%kr2I?s?6Yb;79=WS)uJ-vxXh2e)_EyDp1Dc%>4lMNPK zYzUjTv7?Q7Rwy6CuWKw!4f9MJ85X4bDloi=tQY2Bs6rFNF0^malprZjk4YwdY7(=`Jc5>1CeEm~*{SSLm$(pfU z|DWF{qqI#EmITaaR9(5{k-g{Ar`wgo>P??jPYRiJbH%Cet_QXSPg1(eP}y&JvMTp& z_PnP~zn>O32dcc@`*w=T`rFFs)81Q%>t3)7O1o-%p5g5`!wIt1Hr_!CW-m%O#D4vj zd!EibRxVFH`AH=U|L=F+rm;i%@%0BnFJAHeeEsO%yXd}{n5XCNc=?`A-gfF|?!9G4 zLf>@+1&D9Sdh=CF-P8Qnt0(HuTGhUPt`p7pAIMeHa{Se^HDC8S8$Mf}{?^uE(v|6O ie`m9LX)bO2!e1h{R`b?!$MeAC%;4$j=d#Wzp$PyYVQIbq diff --git a/classstdex_1_1parser_1_1http__line__break-members.html b/classstdex_1_1parser_1_1http__line__break-members.html index 76c36e540..8c54a2be9 100644 --- a/classstdex_1_1parser_1_1http__line__break-members.html +++ b/classstdex_1_1parser_1_1http__line__break-members.html @@ -80,12 +80,12 @@ $(function() {

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

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index 3fa616262..a9b647da9 100644 --- a/classstdex_1_1parser_1_1http__line__break.html +++ b/classstdex_1_1parser_1_1http__line__break.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::http_line_break:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -99,34 +99,34 @@ Inheritance diagram for stdex::parser::http_line_break: 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 

Detailed Description

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

@@ -177,7 +177,7 @@ const std::locale & m_
@@ -187,7 +187,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__line__break.png b/classstdex_1_1parser_1_1http__line__break.png index 8559b77086ebe00e257a0dfe09f8f49b62deff9a..fc51c7500e7cf52905ec016848a3270917c5c6da 100644 GIT binary patch delta 756 zcmVOzvQ$uoG{^a-P1#3IQb(NkFI);s0Dbzr`?Hn;lxyj|`MeU007H7w6h z`|WGYM(4dORw7H;fD&1i{cc;Le`#xLs)nwkd68FsaLfW@X(KBDJAM2W?cxl-z}0n)K7nmKKOC_3#>IGY%xKSA5iQTNsgkxBFRw{ zSR^@$Zdl8*EYk@9eoJ2fFrVhc`uduZYfh{i)r?$|VnrqdfN>O905FOI3jjt@U;)4= z3M>E^MS%qXqbRTdU=#%we*lc4zyg3#6j%T-iUJD&Mp0k^z$gkV0C-C&r8J+ABxyDU zmL!d$z>=g@dD*HH#+ITe+WM|XiWQ)(Sl2pp(lBBBacN@29Yip8JO0_80f6KgCdo`D{4LQeZ zjLHckSLRy=y(0-BU@bbQy$p!Zm(etVc^3Wow?p+D1B9`~2I%kR)Fh zDWiLjO;ES{*!6gAx9W)L-QNvD=WNv}qd7_K8V|9&v*iY%>uyF!Qm=0Wp`Qu+?6tSm znXrqo?B->{J=VNTN@zT@!C8{O{%%RqpGThhHnNwsJSUz20000*CsE}JqnvqC)dz0{8DR#%qb% zp%B|7zSdZ~PNO5_ig;F`7`%Eqtx(?)Nrej8RyFcNA#`wj2R6NT&rnD+e{@fbmz|+U z^Q2Sm5v|Rby62}(OU$cgQ?89R7u>zWZpt+`UBT1u5J{fm?XMF_em8!D(020OnJ39F z!hc;Mk{lkB5J`@VNr)sz#!6^emgPnOfFHpJ0Ne?8BlPicGe&nKwDP$ZquUXhQw{*e z#v}v)BV!T*fRQl?0l>(Ze}n*FWK2Q;Fft|~02mpQ5CDvfNeBQ&#v}v)BV!T*fRQl? z0l>(ZgaF_blv2u_fFeov!6YO}BV!Vhq>=H2(6RY8>E@?%mC3x7Bn4dTj6g_|GJGwe z@)>>q+wAvy>ur_q&&OrUx04vv{X(yX&6y;mR1)=`pK*DYs5ZQYU*dh9eS zEBQApE)pmQA_ZS=p2`K6eMFqx;EsNRm$Rs^!~XHAyFElIk>tdJy)j7dn6M#dy0Nh4z=R7xo~!XNr?twolc)3^Wt002ovPDHLkV1gnN BWsv{? diff --git a/classstdex_1_1parser_1_1http__media__range-members.html b/classstdex_1_1parser_1_1http__media__range-members.html index 5be7761f3..e5724e890 100644 --- a/classstdex_1_1parser_1_1http__media__range-members.html +++ b/classstdex_1_1parser_1_1http__media__range-members.html @@ -80,7 +80,7 @@ $(function() {

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

- + @@ -89,7 +89,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__media__range.html b/classstdex_1_1parser_1_1http__media__range.html index c4b2c8f26..26d764b44 100644 --- a/classstdex_1_1parser_1_1http__media__range.html +++ b/classstdex_1_1parser_1_1http__media__range.html @@ -93,8 +93,8 @@ Inheritance diagram for stdex::parser::http_media_range:
-stdex::parser::basic_tester< char > -stdex::parser::http_media_type +stdex::parser::basic_parser< char > +stdex::parser::http_media_type
@@ -104,22 +104,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -129,21 +129,21 @@ Public Attributes - - + - - + +

Public Attributes

http_token subtype
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Protected Attributes

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

Detailed Description

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

@@ -171,7 +171,7 @@ const std::locale & m_
@@ -221,7 +221,7 @@ const std::locale & m_ @@ -231,7 +231,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__media__range.png b/classstdex_1_1parser_1_1http__media__range.png index 6d2e1b6a9d134ddcdfe4974309d939c243ebb201..1b8937c5cb9e78f8abed3204ef971dc701813812 100644 GIT binary patch literal 1217 zcmeAS@N?(olHy`uVBq!ia0vp^*MPW#gBeJ!+4*!fkdhAY332`Z|38rV;?396{zJ=|9+pb!!Fz0`~R z9JcykZoAgboo)Hl6Suy3Zc8z-y!-CRms@)(wx|8uwcGTd)ZMj3e-3*^gsm3Mkl$>& zk}b`bU;E(|`IEP@u8F3{a`EhsR6j6>2RwapgaiX&oohrIMFc^Ss`F-01b@ zxRRIg_qWe?zY^PT6l<^kdr$3(AG(vh&tFUAk&i8X+ITm3jY?2-q?^jiZT7k6u14IR z?2={NUdF$+sYm8@?Y$hgg`FLl#%pGo`mQ+TlA2k&HGfsQNZ#$Wby7OjAAenNaoJue z^lE4SAIYSt6Ro_z@9Eom?$YU5Z?rmZB}eXFJn3R?Qt`{%#cy=Z%@51IHSgMo8EUN0 zj@;d(x_GB&tc|fw_4Z$XXWv;Xcig}U~_juVad{_gs7BK+lzo9`3W%5O}T_kW{y^ZCCm^YTvbj!;snk7!g?dgKZw zxWl|OWBnLD=-y>`P_;|#+S@YEb=gU}A>mJUX@rG1F??8jfQbPZhzuVVk-+%jVfp-z z>Rn*`T05zoT&=mm<5D+Mx60lZ4B9j0C)N00J@38Ft!#PHkIfM(nO~eEUdkQ*_5NW| z?KN(lzpsCP``oeXb>K4Z@3l+L+-~o>Z?yAEj%>6=w8Y(ADmSybfNAoSQOc#<`ddu_ z$+`YY*`SEn4vdJ|ljreH4tXm%?dwvfP&F;@*Q;xTZ9f<6Zr$}oK5EXfsK?i%x6J#= zu)60;M z8}46HoVGXm@4vI}!Vdm=kThazU`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#!}`UHThis is the complete list of members for stdex::parser::http_media_type, including all inherited members.

- + @@ -90,7 +90,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__media__type.html b/classstdex_1_1parser_1_1http__media__type.html index 8ea93ea78..2dc2d7084 100644 --- a/classstdex_1_1parser_1_1http__media__type.html +++ b/classstdex_1_1parser_1_1http__media__type.html @@ -92,8 +92,8 @@ Inheritance diagram for stdex::parser::http_media_type:
-stdex::parser::http_media_range -stdex::parser::basic_tester< char > +stdex::parser::http_media_range +stdex::parser::basic_parser< char >
@@ -107,22 +107,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -136,11 +136,11 @@ std::list< - - + - - + +

Public Attributes

http_token subtype
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
@@ -148,10 +148,10 @@ Additional Inherited Members - - - + + +

Additional Inherited Members

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

Detailed Description

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

@@ -239,7 +239,7 @@ const std::locale & m_
diff --git a/classstdex_1_1parser_1_1http__media__type.png b/classstdex_1_1parser_1_1http__media__type.png index c8471667bb25c8f49bf1a64c625b5c56f6a47a50..acee2e98ec87885267b6ca7f63f3b9b0c303f940 100644 GIT binary patch delta 1167 zcmX@XxtCM1Gr-TCmrII^fq{Y7)59eQNM8fu4i07@xn}3n*%KA*>peVO978G?-_CvA z_gaCcrM)xc=im81miTg*O<$H-U3UG1cG~O)!+!@X>No0~Hk!X-!jl{>ok?F79Z>Sr zU$tS@k!&{Zv zzPI_=%dSz7mXuNl`{WzM!;5w832)ucdmzr9Dl zTAGRRPP1$fywX+Ys|3Fnpi>rQ+drK)6f;CTv9VDx8|=}E}nOH zZJm}*^~YNmJYJdkIoW=nXdk=ACMfOYyz3jcMOH;ljL6NiP?R}8=-y~I)lfrv{m;O8z{_@Vv_X)Z38;j-r->}_${%^~?ywkfQ zRDQOLMyR}WZFHR!wRxA*UTpYMLfx8LZlo#yd9$r``UPA)!wZ)5xB_KRz@m4dQ6rn-2Y zKHZ@Lj00N^)3ERLDibfAS$Oxbu7d6HXG`10(a8?xnFh)!T3VmA<>S=j*|{r(RxJ+j291rN`1)sWZJI+V@On zkLFx`C|x`8WbdRG@*z%w6NUF$e{NpC;G~$~#Kt=Q?B5-8e_ts3wZG#;z&gLxn!l8k vVr!dJl|H$P0)rq<1Vn5}0tQ&gFZQ`hZ%3-VytEfs#xQug`njxgN@xNAUD+~6 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`This is the complete list of members for stdex::parser::http_parameter, including all inherited members.

- + @@ -89,7 +89,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__parameter.html b/classstdex_1_1parser_1_1http__parameter.html index 7ebbf6f16..47432a1c6 100644 --- a/classstdex_1_1parser_1_1http__parameter.html +++ b/classstdex_1_1parser_1_1http__parameter.html @@ -93,7 +93,7 @@ Inheritance diagram for stdex::parser::http_parameter:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -103,22 +103,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -130,21 +130,21 @@ Public Attributeshttp_value  - - + - - + +

Public Attributes

value
 Parameter value.
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Protected Attributes

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

Detailed Description

Test for HTTP parameter (RFC2616: parameter)

@@ -172,7 +172,7 @@ const std::locale & m_
@@ -222,7 +222,7 @@ const std::locale & m_ @@ -232,7 +232,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__parameter.png b/classstdex_1_1parser_1_1http__parameter.png index f1fb8e650b178ddbe53854ffd364de1e23d04f78..11da698019623197814b27b197a48305372654b5 100644 GIT binary patch delta 748 zcmV_WKlAKMBMUtb) zu}E?h6kavFRlI)tjvKxyP=g=HvCKX#7Pjy%0 zZG-9Fub4o4TnT1_Fvt4-wXx2YG%BxYcFnwNtSi4fXsb0S-f7pIwZ5%$`^aeUjQ(l=EVB?nv!cytd(j;u1T>x69T|Eax4HCMUDjkqsXxUU=%qP z0E{BX0)SEESO74J918$Of01JWz$kJo02oD%1puSSu>fEcITirCr4T}xPY9AUn;c7$ zMv-Gl(kOZW>*(+{e)4(4>cOG^C06*J!~VA!?)SOHw0Y7v#GoNu$WIBxw{mmL!d$ e6)S`grqe&2in3<&j9-%g00002CW7miBL{Q4GJ0x0000DNk~Le0002c0000`2m=5B0AI=ro{=Fxf4E6R zK~#7F?OoY&10f6(+L@02|BJiX18l=4Y0`tCWUMTQu`Mv>70a?LBLNFZj)O^vBzwjr zM3Oxt5K8VtlCPmCb%)O6 zX;!(@Td6U5&R3lhm{)C8xl-DkbGL_8l`Ced18=@VBzcLqUni3MY5WDD?dH2XPm|ejD*n$eS8eYXf#4ApRpJXM`%_#0O%W& z5CHUyNeBRX#v}v)J!29Ae}JAb2?0RQn1leJXG}r>&@(0>0O%Q$5CHUyNeBRX#v}v) zJ!29AfLD-GN+SVDlE%R#BuPDE5|X5z@rckd`!?%h=M7WOEd5V}(#`w+x0%}8*6=#M z_m9sOZ#806_m?8CyJuzdm^a{vBhMJilB`@4N>Y)-aFU$l*1_1!f5nj`6>$gEwsPq0 zo9TRKElH|ymr%)(wyAT-H1jGuS$aOIODole)`TRfg$F5Tt!>%TBy`S{Rd(cALf%R^ z(%i2sOR{peD8%iF*E*hErSTO)Nm77YaAjGNm9O3*Uli&zxJnEk;@vxRLFl_uu3hC$ z>!m)GdgLlr4C%P$Qdd>ZR<+_KS3O(hB&mT%?~o*2;?<>o-P>=Rq#}PvXn&M09~4P? u0rP|;sb@?=lGHOMAxY{PE1{H98VH{hEv*#BqzOX+0000This is the complete list of members for stdex::parser::http_protocol, including all inherited members.

- + @@ -91,7 +91,7 @@ $(function() {
http_protocol(const std::locale &locale=std::locale()) (defined in stdex::parser::http_protocol)stdex::parser::http_protocolinline
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__protocol.html b/classstdex_1_1parser_1_1http__protocol.html index 02ac48b0e..81ee10cc1 100644 --- a/classstdex_1_1parser_1_1http__protocol.html +++ b/classstdex_1_1parser_1_1http__protocol.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_protocol:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -105,22 +105,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -137,18 +137,18 @@ Public Attributes uint16_t  - - + - - + +

Public Attributes

version
 HTTP protocol version: 0x100 = 1.0, 0x101 = 1.1...
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

Test for HTTP protocol.

@@ -176,7 +176,7 @@ const std::locale & m_
@@ -226,7 +226,7 @@ const std::locale & m_ @@ -236,7 +236,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__protocol.png b/classstdex_1_1parser_1_1http__protocol.png index e7ea37c6220a91a27fe471b6504bc73f2ab8c5c9..938fbb1aa8f2bdb1eb35a7df35d19f639f93f4f7 100644 GIT binary patch delta 706 zcmZo>`^>7?8Q|y6%O%Cdz`(%k>ERLtq^|*S00%RW47yT%bE2YseVwO^V@L(#+qs#O zUMujl%q|OE^}hbm^NPguIWtv0E4gV}-B94P6Z@$@Ej99)u-K$IzJ0Ef!k$E^WV(um zX=qLQGqZ|u9^bEChy5L{lk_ic-*6~P_S^omh4tqSuX+3Xci>&?ThrFP6f@XcZyh)1 zvD}O7)iT->R?0Xu>Uh;yEt^sQ^{TF`d-4q3C!u>nmKMaWezWjMSMdug(aBwV=Wf5Y zr6X2u+3Sj{EWheZBPuzH*Zf}JU;0gD{hp=SvySF%+}AZ-{#F|AtH8@8pQi-M&#CHs zU7MpLwI+$#EkgWb+wQCLCZ5YQg$y9^0-XFE%G`<^sazvgACe0@p8JWj>~eKOn(YffxrIM9Wa zQIB2jfo7|~p&F+NOKv`in3Uq$r|KE@MdMoH*Dq2_Ec#odZpQrj7rUll{^5VykKUgD z`9=2ce{~_Z*UX-FrsV%Nm;G9&-o^b1y~@3zY04=^ktK_cEN`}cy*j#Sir2ee{7Fw<}LadA+)}wL5f+_oWDaxkEJ#Z~v5RJU8#j)a^AA*9sb5 zM7~c>{@57d=%v~h3=B!NtHn}DU*BKjc)hgzwT<6hp9;RYmqOlX8z-WSD_70~lO=mUq-hl#YB_kZG(<^tG|ZPje|SS%IOBw%cR0i3^BmSq`9SV(dlO(2qt ztO-Ptk>!Arxsc?0>N#loe8=;sFXZ)$KqP7OVW6~Hr~Pl6xZl@q*8ctZxI6~hp04TU zusk0D&xj_t^HdvmGay;F43x;ye-4yHnwIa5V+I<-IwTWK%bv=m*mbR{8w=!P z*hwaxJlc6`O^t7}fvR9Os!P*_ZQ>PMyXEQ_k6$0?94WKvp024$yaw_H#ZwiyeUCm~ zNwh8sew+B$>esHZXn@QjUagQ1o;_WzP`e{KE0oC6@+4an+z$5dpib}Ze;IOVy4~aB z_0G__dAe2Zj8tO*1Fku`w; zAhIS90KB7=QW{A}k~EGckR(Oc1d^o4dI{(-xs6`@yyEK0=KHyS4k$gM?|+-8{l50Q z_V3TfWy`nesZ96JMV{xp?96;J(jnf+66NGl60Y0wp{Ic+bvz7bEM3wd%^%+y3W)5+BFuTfRa>N zj$n&|J25_+OQ8N4x&r#4GjwjAZk0QOmJ*c5Y?br*ZBwqQT&ZTCsB)6@MDNbG^KO6R zq5$n5rShqgq+6ORC?rXdHGw24vL=uuMb-+GQc45qA6This 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 >
intervalstdex::parser::basic_parser< 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 index 43cbe6e0a..77bb9163d 100644 --- a/classstdex_1_1parser_1_1http__quoted__string.html +++ b/classstdex_1_1parser_1_1http__quoted__string.html @@ -93,7 +93,7 @@ Inheritance diagram for stdex::parser::http_quoted_string:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -103,22 +103,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -126,21 +126,21 @@ Public Attributesstdex::interval< size_t >  - - + - - + +

Public Attributes

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

Protected Attributes

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

Detailed Description

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

@@ -168,7 +168,7 @@ const std::locale & m_
@@ -218,7 +218,7 @@ const std::locale & m_ @@ -228,7 +228,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__quoted__string.png b/classstdex_1_1parser_1_1http__quoted__string.png index 6c9c7db86326aa5e59a9ee13eab2ec772420a9da..a3b55abed69f831bf78b6d9aeecfab334002bc22 100644 GIT binary patch delta 776 zcmX@kwv$bDi2F3@5!OrE3IjQ9gL#!^WO}Ns-f1Z4wnvUNqV0u}R!lXVM#2 zKJ6LxDnI9CvB}Tgm++-MLglA&6{q%{#fQIbF1s_Ycy{&QZ~OjNn@lmidf}?U-u-XH zpYM>I>;5#N(I=IiYl-H^%=t<6*PdnjI1A3ueKIxv*Yr250&g}S?J8bTW;D5L?bPi? zS1N8FE_wT0E#Uq0gKreiY?P}nU9(vA>#6Kj3ul&hmOh&4L4iI61q*+zF}e$&3V$ISoU+G+8H+odA5?k>%#Hx-tv zU%Zq@25T&I>z+ZA^nJF+Xd_k^j&wKFXY7y8x27``m(WM$Z! zk;LerKP!UaLN~HdJr*&r(1(dm9EmoH9+xs^MNGQVtu{^N>msvjasLfVKUJPO#r9M0 z`0uHq%OfV0EYk|BIFtB0vUgkh?x_A%dsA!gR^6PXQ}TP(k-E$UwJjE2e>xY7PrlXO z%^a4H9pUH&4Esr-unzL+?DeygT&WIu*&eGKZ?vY~BRl>&`V3{^hwYHY;xC zg`P=5ak|1*{~jN+ujNpE>GQtsY}8NBN%yW#Pso+uIOVp=%B418llH`UNdi5qe`~GQ o=h+dHzMMq_i**=>BG2;rEgl=S`mdKI;Vst01F{_WB>pF delta 790 zcmdnVcAQPIGr-TCmrII^fq{Y7)59eQNM8Wr01jp#8Gnj<-b6+F`b(ZJjv*C{Z|A^gTtL8Uh4$^M9Gsgj-%9z`;~3X|SM3U{bf zhcS4)llQzAeA@As94?dm?(N^gp8O}x*x4v2VN4v~d`}2dw zBp&;dODDTa=Wkv4`7PfB&S#6;Oq_3M#cllRe(qSs->r>(6OB%PGx3dmB&H!H;;&Y) zx6d%n^NLt&h0mi+$M&w)(NfsnnQkr8obJEeI%IywF+SBzTWn5>w-z)#mb&r9u70nx z;@N_#q&?SUt@!*mpOU@k)q65|->WG{_GGR;HTBZ7rroA%R>c$s=T>~ScA2#N*N@jO zlkTs*&k&WrZ}(@FpZ#C<-&36QCJq!D*I1NJ&il#|1q>z+h7ZbB3)XVyrL&(_ z_q_bpc;d6y0$ZoPN%civv{u^2@JZAgYA;Zkx^1z_$*q63JWo27Nh`O#fH|CV8DMt_kEYS6g>bGvGI0sQK4Vd{?ctPHx$( zd_8AfQTyYd%b#YfFEZR)>b3gRPK~8Awyug%u+RG@?d~^eUCH;?S8VP~`ZBRjHsiO( z)Lp8c>6^Aq68V}IIAMu)=@w_xx3UVJufl{qCRJSn1This 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
http_request(const std::locale &locale=std::locale()) (defined in stdex::parser::http_request)stdex::parser::http_requestinline
intervalstdex::parser::basic_parser< 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 index ccf6eb697..ca82e2354 100644 --- a/classstdex_1_1parser_1_1http__request.html +++ b/classstdex_1_1parser_1_1http__request.html @@ -93,32 +93,35 @@ Inheritance diagram for stdex::parser::http_request:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
+ + - - - - + + + - - + - - + - - + - +

Public Member Functions

http_request (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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -131,21 +134,21 @@ Public Attributes - - + - - + +

Public Attributes

http_protocol protocol
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Protected Attributes

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

Detailed Description

Test for HTTP request.

@@ -173,7 +176,7 @@ const std::locale & m_
@@ -223,7 +226,7 @@ const std::locale & m_ @@ -233,7 +236,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__request.png b/classstdex_1_1parser_1_1http__request.png index 7f3157c65fda0d2d21b9d942d86ef39b2996bec7..5c0325ea1b6b48cc6f9fb3bdc0326c6f2c04bf72 100644 GIT binary patch delta 736 zcmV<60w4XK29X9KiBL{Q4GJ0x0000DNk~Le0002i0000`2m=5B08-R@*^wbXf1F7~ zK~#7F?Vam#>mUq-m-S3$-~Wk^;|n0biJePZIO?zsMndQ_ApgZQP1AV7M3SS)u}HEP zITlIwq5>}@G#f3|YO7%Io?MLvs{ep0xmSJtsuF^A?PlT@@eo@!SU z+a9Lp@rnf6^GYy#2y?9aUmI(;q*?h$(>04-V?BzOAKL02l&hw6^O8{>obnZy`&fBY zSY`u`u%5&_+^zbIG1QU!`O zTa!{^*7a#6Jd8&&wRGzCVAT<5ez!>SP@n!7eevV=8(2$4*vE?{krZ@-2V=fzMbrv2Ag;hw|#Zwb2g^Cjl-^?CbQvaUul*Y)!f=OtU3 zu~@e?(%9aWq(hy;3Q}qtP>@WEy)BE(R*nQIHM?m=^oUiiC`pfWe-^8Z9#hR+vQwHK z?Nc^lsf#etQel1i5a!XB^V7uIEooLhat>>qVX^WRKUgwM5{*k=?qlU~ZMS0Au6VlA zym7Z|$tZ48`6dprio0d)vGRQ7ZtcgZSqb;0Qr(L-TM5f8U#3)*&{Vx*#Vip?dY}v6 zElE1mt5F`$dpWniHi5N%#OfHGV@Xm=zm6qIe@KocNxjIiB&iq8SRsTkoc;kkY_oox S=C5i10000+ZQEd*^ob^ksZfGr8_7-^7&fh!A1Fuu12%15-o(MRtasB^Mj)?AVm0cwZbe7Q0yB zu=y0D!~Izf3>Sc*$M9thCkumZeKr%L!+BIO>_P`*mrl9l;WTMUp-H34%5+}^&sUM* zjb*E+zwDkrd!1eMH|fSp#=pMhmu~;M_Ve){-}d}p^D|8OSjq3CC#9+D)l{ z!Ye3xKC|k|EwZYf>z>||yI+6i=tPyN&&;(d&N~<`QknZoDB#QN$tG&ge5SeoPjR!! zFPNOJwcxv~}V#K9Iz$DDz M>FVdQ&MBb@0ONjGi~s-t diff --git a/classstdex_1_1parser_1_1http__space-members.html b/classstdex_1_1parser_1_1http__space-members.html index c44a5e0bf..d06f6178b 100644 --- a/classstdex_1_1parser_1_1http__space-members.html +++ b/classstdex_1_1parser_1_1http__space-members.html @@ -80,13 +80,13 @@ $(function() {

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

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index 00da2db0d..14c3fb2b4 100644 --- a/classstdex_1_1parser_1_1http__space.html +++ b/classstdex_1_1parser_1_1http__space.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_space:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -100,40 +100,40 @@ Inheritance diagram for stdex::parser::http_space: 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

Test for HTTP space (RFC2616: LWS)

@@ -184,7 +184,7 @@ Additional Inherited Members
@@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/classstdex_1_1parser_1_1http__space.png b/classstdex_1_1parser_1_1http__space.png index 372678e118e8a24af894a949b060f15a423da84c..0f911eb33e1fd105770259a0bc5f6a6223ff07d4 100644 GIT binary patch delta 713 zcmeBS`^Bo*8Q|y6%O%Cdz`(%k>ERLtq^|*S00%RW47yT%bE2YseXFO7V@L(#+qo|% zJyzgpnOzpT>i+-E>mLukRh;LO7QQB^WP@dkoxrDfozt7nsOzX$&X(y`S$krm$E7Z< zH31QeMJf8BCu7P(z6B(?%I})YwLB^R`C8ei z8+y%|IqQoS*so{PZZmyrivH-=1qLEwC-2(mxKMc?;p5jbVyKGo?(z(pZQ0L9hFvGt%$yP47=xpcKptC1THK(OJF>Fvi&cvWy zq{Fa52`i%>yIh60VvE6i0hLTM%V{c+6O%nBiQYYIb!^{W;gjdu&A!$j=kk~Tw*Tz( zzn1MWx4(a1d}~i$)TV{M#nsN87R$;JovOn7MJsGVkYz(t$dn%?1?j+0o)DzTw>EwC z8kNi?(h+x6H~l>w*1LCZ{q{9Wm#h=ZQvS*uk)GqyzwO7%q`9`4VfTy>SXYA^>bP0l+XkK)R#wM delta 731 zcmV<10wn$V1&jtEiBL{Q4GJ0x0000DNk~Le0002c0000`2m=5B0AI=ro{=Fxf0s!_ zK~#7F?VW3K!ypWVm-S3$?|6&g1 z%l8rRjA(*8PqlG31Cn*iK#45ve?Up3Y5DC)t{U?_W}q>wLo(5{?5RA8UDv95u|PhC zon+F{p$mrBV|_I(=|1T*FfH&c&Y-o>*(W^ zMC+p9kBMJazjuvA17tSw)(-jL+0)G(YEMLGhZ0#@o@9%HJHdVp>hxZ{e?u-!cY1uh z-W@s*Pq)gQ(MpZUW47v)#H?wr%9YY)f}1sLs$6l?YtO*1F zku`w;;3rBcrICarN#ke&Nm67@AW4d>Cx8yamlvS;`NUfOQ=oK>zW>{@*xzfswSWIU z9$UUmPi4CQXykcSpvISZNYZzD2q;OV9VkgMEx#Sa)tK)|QfX$Re|o;`Lz2GLqd;Bf z)tXiD@@VI)>an~oPO+>P;Ta1-cH?$CL7x>fFsUTRSuvsKP-^ETyPl{?Gpd#juz z-O*3I^ya;kQ4FB{F-NJrZj$t*<_<|xWKAGRimVAFNs+YzrIgY@`T}7$uGAvQW}W~5 N002ovPDHLkV1hCgSO)+A diff --git a/classstdex_1_1parser_1_1http__text__char-members.html b/classstdex_1_1parser_1_1http__text__char-members.html index 3c38abfcd..a54cbbcff 100644 --- a/classstdex_1_1parser_1_1http__text__char-members.html +++ b/classstdex_1_1parser_1_1http__text__char-members.html @@ -80,13 +80,13 @@ $(function() {

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

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index bca352579..456b75fdd 100644 --- a/classstdex_1_1parser_1_1http__text__char.html +++ b/classstdex_1_1parser_1_1http__text__char.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_text_char:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -100,40 +100,40 @@ Inheritance diagram for stdex::parser::http_text_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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

Test for HTTP text character (RFC2616: TEXT)

@@ -184,7 +184,7 @@ Additional Inherited Members
@@ -194,7 +194,7 @@ Additional Inherited Members diff --git a/classstdex_1_1parser_1_1http__text__char.png b/classstdex_1_1parser_1_1http__text__char.png index d52a6f782a73ac66ba97556066ece4bcf2c08465..d8a6063765287c27a9ce571f7b0f2e546502e038 100644 GIT binary patch delta 750 zcmV8YiBL{Q4GJ0x0000DNk~Le0002i0000`2m=5B08-R@*^wbXf2v7D zK~#7F?Vagv?H~+9>=gSSneF#1I-lKd7ug_YLcY5%tk+@Gz@TED*^Kc5Y4joWoI%E^e?@@>0HY|d0ALga766Q*zyg3#6j%W8mQqS-J|RicYziz% z8byI6Nu%f?tfR}@A0YcQR&~W~2TAJdKgCL)YuNv7&ik{SXRY7gkDqPTO^xZgUo6+S zW14H89X%3+7V8KP2kUIfqioG1Sk}9X)tE|Bqx+OmEW$bT^*%N| zp4qKpJ`bx60ZD4~(%C9gMiun+m*`^oXRApFRk(a-5c-+$TwzX8Ig=GhtKRZ$NRbIm z#1Z?B1+qw^q(L+rF#_*~Cu^KWK+=vXsE}C7Cy2&?%P{HvX*zle`Lm|vie?5^eJ40vj zq+RZ0Ydxl}`L5Ff^QKvsYputp@3EH-8n+O2#D|i8bnJ}B6mzT*D%_iukXD&t430hqa0LI1= z1OOvr2?BtTu>=9Y$XJ2^e_&)RK>#o^mLLEa8A}iVjEp4+07k|V1OOvr2?BtTu>=9Y z$XJ2^;43Jll$n4cN%LR{lBAKb1WD4!cr55xe_D6*)47Th4-F*g0{=@;d1K%I?mqW> z%W#|DpO4Eu-fqU2?%#^K@1UtX$75JaX(TDZdxDD8#z9vkH|pJ?f7qLnkuCZ=r_62LWfx6s&Q%n&`}Ui18cE9Vu;i?uqZkrF=StgUXFejx`o0v@ zIh7=j2Tj4zC&xPGuCw?|h8$les872jd3^p1`KAzxJHCTULHQZ#j(jMQ?This is the complete list of members for stdex::parser::http_token, including all inherited members.

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index c23a41413..03db0f08a 100644 --- a/classstdex_1_1parser_1_1http__token.html +++ b/classstdex_1_1parser_1_1http__token.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::http_token:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -99,34 +99,34 @@ Inheritance diagram for stdex::parser::http_token: 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 

Detailed Description

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

@@ -177,7 +177,7 @@ const std::locale & m_
@@ -187,7 +187,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__token.png b/classstdex_1_1parser_1_1http__token.png index deeadb55c33ef5f97aa3b2b90c863f6f5c30984a..d84cf52f3755fbe495f0e01432725c16ea7d8101 100644 GIT binary patch delta 718 zcmeBY`_HP_8Q|y6%O%Cdz`(%k>ERLtq^|*S00%RW47yT%bE2YseV3<;V@L(#+qthN ztx@1d+Iz2%hHUS$C%JI;^#%Q9yj6IPof16*4v9K9y5C6)K++p`T@7c$#`~TXg-Ltv*jz&;88zDmHjW<;fMo%j=GQ zwKNms4J%}Dj}ZUI=fC>w#B-UfMq78R(2)%FyPp5(!>vCb@??Kzzq`g5_CD|J@%wA* zTYl%QWIDQYliJb)UYAdMRlMj=$%fL@j}gi#?{kmrdp{JlOt)q2Z&6+O@}qD%WR37+>v(X-=wCWnr)`(qY)3 zbexGn8#|*Ot6al&5hsqvoQ{*+CMSDN61AMB5_vIp&DmdX%P0OZS$FBc>)jS%6~{LG zi#Cgy|M~56P&n%Znk&zI`K!0{^|st^wPi2%PL}k%G_$Txbjg)(yh|r+|FNZY^4Y7( zj$Ugmw%jR?iIDcZ)R~tUT3@{^z<9EbckuQ%smiLQ&7#E%4JR!TzUy-+>AbFG)S6ng zwWr+klGk?cZw+O=xbq7rfXg>lJ=gb~UiCe1s_Noho?mBM9I@IHJ$K3UCEj=a4%MmN zVfHB1KR0#ihQ89sAhDf`gz{eg+k1J^67IdPUNtNJsgHQ={>J#>k4%uyRDfQa2=e3E g2*nnIIsX`^eB0vm@kvKGFo`mFy85}Sb4q9e0P|W^v;Y7A delta 734 zcmey*+Rvug8Q|y6%O%Cdz`(%k>ERLtq%Qz*00%RWj6cOaZ=#}o{VY!x$B+ufx3RbT z-YD=GuQU1dzy9OPFH9;I?#{hEuOqc(IV)42r$_uoozq4_8zwxln9<~6WVB3SQV);1 z#!PlkyY_o*XJ^R&nD>>v?(ZUnNhUuwEZ7pY{BM5rj{VnfuX$Ykzv7Pit%>ViZcBVA z-=e-)vE2IVu~>eOYr5QCDVgo{Q(R_EyU+K0m8E@>n$+Q0lRB3@oqKBWjncKN#I;Wp z-*7!P*XH)it;^E#Cp(DFOfAi`y4AM+#;qx?3{dhu-JKIyAo=F}g0lBlt)JYf zFS+^nXI1$NpLuyxt#5kuo-E$>O62&O%=M?HUP?Q0R?;kVUCw2eJ-=m@PI~Y8Q>t{* z|8YIXt-O6ZKdbyy`}2}xVoHUNql%+-Q<)oX%xGdz00tgIM~@~4gHkdVQ+>k;3^8m%=@Wvylo>rI9XlwZ;yKZf z)iWr?M&*S;?N5$Vc4xy}O9F zpR%={I#DI|QG3&*kXxRrOLslpet2Tmx%z&Ul_tU~s^0IpAnkccv`+8DMp1R`$y(~( z*T1b2T)kaz%H#VIKnXcd%fn?$oU~ue(Oms%Vms^G?)&;DE|#y`+8>+zam9kTGpaAM z_ms2)!`A%R{DVsuoVLE=S?Kvos()$B{!??WEM4~0GWzMB>9>WV5BN;Ap7dK-aMF_e z4{z*D-aq13%lNOc_uzC%MbEAtO^->yV41Y!L*VAGI+ZB KxvX| diff --git a/classstdex_1_1parser_1_1http__url-members.html b/classstdex_1_1parser_1_1http__url-members.html index a75e6d574..ed8332225 100644 --- a/classstdex_1_1parser_1_1http__url-members.html +++ b/classstdex_1_1parser_1_1http__url-members.html @@ -80,17 +80,18 @@ $(function() {

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
http_url(const std::locale &locale=std::locale()) (defined in stdex::parser::http_url)stdex::parser::http_urlinline
intervalstdex::parser::basic_parser< 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 index 8826669e4..949cb564c 100644 --- a/classstdex_1_1parser_1_1http__url.html +++ b/classstdex_1_1parser_1_1http__url.html @@ -92,32 +92,35 @@ Inheritance diagram for stdex::parser::http_url:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
+ + - - - - + + + - - + - - + - - + - +

Public Member Functions

http_url (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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -133,18 +136,18 @@ Public Attributes - - + - - + +

Public Attributes

std::list< http_url_parameterparams
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

Test for HTTP URL.

@@ -172,7 +175,7 @@ const std::locale & m_
@@ -222,7 +225,7 @@ const std::locale & m_ @@ -232,7 +235,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__url.png b/classstdex_1_1parser_1_1http__url.png index 5bc507711934758d3b699b6026d30354f7729f6b..8186f4e44c1cc708c00066f36d2dd45c3b5e5d1e 100644 GIT binary patch delta 687 zcmeyw`hZojGr-TCmrII^fq{Y7)59eQNM8fu01jp#8FZ!k=0rvN`fN`Z$B+ufw{zcK zTCKp-GQD)!=I`}Kk9U2_-G6^xn`ir4F2!e!0{@dDr={8@DxSRgBtj+Awa;}@*p-CV zS5A}GXFhq5yWHR6my(!gor`~B>s6~G`*V}_=-*xQ_haS$81`TD7QTFDU~m6c|EPrQ z-ECSMnP%SR6FISJ>2BL2No(HLuVk}2oTT{v=jrKh@-jm2T#3+Zd$>evg^5+gD_`yV zrABwZUuQ9xcfIMVXGBtLee#-QmGfHFZOdBU%e|hq-zampX~z9ohjqQ(W?Q@!+Wz}S zWJ$zTwmFG+KbG%`uI=L~)1I(%sb}fQjG|q!otKk8Ke%c2`TE?o!fP(xwAxl5!P#HG z{VCU!W3OgSVP5U~KI~9%y-M-v$a0I!;Z>>!=>Eer|neXI;XG&iS?JCji`Cq@yO0hSOwf!x3+$(sU;gS7sOF!jrPqUJ9Lx8eH9c_ArkyIbi=J<6ngR^yCBT55yIUf=x@k)E*390GDzy u%e^P9Ik8dYWS0z(k#UquvE}6#{+a)`md#q<>jO-J44$rjtS;-E5}E*_%0|%u delta 705 zcmaFB`iWJsGr-TCmrII^fq{Y7)59eQNM8Wr01jp#8Gnj<-b6+F`dUvH$B+ufw{zc5 zdab~5v|rs=_TK-_{8{!&8D-nwZkt~CvSOBt;15^T_>DTJjV5oH@WjSTVN%Z;7NwIX ziX4u{czm+#l_{y+_xSe;`xCF59aJ*Eq%GJKHT`e?>>c;F=Uw~v_vel~?7!wMeEBS3 zet$!{i}0PwtloCX2|3ZMT1&RoGcTR6?CNgiooQ#j&uBcif%l}-Rc%oN0@9nZ(}En|JG$?)76k{vUIA-f=Fgx^0=-N3j#qE0(Jj z{Fke>@!g`!RX6*`^;g%|ZGO>kMk#LX1pYYN*mVK>mD#jIJaS7X>2l?<|1Q6RUts| zV%Y)_!OO4iI^OB|IZtWPS)D2M#$tj$XUef(vVAnEWaW(OckE4Vr){7A>znR%rrh1B z93_1()@)PfnZRvtajovHRd;}ct4s9RLt?DuNq?+&uzX5iq4%79+npV!=I+e&U7ft` z)X&s=%Wi0e|E+&wt)f)4GX3x0Ai0YT-}*0cTR!FL>~INVf)UraLcBD^gmy85}Sb4q9e0Jl0yWdHyG diff --git a/classstdex_1_1parser_1_1http__url__parameter-members.html b/classstdex_1_1parser_1_1http__url__parameter-members.html index 946ce3368..7190f9b43 100644 --- a/classstdex_1_1parser_1_1http__url__parameter-members.html +++ b/classstdex_1_1parser_1_1http__url__parameter-members.html @@ -80,7 +80,7 @@ $(function() {

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

- + @@ -88,7 +88,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__url__parameter.html b/classstdex_1_1parser_1_1http__url__parameter.html index 6704601be..ab6050b99 100644 --- a/classstdex_1_1parser_1_1http__url__parameter.html +++ b/classstdex_1_1parser_1_1http__url__parameter.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_url_parameter:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -102,22 +102,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -127,18 +127,18 @@ Public Attributes - - + - - + +

Public Attributes

stdex::interval< size_t > value
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

Test for HTTP URL parameter.

@@ -166,7 +166,7 @@ const std::locale & m_
@@ -216,7 +216,7 @@ const std::locale & m_ @@ -226,7 +226,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__url__parameter.png b/classstdex_1_1parser_1_1http__url__parameter.png index 9f91fec200311f0aca4fcf7e738dd6a6764ad6a5..11e7915ebf32c654eb49ef7b768c4da4a6673575 100644 GIT binary patch delta 755 zcmV>vz;hly0p`#l_C8NsedL@R(=8I=* zY)#66S<|PLaOjU@ZaM2NXH5!p?=6xX>bozaAH3ZD0_&&*c9c$aRZ8-tJZ|MU7*3+6;A0JC{t%`CK~M`_K3Ib41G zPG$3v@5?U6QG{51Z-^D7+@hl(nUSiONH0oJ=o*sp|_w_L4qbu#s<4j~?Q zbG9%4)jITi$7*>wNi0G%>;3fJlBA*Dz0JNd@AggkS6JsI*5rP=+a&3(e77WN7CDwA l%_7H=q*=6Mg%HAW`Uh>Tu}4gVn%DpU002ovPDHLkV1fa@cAo$M delta 768 zcmZ3&wvkP-Gr-TCmrII^fq{Y7)59eQNM8Wr01jp#8Gnj<-b6+F`aPa5jv*C{Z)0;W z-&WueJ{5cZ|9^3PUxsAoUF&XM{wZO5Mdet8nEo^EZMnD8n9L^4VfPmBbUP;GGHK#N z7S+!RC(j#jUAVdD;rBK9PrkZ3s$_mR+;r*P+;jVrAN;)6cJuA?@;V#qs?!&~a;&&N zbAy3Yk@(6|xip7OxuF3{TT?abJ5AQ^d-`OSUB030++^>QE|;@ZYFFI9u)1<%lTEv9 z%B7Wio7dmFdc;h6h2rKldcN+rKdxMVw@CN+XLGTTs*;dw$z8LKL_6MdR5m^G*QUzO zcZ)7p-RvKkU$d`QmNcDFid#EDef>ne@D=w3n?=2rY_mEc#=5=vugsR0cWs^Ze7DzE z+uVP_GxeYJQ@&c^ef>YwY{E|VT^WSN+fqT{F{DY<(=?(J=zz>q!2%#d~{r%A5=q{vydjO)hJ z7rkUztHsW+aU%<(15ho4fTXtogUc}?7KVxSSi~@e<|{0nlEyTt$2~jeZ5m&=>$bAy82#h9`f{(Gvv||Ln$x|jV>%a4_0aBL={wIx zKBKrQ%)7>%dGU>%Lem<2yV91$-*Hw_n*QTUSylR-x3k~>ZaU|^(t7*XbwYwWTemtX tDNWqS(%AtFITa-#V0cdnn#Hl7!9;QO*S3`teghLVgQu&X%Q~loCIC?UVuAnw diff --git a/classstdex_1_1parser_1_1http__url__path-members.html b/classstdex_1_1parser_1_1http__url__path-members.html index 9e426e762..1b9b0b8e2 100644 --- a/classstdex_1_1parser_1_1http__url__path-members.html +++ b/classstdex_1_1parser_1_1http__url__path-members.html @@ -80,14 +80,14 @@ $(function() {

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

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index 3dffcbb0d..e3679c4f4 100644 --- a/classstdex_1_1parser_1_1http__url__path.html +++ b/classstdex_1_1parser_1_1http__url__path.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_url_path:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -102,22 +102,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -125,18 +125,18 @@ Public Attributes std::vector< http_url_path_segment >  - - + - - + +

Public Attributes

segments
 Path segments.
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

Test for HTTP URL path segment.

@@ -164,7 +164,7 @@ const std::locale & m_
@@ -214,7 +214,7 @@ const std::locale & m_ @@ -224,7 +224,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__url__path.png b/classstdex_1_1parser_1_1http__url__path.png index 4a0a7618c8b66b4743a2e7f341ec18677b969ddc..96eecea41034cb631a5881be462fe203f50aee6b 100644 GIT binary patch delta 728 zcmV;}0w?{O28jkCiBL{Q4GJ0x0000DNk~Le0002i0000`2m=5B08-R@*^wbXf0Ri? zK~#7F?VanAs~`}Bo3<*|@BhTdcmoEACT4dJ)THRBFw^pJ^Dm}pn#L0*k{nHrMUuV9 zu}HEP8LW_9Nb)n)3~rmgVf2ewB>5G+g%#%Lu>LKH>wRi7*RRjp<=IfyR6`fT`24ot z(Z|*3bySKK$XGU@KxXB*+q#&vf7zO>p$JR{^2{$@qFpsAxyiAPK2(#kP93e4r!qA2 z&KJ|UpXoq7&w}NPFvWWQ>R5YA%t~vjp^0~i^~x_@w8a?Mx5nhbKITir)BF6%NTM8kB@q{2rqsg%( zsTVnxB=w@JSX?XtYRs7XTCZ_AMvQC7up z<6S06Qbp%jL5gJq3Q|^%yNx?(vo%4AB^!JboDORC)+;l12`kRNf9a~}P&VY{Q&N*t zm#Ho9B1w`ey0{2atY!UFvG$gjmDb$DTAjX#WjayW^mZPLi2GPs-j^0(WpCw2hS^C) z7g|_$Zyi(nYHxjY5!O$_{Y~+-I@ERLtq%Qz*00%RWj6cOaZ=#}o{W4D%$B+ufw{u_T zy;cxtY2PSv_P6~<&zi=&tmc7t%w)WdnwY(5?LYlXe_Cp!n~>Nf8F%3hmFjCON+;)u zHca}hc=G!du7Iyc`<_R}&$zD7G;zsge&(gSOK<&K+jo02Z}I#4_rA|R?r`_ANi6fU z@3s#oUR33uxTdg}O(plVL#IxCuDj=w?4OzQ=SX(j<}EPVqB-+LR9{G4SM23eHWdqI z9Jb#1^2xes^!@cp*w|^-TLsXyhFvm^yh1r zN%m{~8P=NLzgs!!kJ{gtvPvi4nKpWCO7~Tm^d_==L2Bf*Miz$si=-KPmRxMe+kUXa zjd|DS9#<2Y3u}rPE^Jp5VED3zlZC-Hn~BlkeElp3h6|ff#jp!~=nL}7R8jQ2WHHNO z(v{6>6I8ygnch$~`Sc6bbJG`|W1Ii;ukV5{9h?3}FU~!0_I7W5_5J#5dqVpS@7jsq zT$$yepF}GaL+oD}-{L5cj2HbpYaMD0@ z`yT%Q=XF+#aR}KW!UQaE=XQdadTd_L-dk-My{9A*R9^grWVSc_!(This is the complete list of members for stdex::parser::http_url_path_segment, including all inherited members.

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index f98046db0..ff8d84d5f 100644 --- a/classstdex_1_1parser_1_1http__url__path__segment.html +++ b/classstdex_1_1parser_1_1http__url__path__segment.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::http_url_path_segment:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -99,34 +99,34 @@ Inheritance diagram for stdex::parser::http_url_path_segment: 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 

Detailed Description

Test for HTTP URL path segment.

@@ -177,7 +177,7 @@ const std::locale & m_
@@ -187,7 +187,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__url__path__segment.png b/classstdex_1_1parser_1_1http__url__path__segment.png index b5b41d7d8cdfd51f80cd267e99093b943067e78d..e81424237f7ee12dfa74c5ceb49199d21f9a11c9 100644 GIT binary patch delta 744 zcmV2M%A0NNWelLSX05hA=1G|XV-LZI1nmd-rQcgFUJlxs#Ytg+vU%X?zc;Sw9 zz}k20I0VhCcz=vnveDUR^HZ6cHNDJ=-FPHRDQE8p7LGyZJ4TXS{q)D_H$Qg&1?-s{ z_H#j!zoE5bBsr267)g$#1xAu1=>fKF+cu#9;Lr2{05fVzfqwzONLpY3Fp?G+0F0ys1^^>z zfdRlsT3`V1u2M>AMj=Vkd|F_VG?EsWB#k5owpZSUEpc9k>UCcENm5V8(DQ?(&uIDY z*_q$#;UDd}zCWJhhnC7Te^5@pGH_Ngcd?_B8z&Ea^5^DrObeEzQg)9dnR34EO0g*Iw+Vlb@Q8Up>N6H2nJp zx7PZwJ-q6c_rP+b;AF-LV7}QWkHGJ)vER#J@jjUGvkAn^NlB)-5Z8CiCJ%R`!X$cN z;kq;&!Y%UgS~u{;41Bxxi)z*0(S aLj40p(XpJ)T@ADV0000oQeYr|oAat4M0dYIM zbMZO1x1H6?4kW$UN> z?_>D6lXv^}=ifhnd(ojAds#W5)?PSH(zi%_rRlrA29>!y5lXM?OO;eF#XNl}lXCfa zw2!+%PO#C%7}cP?p}W_Ge!jr|dFPtVl3_33?r{wkzI{H`Kx3a?X+4YWmK~zEWBTLe z-@IBGm+O7~3d5F!dkfr*oWFj4`T1t!uSXBJ_s>t;KkcAW!%Ww`(T4N)xa^AExWjqg z8la7#b8DCYJJB4{ET|(b+>)(?r%0O%UzWhx@Xh1Ss}l2rmkY%vTX0F2=9fS zdC!bOj!LQJG%UYwIBCz-_R4gaK10<9E_O{&F0Sq5Z z|1uotnI-z>d3w;M$b)6;EKe?DjSdxLIChDNxnbg#0}Kf&x&{mqp4|033~uORScU9D zy)@5isCdru=k}Qd)G~R=#3u*NP47?4p0j-6JFEDgo|opXyYjhtsr!~c;4(_*F#;~Decj|6|*HT;$>sbj}(T(_-ZhN0%k7`-E}jnlf@tpgJU z$`c;$D3Lj&`RQYo`iI`NH`eEOg*Qaa&T=#gz4+Yf{C53(pPV=~?|%t?as{jJ@Y4siLEg{&-BfYMn62q(^LqO79X@ iHBaSCc5lt4oL||SS~e~UN?fMK00f?{elF{r5}E+>&2$(5 diff --git a/classstdex_1_1parser_1_1http__url__port-members.html b/classstdex_1_1parser_1_1http__url__port-members.html index 9c6d419e3..828b1c396 100644 --- a/classstdex_1_1parser_1_1http__url__port-members.html +++ b/classstdex_1_1parser_1_1http__url__port-members.html @@ -81,14 +81,14 @@ $(function() {

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 >
intervalstdex::parser::basic_parser< 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 index 4c777c628..f6682d4ea 100644 --- a/classstdex_1_1parser_1_1http__url__port.html +++ b/classstdex_1_1parser_1_1http__url__port.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_url_port:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -105,40 +105,40 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

Test for HTTP URL port.

@@ -166,7 +166,7 @@ const std::locale & m_
@@ -216,7 +216,7 @@ const std::locale & m_ @@ -226,7 +226,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__url__port.png b/classstdex_1_1parser_1_1http__url__port.png index 5486bb5c46bb481cfea06afb782ec579b794f6e0..8d61a288543f979993659261ffb92b03f28e74a4 100644 GIT binary patch delta 719 zcmbQh*1)FN8Q|y6%O%Cdz`(%k>ERLtq^|*S00%RW47yT%bE2YseYdBJV@L(#+qtj% zRvYlNs5gh4{cZnoA#0JpxBl+v=Q~b`c*s1~FFX^kb9&PmbsZJU*)rWKYfo(SxYVV! zCLqS+lj&EPJ#W8oy6^9Bog{xTI3jT?-|hRkkILrnj{Lp-`QIYhjOty>%-di7%&a#& zcJ^ZJY8mYbE8jXa>O}3i?R=*G*sFO-3k=VQeVVwx#Pi**u$#V}qRB7(w3@mW&s~0P z%ZFIC%gObj41X(4BWAW(Ui*6exRu+bHG7t4&-$6S@!ikUlea}S|5~egXHUwN&S3q* zz5Tte&7nC5I9@mIf0(z`^3u(<4$H*Ur>ZVK^|DH}?fA1NH>G}NpS#Aex_n#T+xKDh zhaTsyWIDQWliJb)UYFaa7QE? z7p;=%+UGhc>`4TWp?z(W&gl}ShWnRT8J=C96EXetl$heAwIRkuzFkkJ3NXAmv610G zmkc+<8tjaE>~i;lI26yQvv|((?Njvx+B7M}b@|4!&D+Hlf9`z!>g&P(vf44pH~!_x zZU24e|E>MD@25v!@%2yJRU7kYkI36)Dfd3_z3+L+Lw!Tjlv{ivOBNm7J=a=#b#>E} zsEwIZ3-_&9?CAOGrA*kVS@o}2LmiGz+U_6eFPUw<)qJ6`hNtaZ-$OFl=bQMh8BR)j zY8&4c%6ifA%iQqkV(}fKORhZPJ~b)uY5iUy=QY1_j;@uRzm{J;aleqgTe~DWM4f(nMPk delta 735 zcmV<50wDc>29O3JiBL{Q4GJ0x0000DNk~Le0002c0000`2m=5B0AI=ro{=Fxf161} zK~#7F?VW3q;~)%#n|4*I?|+eTXpij~QqT>yS(|Eqf}LV%N2*ZY+?G zVJDe%@@VI&H8sA?0jh%8s4h(xwux74?UAcv+<$$bbEM3wd%C73@fye*6i-#)b{&1Z zl4xBN{4w#%>i4d(Xn@QnUhR+%o;_XeP>#Tbf?G1 z>%Bwg;ptYnGg_%JdCXRwl9)B^Rk>2yOmMS?O_eKdnho!Mhe+~LZ-1Rg^1Jm3pzX~! z?>tFtO*1Fku`w; zAhIS90KB4e@Ug8jdI5Ia$XHe zQllq;${BI4T`Fdo+o!6>X4y{dP3R0tQlqDiTn%*Wc?akmDYNRHFhDMR=e6zxwHBd( zl2lrDZHt0C=Y9This is the complete list of members for stdex::parser::http_url_server, including all inherited members.

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index f047e23d3..c388761d7 100644 --- a/classstdex_1_1parser_1_1http__url__server.html +++ b/classstdex_1_1parser_1_1http__url__server.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::http_url_server:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -99,34 +99,34 @@ Inheritance diagram for stdex::parser::http_url_server: 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 

Detailed Description

Test for HTTP URL server.

@@ -177,7 +177,7 @@ const std::locale & m_
@@ -187,7 +187,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__url__server.png b/classstdex_1_1parser_1_1http__url__server.png index 491a8314c21308e107944dd32c74c5d558aef3f7..bb33fa0d211004220fbdd283909e9b1538e95ec6 100644 GIT binary patch delta 745 zcmVmU$>hp|-6`#c3o3(y_J}#dPeT^Hs8J6d# z{qh`lqsLJ-Rw7F|fD&m+zB{H^f3>wWrlAY0UgVu$xfDA$s=BdQc@AzTGpXF_JoTZ* z+is?Nzh(k{zZT4H!W!%I=VP5MrB_|!hF0D^)+4`q({}Hm9kooiP8sdSXj$K5D zWftHH>&EYLwfa5ctX3jR$(?MZVR~IEt0&{yFW%h_;LFStSuuPdx9i?K(SgRIf?>{Bu7zT zk>n^^v6f|7rV{}CmOcPrKFx{s@i8UWoLDQ>j9imqMJ5D*aTHhpFp2^T07g+@0l+8< zEC3iqfdv4gD6jxv6a^Lle~hBQ0)SBzSO74J0t)~}QD6bUC<-h9cu6UxG@pMp1h>PRwx&vwe;nOl86U^)tTL~> zf2wNiWc#kRR!ZvBhf0#s?Ix_Tw*BK`oh_wTUGqIG$0(nL##@q%Zc>JsgmdWq_g6){ zg4G+9<8_l=o5Xl_Yh#|87arKc&9g`8{7JN%HllSo=q;_3&#Y>FbKslB7`-Sduh~0!xxc(TbH) bO4I2dg{re7P@sI|00000NkvXXu0mjfs&HPp delta 760 zcmVmUph%1lT5U-3=z0NaqZw>=MrLkBg9F_smK^NVF!mXUykB*(!NM3OyY z3L?p#5dAD3h z&j;bj=*UAP>)gzMq#apMBFi|We2bUgpLNiX48C zODE4Zo@!SY+ZB)@^QVvU^NHB-t~jAd>7EtDt3BmVp2OKY|+ojD*ny-EM;^8coouXDmg-37TCF0Q$xh z1OPo_3Ic$hF$DoY&zOP$f1qbfK>*M*rXT?58B-7d^o%J80D8t01OPo_3Ic$hF$DoY z&zOP$;2ort(nvs(q;W6>Nm9?4f+VSDJP~wEek{7gd4*1r-o+mhlK6CNoHIMN>Ukzlq9*4?+zw2e-|xDD#LA5aE|nD zE|?@K;*lU1p%Lgbxz}7j8H-P|Uh1teoUuZ<+N@q2>yk5Y`$wo1~Am^&m% qJ!1-zq@FPaNm9>P1*MeIK==p3ldaJo$#Jv*0000This is the complete list of members for stdex::parser::http_value, including all inherited members.

- + @@ -88,7 +88,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1http__value.html b/classstdex_1_1parser_1_1http__value.html index aa7000007..a8f4dc419 100644 --- a/classstdex_1_1parser_1_1http__value.html +++ b/classstdex_1_1parser_1_1http__value.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_value:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -102,22 +102,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -129,18 +129,18 @@ Public Attributeshttp_token  - - + - - + +

Public Attributes

token
 Value when matched as token.
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

Test for HTTP value (RFC2616: value)

@@ -168,7 +168,7 @@ const std::locale & m_
@@ -218,7 +218,7 @@ const std::locale & m_ @@ -228,7 +228,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__value.png b/classstdex_1_1parser_1_1http__value.png index 9adea93b59294f444d8ca070a563b5f896b711e5..1346f0495e0d1fc365906f242f68aa4f4e050fce 100644 GIT binary patch delta 716 zcmbQh_Lo($Gr-TCmrII^fq{Y7)59eQNM8fu01jp#8FZ!k=0rvN`VLPQ$B+ufw{u^v zd#%9J(%u{1`rD-b zix_FCicY!f5vCasm*c1C=u->MtxZoc8h3FGRY6VLLxi%yl&{%J5L#BypCd;Z@G zr^;k~o_~{KKlV9lgB6GOn&bIBTfaYvOg&wYk+}Q#uaj|-TkgtjS)EpXddfvMzuiaQ zT9zqWt$D@Jx54j??7T2}<>t#=DSDYfbB$)r$SZ&J;g(J1_P#fz<*ymCOSXS|ET2|? zsCMg|#-RAQlQ$)Qy>Qv5BBMV=&+=7Sax4eW{%DoT75?=-`+gMu=3Zl}oMY%XDSpCy zG0&)p$rG1|S^^mtWwRrvrCKo_$bZSk@Hx|O&Fx&Tb(S07g%}t4c0HXb!0_h8Mur1j zGTaPnurunh%iRm&P&}i~;yKH=Pt`N*NyMZS*YJ(oF6O^?-Bz6RYU@-PZJU~o`qxPt zE&#dW=lm5!un0s7WIqx`EkY43Rg{PCUW=p%q-xgXDv&wmO z;;LJh)5|$m$LjCA^`>}d{nO^{x4xfycmjf?&t)yn?Ev+>(Jo7Fj%hi^HXo_i@i zWr=aDm*m}NrqlP?9?v@>x+YP;>ymNR_q?l`i+6giO>U3qy?pY;3nTAKEA`kPS_r>; z{d~{#U$1;_%sXJU^jynJr(^Rn9%s)CnB@0m)k^+dAO0sE?Z1(J=i}u`D!^3askBMy kIFPj~xmDm$$uIWWOIuPWtXr@Lm_QjkUHx3vIVCg!0GQ5Kl>h($ delta 735 zcmV<50wDeU1&{_IiBL{Q4GJ0x0000DNk~Le0002c0000`2m=5B0AI=ro{=Fxf161} zK~#7F?VV|k>>vz;i;C2$`=9uwvj8^qGQG^R7)I1|0><{o;{3(3EXzp3LXzWX0+D27 zO(2qtEC-a#4@thJo`a^(cRY^zL|(rLM3P2d21=`S+W&16_vhNp+P}XaKi7e_r)#=7 zEbm9aGolIZJk`eC3`o{310}Mwe*-0vrsbz2xoXV!n1RNy4#`B*vZwM>?7CLfg9Y+2 z>?D&;9__rfrpC89Kvggs)urjeHt~wBJ#ux7>t7$}94WKvp024$yaw_H#ZwiyT}L0U zBw7~*e@y(c`n_u`8X&WYw|2+}&z^4XPllBCF*K#~+$KLR>T-(G^^=YgviBK=vQbdA3M+rsS6bhcn?Nqz?6h}jCF#C?cI5h1?u=Y&S{}1i&ae75#a6j| z@%EA3#}}%cBt6ipHGV!7KN!&dQTjkGbB81;vL=uuMb-q8q{v! +
-
stdex::parser::http_header_collection< T > Member List
+
stdex::parser::http_value_collection< T > Member List
-

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

+

This is the complete list of members for stdex::parser::http_value_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
insert(_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_collection< T >)stdex::parser::http_value_collection< T >inline
diff --git a/classstdex_1_1parser_1_1http__header__collection.html b/classstdex_1_1parser_1_1http__value__collection.html similarity index 77% rename from classstdex_1_1parser_1_1http__header__collection.html rename to classstdex_1_1parser_1_1http__value__collection.html index 60c4ed295..a3d0767d1 100644 --- a/classstdex_1_1parser_1_1http__header__collection.html +++ b/classstdex_1_1parser_1_1http__value__collection.html @@ -5,7 +5,7 @@ -stdex: stdex::parser::http_header_collection< T > Class Template Reference +stdex: stdex::parser::http_value_collection< T > Class Template Reference @@ -70,44 +70,44 @@ $(function() {
-
stdex::parser::http_header_collection< T > Class Template Reference
+List of all members
+
stdex::parser::http_value_collection< T > Class Template Reference
-

Collection of HTTP headers. - More...

+

Collection of HTTP values. + More...

#include <stdex/parser.hpp>

-Inheritance diagram for stdex::parser::http_header_collection< T >:
+Inheritance diagram for stdex::parser::http_value_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)
 
+void insert (_In_reads_or_z_(end) const char *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.

+class stdex::parser::http_value_collection< T >

Collection of HTTP values.


The documentation for this class was generated from the following file: diff --git a/classstdex_1_1parser_1_1http__value__collection.png b/classstdex_1_1parser_1_1http__value__collection.png new file mode 100644 index 0000000000000000000000000000000000000000..e76f9bedccf1115e1b0b94776cbf5bca5e449174 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^AAmT3gBeH)Oy}?eQqloFA+G=b{|7Q(y!l$%e`vXd zfo6fk^fNCG95?_J51w>+1yGK&B*-tA0mugfbEer>7#NsXJY5_^Dj46+y*;T#fyc#K z|MK7e@q0EuR&7{Oe6uLad6mslB^SOUKe&uHPi&a@#A1nor<+=L z^RrlO!f-^bl~KV+lZRoVXCgy~4;QmTN{|GD(&R%70y9O}8i3|7xS%UJAUb1aFN@El zV~VY+nns#Bo)a@$p3m+VKlpe~OVvByy%y>lpU=|q6#X9+F^TWRw}OZFuU6=soO^%U z%Uv=R`SagBznm;Ld)lJcdrq9Tn14*FKJa5(Qv07RU$ky5J8*B|_L-BeY~q^zq}~6p ziv6|KKSPgh-gZ>QeiiR3)77gd$GPXe*5>;7Xw?p#mfIDpT{fFPH7kAh>gT(aA>DW0 zZxw!?Q7~5}^iWCguBgqHk=ue}=lxi*>8VeJ=by|o-&)xZy`CWZP;Kq(-Ic{%i?;6X z+iUXrONHx>*_ZCViacuR*)LvpL&d)4?5agqYc{@(E^n2dYnrh>W6w|C-_O6kG2f$- zzTHdz;9jqF=U-{#cFM&CH}daZ6tZ`U=^8jh?h5`QBga`aj{*m+XIJ_3-8L z8nMSa<0gGk+j)4B$V`!GOHM4=pyK*WFDK1Rz@AlHE8^k|c{yMrVeoYIb6Mw<&;$U- CI3$4p literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1http__weight-members.html b/classstdex_1_1parser_1_1http__weight-members.html index e7d7b32e2..c576af98b 100644 --- a/classstdex_1_1parser_1_1http__weight-members.html +++ b/classstdex_1_1parser_1_1http__weight-members.html @@ -81,14 +81,14 @@ $(function() {

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 >
intervalstdex::parser::basic_parser< 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 index e155fa288..ef846dfae 100644 --- a/classstdex_1_1parser_1_1http__weight.html +++ b/classstdex_1_1parser_1_1http__weight.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::http_weight:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -105,22 +105,22 @@ Public Member Functions - - - - + + + - - + - - + - - + - +
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< char >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -128,18 +128,18 @@ Public Attributes float  - - + - - + +

Public Attributes

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

Additional Inherited Members

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

Detailed Description

Test for HTTP weight factor.

@@ -167,7 +167,7 @@ const std::locale & m_
@@ -217,7 +217,7 @@ const std::locale & m_ @@ -227,7 +227,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1http__weight.png b/classstdex_1_1parser_1_1http__weight.png index b3a0517ab0971a88cbe1f528592509826b89b291..ccd49335c0d57c0407849b8423db95b8798cd305 100644 GIT binary patch delta 743 zcmZ3^HiJ#EGr-TCmrII^fq{Y7)59eQNM8fu01jp#8FZ!k=0rvN`o*3ujv*C{Z|A=5 zd#%9J(%uG@%}kh>qAeAna~q4Q+s{vRFhR)u*UO=^``)$9|naQmmQSyK1E z8O;5CnrTJ<>4R?+eKyXkFI}@%z0V71V&{9I*C*nuGP+Gqr1w5trm1Xi@l)ve?}!MI zh&1MJ8~pyfeHT{grnUR&iHJiAvyC4Z}-?F z%BwRe$CbHTCHi8Isqf`0a~U42|H9Dl?~3}h#}`$@=SLWa_Q%Xk>hmUA_f-9KWX{=m+%~wuge-$J%M^WgS2GFRwtfGC2P7P z{JK(EizaC<+;&vx_a`y+qm%NYj%+fnkN6LieI4=fO3K1C!JDS~_a=#X$F7SH{B1F< z-@b6)ocUVUt_iy@)xEy)&kFtI&}n+J)$SiZ^hjyi|MSP{IZu0TY_ZHabzms~c2b#^}Dec2xU^b;P7E#!?ZJu5__YQ`x#m^0ejiU6<|ev}|6X T$(AMqOuG!8u6{1-oD!M+MdO)GbMa?P0UF$0}p8C z>?D&;867IW zCfXJSe@y(c`n~HcIv}%&k9NohFP>#Tbf?G1 z8@)rv;TcxBBU-I7Wz1HcnwT{mRk>Q)OmMS?U6reDx(y$Ghe-0F-u^m~$s-R^Dv>gPvS)!=;a&_J&QKLwQT(euyd zGvBun*8cpwU$%U^p2jqPGs?V@?yfv5$I9#_2T6LOGeAkIZAVFxe`)3J$fAzehnT1*(`_i?Q1JZ&-52ZZd~P#xV5I0Fy2Zi6EGau7007+5| oO(02%tO+DZk+lM)l+uOt2lSY(R&dy&!vFvP07*qoM6N<$g4C&EjsO4v diff --git a/classstdex_1_1parser_1_1http__weighted__value-members.html b/classstdex_1_1parser_1_1http__weighted__value-members.html index 658e92cbc..e6ce97133 100644 --- a/classstdex_1_1parser_1_1http__weighted__value-members.html +++ b/classstdex_1_1parser_1_1http__weighted__value-members.html @@ -82,14 +82,15 @@ $(function() { - - - - + + + + +
asterisk (defined in stdex::parser::http_weighted_value< T, T_asterisk >)stdex::parser::http_weighted_value< T, T_asterisk >
factor (defined in stdex::parser::http_weighted_value< T, T_asterisk >)stdex::parser::http_weighted_value< T, T_asterisk >
intervalstdex::parser::basic_tester< char >
invalidate() (defined in stdex::parser::http_weighted_value< T, T_asterisk >)stdex::parser::http_weighted_value< T, T_asterisk >inlinevirtual
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_weighted_value< T, T_asterisk >)stdex::parser::http_weighted_value< T, T_asterisk >inlinevirtual
value (defined in stdex::parser::http_weighted_value< T, T_asterisk >)stdex::parser::http_weighted_value< T, T_asterisk >
http_weighted_value(const std::locale &locale=std::locale()) (defined in stdex::parser::http_weighted_value< T, T_asterisk >)stdex::parser::http_weighted_value< T, T_asterisk >inline
intervalstdex::parser::basic_parser< char >
invalidate() (defined in stdex::parser::http_weighted_value< T, T_asterisk >)stdex::parser::http_weighted_value< T, T_asterisk >inlinevirtual
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_weighted_value< T, T_asterisk >)stdex::parser::http_weighted_value< T, T_asterisk >inlinevirtual
value (defined in stdex::parser::http_weighted_value< T, T_asterisk >)stdex::parser::http_weighted_value< T, T_asterisk >
diff --git a/classstdex_1_1parser_1_1http__weighted__value.html b/classstdex_1_1parser_1_1http__weighted__value.html index 09b0517a3..d2200cc0f 100644 --- a/classstdex_1_1parser_1_1http__weighted__value.html +++ b/classstdex_1_1parser_1_1http__weighted__value.html @@ -92,32 +92,35 @@ Inheritance diagram for stdex::parser::http_weighted_value< T, T_asterisk >
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
+ + - - - - + + + - - + - - + - - + - +

Public Member Functions

http_weighted_value (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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -130,18 +133,18 @@ T  - - + - - + +

Public Attributes

value
http_weight factor
 
- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- - - + + +

Additional Inherited Members

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

Detailed Description

template<class T, class T_asterisk = http_asterisk>
@@ -172,7 +175,7 @@ template<class T , class T_asterisk = http_asterisk>
@@ -224,7 +227,7 @@ template<class T , class T_asterisk = http_asterisk> @@ -234,7 +237,7 @@ template<class T , class T_asterisk = http_asterisk> diff --git a/classstdex_1_1parser_1_1http__weighted__value.png b/classstdex_1_1parser_1_1http__weighted__value.png index f0430023e7cac37956ad71c562bfc772afcd1c0c..cd9b5ab8703b00ae77494053bf1d2dcb1fe5f0b9 100644 GIT binary patch delta 1022 zcmaFBae-q(Lj7$|7srqa#R8$HA$_ z?U8=bIm;=<=j0S8r*x>C7v14;Y3%{mNqMY#lS;G;CN7EAf8ceN-!ty=nS-bO?!SAn zx^Uu?=r5u>F6nk{`MaBai|y?Xd4F&J{`cA1;G56#d$QNQFaJALqTby7_-2n!oUwcg5cy=%jbs}7ys^khw}cD?i4s0Y7N-c~I+_$968 z&7ylAscZHwe${q+<#O}Km*h|0%KBzIhu3|Y%KXb$Q&dhW@0Aiixoq!kdC#~D+aK== z|MZt<@)P^8IlwS^o&QkjOK_VYQ;me1b^Fw`urt7lMPVUT0hWBBmu zxq1a-LvSNE!=7Cix#Ace1V3PEP#4+2aA55LRt8`&GZbhSFg8R372M&9VR#VsfQex{ zlQ_c;(H#^hsYf*?|LD{puZ2^BK5=+Xa+*}K?trQ%&}Ppf?E=q9(T(1d?z}2^tFN!T zrp_<+D(B^+;oscrzDMW$tb4G0k6zmU;u!Vr_=BdBaenpZ>W_Z){{N3N@7LSg^VU9H zTVH*@{+&sioN?*@75uw}j;%YJ6`ie|om7A0Z&~|#mTy0VwmMJBY~Qi!d)d}n=4<;^ zZgZ_uxf+)28I=2UWku{am6c|@OO9S$cR_mQziXQeH?QWO9KJ&>TG~9tZc1r(!Pkc& zSKj*FHa6OGRw=8UO>Mctv8VjXw*JRHv94`iw*O<;re&UP(nsQC(knwYXKdeOTNg9? zsz|uxruyG^?0+O|OZ`)L^7Z76o>szjZ{PoUE8x3QKIwhXj{ma`^Qf=e>$c_F;g?c= zIcM)@F8O!)>JnG+eJ{6b^Do!-+&VSlR?z*WRr243!lTWWe{8LoZsgss z^72X6mXjKu?w`(2Ntt!}-Kt{Gs8?_O?Au?*1*kty_^Fzk7$@O%snKfo>%M(&O7`yH z^!(K`@1UyZ|6-I#;)@qlAOLj7w`7srqa#t&Yt{SuM`w@lc{IqX&NH9AeYIv)Qu2f& z>_YW{*=tuuW%qJSRS8!48PnOVa@Z?IMKbJ>(#Z`%;+}1#yy1oRDnI9iu`S!T@$t^< zrwb=8x%~W*lIQaMQsFy~25qbVzF}Ls^pmyq)%WZ7*`KjJy|BEw{%>vhj}I^A@K1a5 zAeBYs=e~PKLr>f*3urA_Yx~yQ{Qfby?}<_wv70VzO#sTVn08O;DPz4~pB>Y$Upwt>BwuNS&bmT}?N1nbcANaF zmcG#%WUqFiLgiSodGCyZoy_$WCA-|7pS|?(*ud?`gYCf)6%*XGRld&f2`h` z-C!{1&&B)iudj2D(#=11JnGlpEBk)VUZsDVKlX0VU#pUHclmtHlg*7~!zR^4icgxT za{deR#feYcU+NzyUH|<3bAHc%Gd`6}Oo^x$5cm9deaa3GqculdCnc)tP2$lmoS0G{ zVIH&f+N@PuuQf0{5dO-_pvlmoQOM{J5+8q(o1w`ohC$$JZ`dcMh8aTQ40{%|urdI( zGH_@El|*!MGaLdb2z$iT0E_{KmZ>`!6xJLeNl86EV`{b51$lW+4f1l)m^5Y5lILDA zlSINEO$jzI3?R@Cy^s>{+V2Qe)2}y1*w9+ z=b}zaP46-5*lV%wQ~iqci*~2K9VyJ+JZ;A<_1))c4=>M*J~n^)9z)64OEW)I|4+zo z&+z&y@_WLe$9aCrO*_6xJ$&xJJlkrcZT<9#$NZ;zcPrLh&bRenzS?8&)`*&w@i_uJ$qy5{xbe;`Tx>nu2;`Ds!!?ieDX2P zB(#2?q_s$K>)iW2>_6nVUubW8xLqYSrq@hT^`+0piIaS|&sJaGp(6Y0c<(>Cb=8is zbD9s&-O~CqVUfz*j2WNzE#$Y36&F|Z+`l-y!1L1om`?9Wz_fuBU8RRZy);(_d2zmw ZubKQSaC_W-eg+`m@O1TaS?83{1OPp4_uT*h diff --git a/classstdex_1_1parser_1_1tester__collection-members.html b/classstdex_1_1parser_1_1parser__collection-members.html similarity index 56% rename from classstdex_1_1parser_1_1tester__collection-members.html rename to classstdex_1_1parser_1_1parser__collection-members.html index 027fc54d8..a8426ad01 100644 --- a/classstdex_1_1parser_1_1tester__collection-members.html +++ b/classstdex_1_1parser_1_1parser__collection-members.html @@ -70,32 +70,32 @@ $(function() {
-
stdex::parser::tester_collection< T > Member List
+
stdex::parser::parser_collection< T > Member List
-

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

+

This is the complete list of members for stdex::parser::parser_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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inlinevirtual
m_collection (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >protected
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
parser_collection(const std::locale &locale) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inlineprotected
parser_collection(const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< T >inline
parser_collection(std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale()) (defined in stdex::parser::parser_collection< T >)stdex::parser::parser_collection< 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_parser< T >)stdex::parser::basic_parser< T >inline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1tester__collection.html b/classstdex_1_1parser_1_1parser__collection.html similarity index 53% rename from classstdex_1_1parser_1_1tester__collection.html rename to classstdex_1_1parser_1_1parser__collection.html index 799e2d5b3..acdf0b804 100644 --- a/classstdex_1_1parser_1_1tester__collection.html +++ b/classstdex_1_1parser_1_1parser__collection.html @@ -5,7 +5,7 @@ -stdex: stdex::parser::tester_collection< T > Class Template Reference +stdex: stdex::parser::parser_collection< T > Class Template Reference @@ -70,7 +70,7 @@ $(function() { -
stdex::parser::tester_collection< T > Class Template Reference
+List of all members +
stdex::parser::parser_collection< T > Class Template Reference
-

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

+

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

#include <stdex/parser.hpp>

-Inheritance diagram for stdex::parser::tester_collection< T >:
+Inheritance diagram for stdex::parser::parser_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 > + + +stdex::parser::basic_parser< T > +stdex::parser::basic_branch< T > +stdex::parser::basic_permutation< T > +stdex::parser::basic_sequence< T > +stdex::parser::basic_string_branch< T, T_parser >
- - - - - - - - - - + + + + + + + + + - - + - - + - - - + + - +

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())
 
+
parser_collection (const std::shared_ptr< basic_parser< T > > *el, size_t count, const std::locale &locale=std::locale())
 
parser_collection (std::vector< std::shared_ptr< basic_parser< T > > > &&collection, const std::locale &locale=std::locale())
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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)
 
parser_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
 
+std::vector< std::shared_ptr< basic_parser< T > > > m_collection
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

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

Base template for collection-holding testers.

+class stdex::parser::parser_collection< T >

Base template for collection-holding parsers.

Member Function Documentation

- -

◆ invalidate()

+ +

◆ invalidate()

@@ -169,7 +169,7 @@ template<class T >
- + @@ -182,7 +182,7 @@ template<class T >
virtual void stdex::parser::tester_collection< T >::invalidate virtual void stdex::parser::parser_collection< T >::invalidate ( )
-

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

+

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

@@ -192,7 +192,7 @@ template<class T > diff --git a/classstdex_1_1parser_1_1parser__collection.png b/classstdex_1_1parser_1_1parser__collection.png new file mode 100644 index 0000000000000000000000000000000000000000..f771e407d2ec630d5a01cbc1f0eef0c24b750c49 GIT binary patch literal 3264 zcmc&%d011~6~{Uh2Voc$A%c)^G*BuE5e0$-5D}fo+Cho3g@}Ueiy#RJNs9`j1el2f zsO)ZxMgoWuAYn6_h@ddC2*VOJNI*ys!jh0+dLKG%r|lnYzxM0weZ1 z;*^UTeKH(& zX_T41PP4BYY1$U3y;b*aIo_SlHaK8*)Qfu=k!(%#t}52&))h3Gw4ILec)xTb154-J z!JkW;SH1==3`)cZEu!BAt@*&k0VHeid1PiccLK>smf1T7E1Ak9t2n zlL$+0BPwXGEv`hDdzG|aEo7su?BlKD)~iU;BEcBG@YWtoUO22Q*rD>=%nyZze?omB zAF?lMtWI`Fv{_W%O~!ku}3*YTN1wI-cVRRJe@k) z*EO;5wzN{jK3a&&ISycoOre|{N?vq?XJ|>Xzek@)Xf|5^K7K4wk~q4>Q(9I|@Ypri zMaGy8x_ur6D|>}S!+8k#h?fbzLQWrbhENp=zT_}zO)>aoaW@TccHpqXt91^o;u>l;qanM0c2tsmLM+ZI!tG zhM}!;wm)3Vxhzz=Z{o+31EBaEGvKwWk-xt>!S6oOeW^V?h{o0w&b`;iMKxJjWQDAl z^!=bPF1FY^T{(zH7u(^i9quKLi;>3ZsYX1AsXItoP-5yazZ7gglpkMzRGz(+`B3(x z%M#0LpKP$&*V^29ZysN3QKVNIUQRVGHl12}@}^AxEA~cC0iNS`za(>osD6EU3X749 z@$XuPchWQ5B`lY6YN1_`y;1#>q17&($;E|syy!Dgvso6`$&FS3CySpTkb)+<0JLsv z#}pI(IYJZ@;?BHs2H9kp2(JVy9xFP){A+xuK3jP4n{8iwB<;QQH z1`Gqt2B8tIXiFGtP#giyCJl9Um0_$mU_cf`&06U~-)=z8&=qn%C+QVHBs~O?v>-zF zKOw2IiUp1o5{bls21oX`F8Y}ry|(eJiQi7b-nHs(_m5ZYH~+29sj}b;zFK*w9=}?( zLwEa67hBg?z|f`V(|{Rdt#RKQG6UA{|EQ-4%phyyu6>XhWWD;o^iZc`)j*q@$D(2B zuXDm5r{iH@FX)OyU`*PQZ&lQQe?8}-x@ zC24rZ$tId1pU2G7M1GO^g)H2T7gO(2;ekO{0-q0R_L58>IbZ%}*n(g9kihQs)K>*C z8g+T{5jF{txN@Hp=MR?9YgyO8zU<5#o%@^nEOvt}wq&zE*6{OF+ zG{#oe_8oA&8kD*<2^TsSdzWU|BkuEA_C4*fz>K&z@U+hD`QQ}ZN^wnpzQHjea{OdL zheql;9+-(6}&5FEWUUuQzWtLWT@E&bosiMH;L7~L2Cdnro)bZhZrQ?en1~JcM81WEkAW208mPa3EXt)#04e|bMMg|Fs-_n3mE$$ zB+!LQB52`cA*H3k8(rv!>Eur(^Y43ve{AGBx6{}I z{&cjc?=zfx3R>CgFipvyT*c;2wl5=&eeC7@fOMpjTuRmmv(8$ot^rZ*JFO+;Kdr_& zj-=j~yq1#1d+u74WOh*c=f5v-S=>;(SQ#U?8<@C*A$V%&uZE#l%!r<78P)z2$1FdfA&kR!ovz%%0$;C6g;r`66SbkqBc58r9A) zm`=29VC)F)Z@NGtIkc$BjFusfIUle0nEz1LGL6zNh05AyE@5h#;py~X?Cn*e^_y+Z zHLjvPwEXU2ZQ*>KzAx_}wAz_`a+wW0W7|d$+wLq?qcgR zWchfqEZN-@bbY}N{M>i}LE-3dA}-mz^{Yz?aaSQc%v0of(BkJ5$2m?);H~2ZwQUBr zS-r&BPWf2Pvki`G1>!izIeU6X?MK9+Jo3#kZ8M;Z1+l`25fW%xs=$+RRL3ApLO1?4 z+jbj9QU}rxYAdK6@PJLYj^K}Ea2lHdx~%erF#MPLdXN(afKtY~x_4j0oqeYg?3p1q R!G8@kjH~B<=Dy&xKLZ&EL$Ck< literal 0 HcmV?d00001 diff --git a/classstdex_1_1parser_1_1sgml__any__cp-members.html b/classstdex_1_1parser_1_1sgml__any__cp-members.html index 5b43a6bba..6685cbb6d 100644 --- a/classstdex_1_1parser_1_1sgml__any__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__any__cp-members.html @@ -80,19 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
sgml_any_cp(const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_any_cp)stdex::parser::sgml_any_cpinline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1sgml__any__cp.html b/classstdex_1_1parser_1_1sgml__any__cp.html index 37af1a9b6..3e77a6002 100644 --- a/classstdex_1_1parser_1_1sgml__any__cp.html +++ b/classstdex_1_1parser_1_1sgml__any__cp.html @@ -92,46 +92,53 @@ Inheritance diagram for stdex::parser::sgml_any_cp: stdex::parser::basic_any_cu< char > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > + + - + + + - - - - - + + + + - - + - - + - - - + + - +

Public Member Functions

sgml_any_cp (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_any_cu< char >
basic_any_cu (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())
 
+
 
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

Test for any SGML code point.

@@ -192,7 +199,7 @@ const std::locale & m_
diff --git a/classstdex_1_1parser_1_1sgml__any__cp.png b/classstdex_1_1parser_1_1sgml__any__cp.png index 79a94fa5d34b22f19acd09c5e53f437ca3588794..7d42b1a4d9c0d1e98bdc42da5fd016af13cc51ce 100644 GIT binary patch delta 1052 zcmZ3m`fH_3niF);ZPGuH9F>>;ve7~Olm5)qVgLW;i>Z5js`AP0FG{y<;qknE->Pc$ z^?lR6y{)ak!&}>Zv$QngUi`Q6b%n)Wc7z|Fb|R>3mCLH4Yu`%4>bGrkmE6^LHP7yI zxZKgXH&?Hc$a(H`W@1+A@~aiEcWd3Z+BWZZwpc>H@rzqC*4%t&Kl|;5DS@TkH@AMe zyV>^B@^g#sc9ex}jhX9x%OcBsx9!Ds?#Gw)B^~*8U;+;_iB{Q3S))LF{%@ZlQnwvXR? zRobh*yT4v6e=t5NI{2uZtjbTxqdO-qv1gU`{1v1}l;U%fxn`;?4*_Wen{asAm1dQCwbKXf ztyLpWvF698D4+cPQgz#wFMhxfELeR#4>bhOYi|FR^e)%7RqCpL?grIOQ|4+-Ts3EF z?cAwra|7GfCExsYZ|%0Zz0a53SlqSq$BLU%cIQo)75lzEbN}I8t3UZ}()!zS_o+cx zqW-d_mklHROaI@@X-%E4#fzx{2bwJomHTPSr|poO(0@7?Npsw=3^DV^g_i&5~u8mrV|Bybyc5 zvS|Jq@7Jn_`#z<7%&5QjMS+smmJLtme4fM9@ctzm!{n@_ZMSpdc68np+miV(Ev?&zlR-{2hv9+$K{f_p zA|#4Y4_2KY=%wkar6M>{Q#40O38)uHl+4Y2|9#=wA1$~4+eSzI(wX1Awdno6tFKjc z-`@WHZ-?}+X^-9(Z2hmfE%(T~j}v`eo=jY~L3Lu#si;XFn(4Xi>vL+oP19nZZ47?S z`AtrDcE<_j*c9u`TVG#!zJ6tSDq{Xl`@4C!a_avkc6CJTl9~Lq=KK7!Wf7-V>~gK1 ztg z<}!VzdjHa?YbtJ)%+t{htGv{6a;``2{q#>uI!*}xJ#liYqucuK&40zB>r=0-xjg@P z;g79v`!~yOG}2P~2KbEYsJ38#agl>-JQj_KXm|vSdnwtCl&N~Jm@O1Ta JS?83{1OQ9RGRX98a!fPTulp#o=pa9G(0v zpTsSn+pL`6S>(kk?fENs!^9=_kvX2W9-pc=$?(+H9={%_zy9^*9F>({EVpg(@wvVK z>hW*)s$za^fB&~oUZUFP^3}w@_n74bLqD7g&dyoapu(QH&E?v*`e4}`tZx2S*fX4en|OFeP3tI-fXm;J9qtoWyVFDc+3B9 zzS%d?YV}(~Us31N*Q7)Iv$p=7_U&WUu7%USR9?w1t6$W7^uV&dZ*T7WdT{je%bmTI zpMKmCij1DQKHGEp+rMR7wEw=W&3_$s=V^%i`|jUmDbpj>`wwjOnraxk{gu?#m7(g{ zg&_y8mhqKt+9i4E!Rq_wlWeZ`*MIf+Wc8!ye~+z;i) zzCE~eW_H!veJ`UfEv?uut9#q{``eziddGIGQWTC zwyN&m+u#4~;P0`$di!D4|K&HfN$x)Go~)$QU(%}Ec_r-nB$q7heCrxxvu`HF*HY!I zL;VWAWb}4+*j#em=5%>|ID2mVX`STSXa9J1XV!1-ZP!#vdRgSR?c=+8v)hJ2>051Y z%~lCqdvdp(<-HTvR3mx=-UpN~YHsaHdj56h>g}6UC*Jaki1pre`)YoBTy?$s{G{r) z&``dV6{?fG%kP@#YOBm=PyCi_dv9ABZyz28AKrAPi?f;-wv^X$rcU)4vmWw==nGXR07tDnm{r-UW| D*#9QZ diff --git a/classstdex_1_1parser_1_1sgml__cp-members.html b/classstdex_1_1parser_1_1sgml__cp-members.html index 4c50b462f..f1d06fb9c 100644 --- a/classstdex_1_1parser_1_1sgml__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__cp-members.html @@ -80,7 +80,7 @@ $(function() {

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

- + @@ -88,7 +88,7 @@ $(function() {
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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
diff --git a/classstdex_1_1parser_1_1sgml__cp.html b/classstdex_1_1parser_1_1sgml__cp.html index 7e0bdc131..dfc8c2b44 100644 --- a/classstdex_1_1parser_1_1sgml__cp.html +++ b/classstdex_1_1parser_1_1sgml__cp.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::sgml_cp:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -103,22 +103,22 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 ()
 
 
@@ -128,18 +128,18 @@ std::wstring  - - - + + +

Protected Attributes

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

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

Test for specific SGML code point.

@@ -190,7 +190,7 @@ Additional Inherited Members
@@ -200,7 +200,7 @@ Additional Inherited Members diff --git a/classstdex_1_1parser_1_1sgml__cp.png b/classstdex_1_1parser_1_1sgml__cp.png index c418658290d5e58942caf171c96a3eec0aea31af..acb2f4c2c240424bda49f5a71b4a671988bf7c6b 100644 GIT binary patch delta 713 zcmV;)0yh1O2KogdiBL{Q4GJ0x0000DNk~Le0002i0000`2m=5B08-R@*^wbXe}zdz zK~#7F?Vah4!ypWVhly0p`#9|r4*u-)0Y@LiBFUHNA*`^j4*TC`xc5sp>-c_uT&@%CNO$SxFyBAy zFU7b!`h8W270BEUpg@|IdPj)Ge_TCcCYpuCi@fD8U$VRIs-k1DQVd-q6I7b*+_g)M zZ<|cF{Z#??FjvNaBMv-Fyz$kJo02oD% z1puSSu>fEcITiqnBF6%Ne^KOE05FOi3jjuuV*$V@ax4HCMUDjke^Lk`%qIj%noW)+ zNu$WIBxw{qhjrMz>5aU=tz#Vq>-zP(uywAcd%uik9pCSd%XOk1$=;%?cEgMt{3hAo zi?zpJU|oNGtT>ac$`R{LL8g5itIDYS;Cx=HeQZ{kC-xKh(^x^uErn!DMsR(_<(zoSUk~E4OA4`%((TWv92-E2Yt&Fu(oXHcr00000NkvXXu0mjfXNpUp delta 731 zcmeyx+QX*U8Q|y6%O%Cdz`(%k>ERLtq%Qz*00%RWj6cOaZ=#}o{d7+k$B+ufw{zbY zJyzg3GX1Mh+Wr5X=ReA~u2ZLQV&OE&kte}DY3U0}b7uX+2o zIu;w{T@MZhXWlu}kaE)~Kxu8gtVU;v?)SbYT{|rvsc9WHQW1_lJ?~9oneXaFj~kPC z_MccfIbAw`>&nk>`2qybxbtSVZ3wm5{MCJ3PvQTqjprnzL;Fm8V;`vom>BrGKKNyQ ztYTV5q{t(~&iSVAVp9Vdcly?BaW<^@_NAcxmGH$I3tgg4ch>}Rs9V%E8||HcuYTc# zGz(k9xYvAh+m}Z^J(m%d{Atd5t7$XLb3-k)bM=*Xj z7d@ZhR^GndpH+VLe_37Lp|blri_*z?ri~t(($_ki-lW6K$)IL-RnEo-~Kh~FRiJ!m;2sXb!5-nb$#}H8S#Zx zQ{ytRDW758b>5WECK9|x1%RaB#z?^rd zG2H!ktV8uP)(d~HvstC*gjzn@t9f!OcjKX-8z+?MAG#MRrWf=3MjZPTm26ANc#%WB zo%au@%e=pPwfu#R%~`GTXUV3z=YMLY*Q`4g>L4Cs>G{h^zw-C%Me4S7GAs5eMgQCo z`}4kG!@0#8p1!pb9+T`=f&7%smdKI;Vst E0MkN9MgRZ+ diff --git a/classstdex_1_1parser_1_1sgml__cp__set-members.html b/classstdex_1_1parser_1_1sgml__cp__set-members.html index 634ba0160..208a1adbc 100644 --- a/classstdex_1_1parser_1_1sgml__cp__set-members.html +++ b/classstdex_1_1parser_1_1sgml__cp__set-members.html @@ -80,20 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1sgml__cp__set.html b/classstdex_1_1parser_1_1sgml__cp__set.html index 781197557..fbbce63cd 100644 --- a/classstdex_1_1parser_1_1sgml__cp__set.html +++ b/classstdex_1_1parser_1_1sgml__cp__set.html @@ -92,8 +92,8 @@ Inheritance diagram for stdex::parser::sgml_cp_set:
-stdex::parser::basic_set< char > -stdex::parser::basic_tester< T > +stdex::parser::basic_set< char > +stdex::parser::basic_parser< T >
@@ -113,23 +113,23 @@ virtual bool  - - - - + + + - - + - - + - - - + + - +
match (_I
 
virtual void invalidate ()
 
- Public Member Functions inherited from stdex::parser::basic_tester< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -140,10 +140,10 @@ std::wstring  - - - + + +

Protected Attributes

m_set bool m_invert
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 
@@ -151,11 +151,11 @@ Additional Inherited Members - - + - - + +

Additional Inherited Members

size_t hit_offset
 
- Public Attributes inherited from stdex::parser::basic_tester< T >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

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

@@ -216,7 +216,7 @@ size_t hit_offset
diff --git a/classstdex_1_1parser_1_1sgml__cp__set.png b/classstdex_1_1parser_1_1sgml__cp__set.png index 91a52166537e5361ee6b54b14fcbf04b095e614e..6ec3378ff99faf82f026a48a39121eed7f2bf1c8 100644 GIT binary patch literal 1159 zcmeAS@N?(olHy`uVBq!ia0vp^*MPW#gBeJ!+4*!fkdhAY332`Z|38rV;?396{zJ-x^E zjauV!Z5yL%(AK|s+#4ldS6?}haAVJj^nb6G?lN9GOS*UK@dUph$G3}*UCvll^E##K z-Fof=^R73)RLR-+&R%+T&y~pB{>)oHsk~^TUq@cX7w+$GKH9L< z>;cE?&i#k)N);cuu@-2T|0UJMr(gc_m64m>o&Ng7{eo?L8`f+N-FAOXOX}9B#&3qP zld}?TeaTd{`QpB5+pN-~HzzPXEALj}|9V?~F@N2ieT`pNa76n}c)~8S8|ZDg|FU zd$BL!?S^S8p3!V!O4+v?gjU|F+unMk=c{d2g29_M&l}w59*0 zQ)u$lW&YX^1v1X=GCF@NcapF5pS+1r7S{bSRX*weYIj7xQsQz!&wcA}=uY~w=zx-^ zK9>%V!K(dy&T?UfKU4D<4CX&Ovg_`$C$ogJ7tWfP9kgae3&R8VMpg!3yf8d)C4uol zdFhl(HBLf;GkqIXl^(f*iR&B9cJuFT4Zjn&;jex2(xYiV#ccB4J$qfd`w%RQgZGMt z-=5D^Iyca!Y_gY%l9Kwarl~Gjs}ofw-ukw?cekW;^(@Q&7pJ{%eP0y0g4^+SSI3N9 z9ie|q7ru(Pb-OlfyY#B~hx{k&Y&>0__)MR?;pndaIcto9(zn{)nynJ}mdD%j_uff~ zs*bxIfXTTv>Zsq7;5B)Pf)kDR)^960`NA*gzuKDQOY+y*+DoS_yIjBb``zvrNBrf1MFxYXtDnm{r-UW|*AFzz 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 diff --git a/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html b/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html index 9e47c9f85..50dbfa689 100644 --- a/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html +++ b/classstdex_1_1parser_1_1sgml__dns__domain__char-members.html @@ -81,20 +81,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1sgml__dns__domain__char.html b/classstdex_1_1parser_1_1sgml__dns__domain__char.html index 4d232bfd1..cc405db4e 100644 --- a/classstdex_1_1parser_1_1sgml__dns__domain__char.html +++ b/classstdex_1_1parser_1_1sgml__dns__domain__char.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::sgml_dns_domain_char: stdex::parser::basic_dns_domain_char< char > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > @@ -110,23 +110,23 @@ 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< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 ()
 
 
@@ -135,19 +135,19 @@ Additional Inherited Members bool  - - + - - + + - - - + + +

Additional Inherited Members

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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- 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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

Test for valid DNS domain SGML character.

@@ -208,7 +208,7 @@ const std::locale & m_
diff --git a/classstdex_1_1parser_1_1sgml__dns__domain__char.png b/classstdex_1_1parser_1_1sgml__dns__domain__char.png index 87568d821fad8aaa8076809c266bd78ec0e17bcd..f6b2b9050288bde2cb0fa008a2f19dcb5fcde740 100644 GIT binary patch delta 1271 zcmVn+x*th;k68nM+~@}z`Z-o4 z=_CA2E6b&`<^J#1@BO;X;`01{zy4e+#wXLzTZ8rf<@UB5?|%&)M@iBX&RSWdT2>#6 z)RpaO9br@FPr8aBu=x(p+N(dcxoK2$AxX!)U}YP^w9jr#TkYg-4DH(PyL{fBB`|;Q zRWC2Cpw`OuZ*JvLQ{QTzOhcQtM=M9|b>nn}-s^cUFYLBH>-_`!EE*yPE8XYcv+|_9 z-MKQ((9h46MSrSg>$Bf&Z9Til-7VwfzOvWeu&?Y``G$SvF?XkD&?DKp_iuImX;8=2 zhdw=ncH5IwOI}zlN z=&iweU%R~Z(FFBXYy2A4+;1;!;cMJHotL6oD~nXin#3Y?WxHB4e{SmhNmnrh)-Jo) zv1+?~2=o-|=btCo+CGfxzDjFl>vH;1H>Rz2ayN!{ZTC~T?{L4W2JHCVNzn7(i83$! z3TiXC{>`mCYU*3czH}85VblZ7Nx(_`*gT@u)XHc_(>WS2SXlnh}rM}fX;=F2Yb9;BY-(K3n*SMWbA|j@ov9d(eQb(~w)UsWzX*YG_ zlYi!&Tgs2oZM}6Zj#b-beYel9PLg?U5fMk6w6gWP(|+^0x7x{F*IF#m6&p+a*{`Yr z{m6$kKVC*e>~eYqwdq{{=2jjx^{w_v-&!oumFdvCPrGO3-p4a5V%-U8mjW znGa=%@Na(F%HcHfw2rKdvo<1P&ingHzkl1>+8y%jHwRnqN1Mm9swY+^>pmjl2`{Xm z`5E*`r|$FhWaxJOX1=#4%`o(S3q3r8niaHjnsuMa_w|T~IVV?8M8pwqHS&?3BO*S| zzp^sU<=ehIKQ<4lA|jj@!y_V$e>PYCEbWMhZ{$N(A|iefX(b}UNh=W%PFjhGaFfmj h1{|_1%aZhe{{iH!9gBZ){`LR>002ovPDHLkV1n~Oh#UX_ delta 1259 zcmVio%2F$MNrs%R*COYNt{Eu*>%NqWd@Ry@(M=V45H?c#0@9oqH} zF$L`JTG#6g-thA33hER6{99YO*R;3#C(F=b^t}}iXe|xn^pD~Fz2xP!-PUKle_)?Q zQ^aItm`+D?#eX~BTRNO8^W6Ndxl*K7_MXSx)>gHP?8o@0`-+X#=CSwpZTrf7EiBKV zd&=zu*z3kKp^a_~U7bPg;2Am}KE!kewPvQNCrMB7+6t1SGu})>l719F)5>*AeQnZ9 z(wC8QMUtGawIWHsfwUq?PFj&9C#^`5lU5|jxmc;S)+40W+7*Bw!UsSC^d+qT7#|<0 z1z;qt02mi3sRdvltpLoV6O;Y{Op`AH27l)#S*f+wq}JLOsw5?nT1hLC5R+lco^oT-)()?`v>+> zOcC>xwn=zu<@kMHfe)+<2_DXsd1-<#=1P%T*?;dt$D7-smBr$> zv7Sb)_m%rvSe`-mOxot%4uxSmZ%L1#=V#Eog8U5XR!}>UhOaz)t1iLS8FU_HD@c;g zc;cX!q+h__uyWm;hnewAl_WVYhD*|uumc?=YOOV?wRQ#IhwuTA0DVa-0LI5hY5^EY zD*(ntN@@WZNGkv{lko#re@ZDODW&v<5)qL^L@Q|}BEm^45fM&WiHLC0N<@V7yp=8P zn|Sn`aO646QgFfie>>Nd@1xs$8(N&J z_RIF}m|dGB>)awD&Un(w-tR&C-RItG7k5KzQDP`ImiBX8)dI$mPiua@jEFeo=@rzc z^ZB>7a<6G`^-spuqQp>^Lmxivk(FB?kF3m@L_{oka}J 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 index 16d51e687..07c6b7184 100644 --- a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html +++ b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char-members.html @@ -80,13 +80,13 @@ $(function() {

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

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index 35dc97b11..32474d313 100644 --- a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html +++ b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.html @@ -91,7 +91,7 @@ Inheritance diagram for stdex::parser::sgml_ipv6_scope_id_char:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -102,34 +102,34 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< char >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 

Detailed Description

Test for valid IPv6 address scope ID SGML character.

@@ -180,7 +180,7 @@ const std::locale & m_
@@ -190,7 +190,7 @@ const std::locale & m_ diff --git a/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.png b/classstdex_1_1parser_1_1sgml__ipv6__scope__id__char.png index aa31f67b369fa244d604efbee1d31b2c9798e59c..3e4bd2b7bf56f81d34a5d0e6e9e2b4f502b5e8b8 100644 GIT binary patch delta 797 zcmV+&1LFMr2JZ%tUw;DnNklwP@7hgbpPA< z?(a4G+JFDfkJ~`(X_{_?<@+?>;p3g?u@%X>wbUlEw5&6crhgr8+4E}5_n3iTSncmK zzVaw^O{?mKWYs!q57(Mp#@A!C@fA%Cw_Wl%pL3u+?~&eaB-d(hzqZ-e2{++S}f48@ys$dwZ{^uKoA#{J0Iop2D_M8v)XT7R}wZ~H1`EcR4$wzZ9RoT(pnEn{d?r0uF#YssCV zjkfAk!k1xFl4-`vs3lCdr{7T<3qr%y7|CY&91~IPK2m1YJ(f*LrbRDv-gKr%wRx@A z)H=uNDiz|#rIbJQVBrhi`)ZvF(XZFkdgdp2Yk#YhO9sC|F`r^8hrF%+9_;(+ynUi} zkI80D-WMu`?ijPBudHEea{FwvllkA=w|`%gk4QGbXYX4{>f){Yusi82+xxe1>%Ntw z$2h%SNXC1ODS;r#v}#zA3~W|=!$&j!ky;m?lB)LG&sLKDZ%nn4G$y86Ng5NY+LThd b3KsqVh8Dx_2w15^00000NkvXXu0mjfvjLm= delta 810 zcmV+_1J(TR2K)w)Uw;D!Nkltk$5(%_S9)2b@n z|2D1n_u9rffB(*p+d`aaif#(acQ&|NG{&8#TDa)}N%qlUn}5hMGS5VsalB>Et2IAk z7J^`Hl8I&@~m_faO-4%~ii zw);xiRnIg<4Xc{17bu#H|NfA@y)NH=m-5-?1LC6|Bm!F#{$6ao@k3KLwlSB^#x{{< z92#wxa#iCGsDJkT-MV!gT;6$mr|Wjl$!1U9T`3*$ShGE{cx^>nJ-IYuW855Y=*dM* zNEMO{czEBEWEXGW!X)|2_&nRK74?&kB>x&_Y)NuVOtvIBCMH{w91|q>Ml#daloA-dOMJ9{z!jEcz?0LH{*3x5D(VzLE*F)`T!z?hh90boo_ zwg50DCR+d)6O%0fjETt>0LH{*3jkwcvIT%KG1&sZPa~z2E(0VJ z$2Ncb&#ghj{X0Ky3vs4s z+g0U17k}HVEyKBI)n-96SshYkwj;bt9Bh+RM)595WgKt2m9iFRsy&-+Ln&z6-E+>= z4{OT^+7fBI>e*W5PS9ps6_xO1v?<99<7MO$w%h1;*v5v?a5ZMKF`siHvfWq8u6o95 zQ<53c%Um~|?U8M^^*y%EvARoz{Bb4aqaGxD!+(37t#cvz^*y#;^OL%@UCI@MKcHAo zv6MsIR(}u9{dC*- z?!)e;v)W$2ja&DvBt6Dyd!ZQbJ*FgrBr~dINiwii?FAq0{3W(7JtbA+UyrRM{oj~u oB_nA}Otz9VCRVm7rF0ei0pU=?^h|5G%K!iX07*qoM6N<$g57S7UjP6A diff --git a/classstdex_1_1parser_1_1sgml__punct__cp-members.html b/classstdex_1_1parser_1_1sgml__punct__cp-members.html index f90d47b7a..bb953f485 100644 --- a/classstdex_1_1parser_1_1sgml__punct__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__punct__cp-members.html @@ -80,19 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
sgml_punct_cp(bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_punct_cp)stdex::parser::sgml_punct_cpinline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1sgml__punct__cp.html b/classstdex_1_1parser_1_1sgml__punct__cp.html index d7c76a042..5edc95749 100644 --- a/classstdex_1_1parser_1_1sgml__punct__cp.html +++ b/classstdex_1_1parser_1_1sgml__punct__cp.html @@ -92,12 +92,15 @@ Inheritance diagram for stdex::parser::sgml_punct_cp: stdex::parser::basic_punct_cu< char > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > + + @@ -107,39 +110,39 @@ Public Member Functions - - - - + + + - - + - - + - - - + + - +

Public Member Functions

sgml_punct_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_punct_cu< char >
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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- 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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

Test for any SGML punctuation code point.

@@ -200,7 +203,7 @@ const std::locale & m_
diff --git a/classstdex_1_1parser_1_1sgml__punct__cp.png b/classstdex_1_1parser_1_1sgml__punct__cp.png index 2e741b4775a728e27a476b33ce837b8b936eb72b..ec8ad3c3f8bbad05e079fbbc09e7a91860f91c05 100644 GIT binary patch delta 1080 zcmV-81jqZs39$)~V1GPGL_t(|0qvdba`P$-gqLL|qx-+&wA0LJLVSG^x;t7zwB?1adq_E>Ir2bwKTp$nzGkg#D87i*kU>+!){$)`O}BG zbFI3{Q_4Lg*N2I5?{(g0Q{&rC`P$zQfIset(><|0<^AVVZaq4xZ*fgK-!tVie$XQx&c6VU4rsO{JU|xeV zb1VQvQBndx3?(H1#86TKKnx`%0K`yI0zeEUB>==wQhx$K3?(H1#86TKKnx`%0K`yI z0zeEUB>;RvwbmM5s3aL&NlB71l$0bHLjz?o50ZROo`Wwr{etlc(_f?{$Fo(YN=%~KMHJx_oP0Iej&-_CW8hxLAyd%?xHtzCd@$8s=d@r5LJMU#7wd{jz z_8Bg~xG=|8?$y1tiQwp7wxFkbc|hsi%kAvBIcs(cN0Zs!XVaVFSkq@YwoPbFrX0J4 z<>go%IGq>wdr6Xq`u0bVWM6*TA4&T93(7~ba<+zKS2in>{H}5@Niv3#k|bj&DM>Ph z7Rp*{jV=KAW!(TEye>g`yIleE5|j(%1u(BcnK>2!qLXg}9+P_m5`Q3uk`e$up;Af- zFBB1x;7Upnkr+x!5s?@=Puc7~v?%A?zB_qRs?lPzd~_a_yZKu0r(N3D_x8AV%q{9| zbJhO(_?xRHBc<5+}2E&R41`-W>>p# zL`0tGB&AL=L~bYTtAG2bX|MVy`_-`VPY=h-;95k))#(#!*0&v(nR4sVQGJW`CPhs7 zYs%sH=?r?;hFzX4%q;$?|6|G`qGg}iW}o2}jtgVs8}IVLy|g*t)Aw>adv1>1V$xK& z_t_k)(V86V?B!sfQ<^*S(>Yc|+ zuipN4@Ati5^6$U>XlU?#$FkMVfAbi>cc}e%u+qHDSiv)%FI91Cz3D!uS!H{+_Uzuc z@i>o9TdjxKtg?zr?YDM@-R1VowR~L3)Wr5_#)5f1_Z~m$`xxW5|5wlQoI4GL)785>FXeo{8P|7^-+y_v z<@~v;t0O&f+ts6M+oBEieCF4G_J99$!ta7}$10}3e_HqLj@0hu3q;>ZY&P}ZymeVz z@6|(DO|x6)X06#ZvyaVFYVN|%ZTxRCu!bb#Ij^8Q?ErZbSzrJ(g0M>(6MkyJ)A|5 zQPGMK0c@v|q2YMt5?G5zg*tHSE{cXj^WF0ZcPIb*x- z<*R`Gy@8WwUb>z8em76Nw58{vg*r>>w;c=jxZJmWTA{hww;7EmH$;bV5m%;W@wT7H$3| zcfI7+LUqmG%=Vx8Ju|-5e*M_zGym3()02;;AAj?-`en?$N`3B?Z)c>eK3~9itkrUV zQT*L{?`V#5?^3<1c1>5Ga&PaQ^YfyUzn5&8A)CByk7l3g-!;d!HC#(swXr%17#E$F zD+}xOJwJum{}WWXx&8h(_euNiIqnqGPS5rz%iXSYa=zAgSlR?7(u{>`wqAR|)L?&& znc>iDu_^t>WexHjcRJi-_$)UiGMQ1KYtrO6X4%OJ%wqKqM75Sq`QRid$hmHbh+yYJ zF!6fI*>|qpMQ7h`J~%n3S8VoE_w?GI2KVp%-r)WJ+g&+%=HmXU+p$~gYyX`Mom_aQ z##Dc{>vdJ7N3Xe31urg(6cx-p9v$75m-FuBvo)FTvX^zM*P?_^LtMxS7&A)SPf0a&zCIy08GYVn@vrx z-8_BJ!FiVTr`x7sE>E~^pB|b2MK@f$_r9xT{EDr9TMsKKSv<<#{;NJbP0l+XkKE_W#j diff --git a/classstdex_1_1parser_1_1sgml__space__cp-members.html b/classstdex_1_1parser_1_1sgml__space__cp-members.html index 2c60c7f1f..74ccd9f74 100644 --- a/classstdex_1_1parser_1_1sgml__space__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__space__cp-members.html @@ -80,20 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1sgml__space__cp.html b/classstdex_1_1parser_1_1sgml__space__cp.html index e1ea69abb..0a1f6d1c0 100644 --- a/classstdex_1_1parser_1_1sgml__space__cp.html +++ b/classstdex_1_1parser_1_1sgml__space__cp.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::sgml_space_cp: stdex::parser::basic_space_cu< char > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > @@ -110,39 +110,39 @@ 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< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- 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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

Test for any SGML space code point.

@@ -203,7 +203,7 @@ const std::locale & m_
diff --git a/classstdex_1_1parser_1_1sgml__space__cp.png b/classstdex_1_1parser_1_1sgml__space__cp.png index 1bf6e65577d503d03e467bd419622fe4d542157f..f6157b36deb734fa88e2261af0fb52769cca04f4 100644 GIT binary patch delta 1113 zcmdnXxr%c_LcOV{i(^Oy38pc=lW1VriEYMt-CvS2H$e6BNO$Y#N^bI`(nSn)dzjx9z)b zy^B8X{r}sZ_<799{h7P0)|~(U_I*cT@t0e#Of!_SZwm^qyj8fJz5Z^`SKF)vgPdvK z=I*ar`OatcvuCm|1gE}qYpv{&@?X62)7s@V@7Hr5sLSuN^1Lhd<>zL{(;l^}-x~T# z-&cO2U9a_}F7#I^Eh@c{^`)o(Y`rC$yzAf9fUPfYud@E?zG>U6)kkkmP*b^W z_PcM=lMwsAg?qjv{}y++9<}*7uV>uK8-bI)EMZXf^ydlyGFVNX&&gL{__0Hdp@97^ z>z9u^IA6v(h@Y#TaF5Mol^(;7pa!M}byf|A3T%veTyil>F~ZyG!V*1|pQe#~``%7b z$(>v9*D+wy9*_U5v&3F+`MXv>@B7->OY5ue>7Q@hc-$mb_S*BbQx~`Fm1%2do|LPt zJlTThg3GmS%4$JdALsG!l6+l#dKr|8*|gHbKB@` zHw)eOyJfQvZ~j}8%M%N4^GDC!rTgM@dh@i2zrt=O&obM0{7SB`_m1D)Y<=fmR;I{i zMfbGHyjt}7d)0=DsX1aVRMOiQSCqN;Hru=dM!0p{rK2mXIse|;vOs+9Mca1|d;A>M z8b{Sny0B)K>a?iaeTK1bwI-U`MwWU%+`c-m^USJUSNBe}cw9b3W%;gWkAE!mf0y5| zZmL_Vyr+zmxSHZpJ zFJ=n@OBoMLXA)ts(R5%uFd2nWk12#K@<40pluNQLDoT&y8MTxid4h@Oj^(?%uRZd>NF5JG}#n|kd$@?{l(^9kR(}UN)_MXh*>!PHjUm|p6&icrcYAwlEDuV8*bY@+v zF#dQXa6Z41(lo#2dECGL++2{lWZ%_q8Tpf3OtWjsBW9GPPj4)%v{>_H$MxpcSx5c; zpRCxvIIZ;0&MT(pR_M9i?R;}R&8GSB#=n1!qrgGEAWE#?Ft#*%#j00+!Qs|He>|>= z3RW)Gx2*hnsj^*Nx1PJiCNg`erP=dV=iDFH9e3-92nPOIZLOvBX}jnGC8c>HAYx0y evMHB%zwjRxd%t;8iESPO5O})!xvX38pcXa80%&LeW)m%g1hgKxFgkqP`x zf4ZZx_cjH18toIBqN1$n=xH=*UV~V%;>q_Xiw(Z^%Ko4KwY#vEV~R?z9ZQs${?m`! zt!nOMfA{|XxN`R$_Gfa}OGN5vYRxD3hn0YpMe~I;Vue%dM-g1=8xou^fxGnH`rkUx!<6GzQ+}eHkN*&Ajfd1g{ z^R@qfF8J+H@BMwpGB%IqKDN7)IcsC?7uv~xT_Mr?(k$=rj_Z?;vSgY4&2T?{a`y7W zvU81Ja9c;6xHroo9wiWJMKj)$?=iODi-7jXxNpB9_z@Fo~ zchzn0wKMOmc^gu?d$y*d$E8;%%crRDe|@}O+jC#=e70EabB^04K3T5`6omu|D0DIz z*KWPW&B1VQoisy?V>sj9yLwJlq8C~}OD&nscy<*x!^SBK7z8{yxfmwa!&yWy)(5TK z8t1q|MKYe#YtqCi3sfXMnKKN8OuF5rm4DXi+r8U5 zd+Gm=dt%=)7x!oHvU+nq>(tGV_*sd?4nf;%pD6Ivvu~NOH@BnJWbNHt$JHA*9_R6C zOFMP(is_cQxuV}DTJmM5JKkM6W$moHdLQ=Oxpw7;obWm0(mgLT`P`r7=5I4AHGT2- zdGkBvzq)rH&(gYI{3`3R?VY!-?8l#dDNJErrRNsR$9u82+BVY0+l>E6=m*o zn{D1_C{}0d-%P4EnbT63Yx1J|+zYYqC2sroxJTDa~J@lDpg^DvIX*x32D@+m+VNe3Hh-Sns z4f5LA6yW0WNZZlX1*jEBytH|d_I*)l<3@EqTI!UX=?3ImVe$Ww<{21Sw2N`GB1qJ<=2ZuM`tG9b$cj^8m+iSB$ z49`m6mwD$id-L>0zDkR=U-n#|+&c59|NrKXiSBn_{it5~dQKoH*;}qVTf_D|`S(v? zP^W^zx}hpECwbeeZvnnnZGB>2f6xsLcX?v}Yue;={ki28mp%nA_=d#Wzp$P!L CC=i1H 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 index f64937cd4..172716ebd 100644 --- a/classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html +++ b/classstdex_1_1parser_1_1sgml__space__or__punct__cp-members.html @@ -80,19 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< T >inline
sgml_space_or_punct_cp(bool invert=false, const std::locale &locale=std::locale()) (defined in stdex::parser::sgml_space_or_punct_cp)stdex::parser::sgml_space_or_punct_cpinline
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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 index ae9e418af..857478913 100644 --- a/classstdex_1_1parser_1_1sgml__space__or__punct__cp.html +++ b/classstdex_1_1parser_1_1sgml__space__or__punct__cp.html @@ -92,12 +92,15 @@ Inheritance diagram for stdex::parser::sgml_space_or_punct_cp: stdex::parser::basic_space_or_punct_cu< char > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > + + @@ -107,39 +110,39 @@ Public Member Functions - - - - + + + - - + - - + - - - + + - +

Public Member Functions

sgml_space_or_punct_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_or_punct_cu< char >
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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 
- 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
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

Test for any SGML space or punctuation code point.

@@ -200,7 +203,7 @@ const std::locale & m_
diff --git a/classstdex_1_1parser_1_1sgml__space__or__punct__cp.png b/classstdex_1_1parser_1_1sgml__space__or__punct__cp.png index c31ad3f989df0a1de05824488e465c2c922f2a2f..139945e706e935540637ace53903f0db7f04ab91 100644 GIT binary patch delta 1211 zcmZwGZ&XqT6aa8-R&Ht>JJng%avE+yHp4$LA+dT|K1)j{Gc?n-^-M9%|EB3%ox+A^ z3?KeO3rbPc3QOe>k>Jv11sG{+N=kV)E$73L3X);dKJ4u5?0&dk?!8}r_g;&g!HyjV zp8*4QN90(em(jFoy#0#uLM}`Ho_VnH*$V4#Id?;llR&lo;H+6(L)k%%-S?! z-H=wS0~j9Qga|HrV?oD+AjFkNhpe@W3>Ag3KKG zR>XUH*o=McGSaWf+&ls`Vl7U-g;?CE)&cC{yZ)EzD@NiCp9XQik5$Tjj`5?_)-=`GucKo#4%x&7@W3*dalYMgmCB@kGMtPH-{Wg^H^p8!#IsA-@-6WeKQFju~ zkOWVPV~^`wlBQ41;(n3J`X+SlfUxP$%E>(@eezmGFFRH;4mfR`CC?@{8atfg2i7=- zOqE{ETVdXuexk44yO8-*RDmPA=L@ISQ4-JW-~y5;!;9SB#B?v&Np4m`@O<&}7>G(!v~ zO~xv-g!)aAYM!3vb0y2_gdF;E_v2$ND%GSNFL*UIR}_iqyW=${u~%2MXKtX#6WN-T zcOp}X3}#C5iNo6=h~-Z#RH+uWEZMj^aJhj37q6C!-akO=QV9{kI1pER-Hfs6z+1%= RKS8V(0}Koe5bcRO_cwzVbWZ>P delta 1238 zcmZA0dr(qY90zcu*4;{Ld(gujWwg7KI;LCLgDu+fYH>4cQj^g{EEP31@{yDQx3=kO zI!a#9yplPr^gt43buc%z$F!`iVivkSLwZbO4+!xE0qN52HnY?D8=27n zHK?xatdNGHl~Ql0m6?Ww6l_T~JlW`{Yhr6-J=<;U$A^6H1 z8ScEN(YjS!GaOUFD zQX&>H_IP_LoV1uAW9$iXL{JR)x;}oJURQ`@FPS`@X`;_ac8Y{X?!~`+U$-wcHk?F*ARC?@g8^Y&Ifzchv^7cW`P`JlRIQ*qmx}r%9HyePUfPR5 z*#DDz;m5ksA192M{NoWG_-|Sk>{tn(lnz^WCf62ppj_H!TnO5(spt*`&eaZkjV2(5!gwRM=O(b-CGOK zQ4U!}4-RGymAQ2lGqSs$d>1$KtEqyCFj{*#6Ous7RyAFcig0yT2V^fUJn!``Epzzi z)~1LH<@--*bPX|ctTjLK7z4?xZgV(ts}OPArVzEyZs=w7C>61PYwNY5v;w6Yh4he# zfpXVt{;Oi3K%|cRIeH^fP9>sHknBrcHM3S*C8?X$9EDcQ-?-tn$5(NS>H5& z?rWjb=|aS##$$#Kzc-t^(?QcOfU2uD=i^0Sntrzv@H=vliQef@-Bi9Q0ZJVUKugwO zHwTJ)HcuyS2`VW@^DbO=7Trv6vd*n_4}>B^Jy2=U=h%<^r?CmgR)4({e>}wLX0=ko zaATh+#lmqH7A%THBlnWe9${5hVe27~#af#FP!r(ej$zI=keZ6d+_SQSmf38kJk|N& zWY$WvNRm_HCx9)8R}Zi0mPMc+F*YUgdmD|iW>_(2nb;s{^*kH(wtd3$U#pUC4gSi8 zXwC3nyPcc!^DJy_{6M3Rjdtre`f6DIo~@G(MpeNl zw=o07gxrDpwv3Zl+GW0+A2IS^qZk`PuhTL6=8<3quP3RRt+H*|@y{4HyhV^6KEp?l z?@7FoQ~9)|ii+vI6hG$TiEcMSQ@-bVdriUMiQTfv9V9mGl0_ms@|8d9d6PzCV77>W z`n(1@vwk{xymn(S8*j<7TI+X(5ML*#b*ugF{3bbkzX~JI-XhU-*A7|1R~vzb1o<>B2*EQ`19Xn;dn>@ diff --git a/classstdex_1_1parser_1_1sgml__string-members.html b/classstdex_1_1parser_1_1sgml__string-members.html index d57235d18..592d130ec 100644 --- a/classstdex_1_1parser_1_1sgml__string-members.html +++ b/classstdex_1_1parser_1_1sgml__string-members.html @@ -80,14 +80,14 @@ $(function() {

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

- +
intervalstdex::parser::basic_tester< char >
intervalstdex::parser::basic_parser< 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 index 3144b21cc..20facfe31 100644 --- a/classstdex_1_1parser_1_1sgml__string.html +++ b/classstdex_1_1parser_1_1sgml__string.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::sgml_string:
-stdex::parser::basic_tester< char > +stdex::parser::basic_parser< char >
@@ -103,40 +103,40 @@ 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())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< char >
basic_parser (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
 
- Protected Attributes inherited from stdex::parser::basic_parser< char >
+std::locale m_locale
 
- - + - - + +

Additional Inherited Members

- Public Attributes inherited from stdex::parser::basic_tester< char >
+
- Public Attributes inherited from stdex::parser::basic_parser< char >
interval< size_t > interval
 Test for interval.
 
 Region of the last match.
 

Detailed Description

Test for SGML given string.

@@ -187,7 +187,7 @@ Additional Inherited Members
@@ -197,7 +197,7 @@ Additional Inherited Members diff --git a/classstdex_1_1parser_1_1sgml__string.png b/classstdex_1_1parser_1_1sgml__string.png index 27e2abd7671f5a30e0da1f3b069216ebca5db731..07d9b697a3136e99caf919707a5386a32c19e1aa 100644 GIT binary patch delta 744 zcmZ3*Hj_=UGr-TCmrII^fq{Y7)59eQNM8fu01jp#8FZ!k=0rvN`X!z&jv*C{Z|A=5 zd#%9J(%uXdLu28;q*=>W+9xWVyl1k(W0NSa&ZHby z$*=Ay+3m}!4qntxn)oEVgj4&>-owAP^TgZ_HZT4ibzjck`DW1DT^3t@rPder zu3mh7Z_pZtsGAK;FTHARPn%JHFYsd2%Bit) z^W}Y>|J%fR<@nPCJC5Kr&)4^Djm`bR=Vy1VK84>|%e>~+-CO!kKy-;TdH)_?o|fheOxV!|qw&Brn) zrf5q=sNC#g6Z71*NHQB3D%Ok#@?SDC{9Wn4=J;aob#@!mR>|$OIx00&fZ^7~156EJ zCL0(Q07Hx+!rhU7Frti)%3Zq(dyvm@Z-01&9rhq-V=G^b+%4BOf0ZWr!0O`u};;F&R2~wo9}~6FJzi; zv}yK~_bzYWJ-NPiTk}o6JAy4=eRixr^eJx3PoEb?jj4wgE3Aoon$NyaW$z{Tx^?`& zK1V$DwTql|y4zs4a;nEA?b;0=^W&!QyVdY}Px{vb_jblHF2$C2U-JJj OybPYMelF{r5}E)dl4GU- delta 761 zcmVL3h+m+g$R@BhTN*0v!5d#gv!&Gh21+CoV9AjH3zrfIs8Fp=bSG=NAl zvjz}JW>x?y?uR7bQ_n%u7d!qQ^~Ab<5r`z6z6?}m>+<+oCO)2PH*^2vef_x)v^`zZ z#i6~g0k?=Qc<@vkcUM5NZaYvRf32-3g>-FyS{GN1#U3}%7}g_2G?GmU8=A(vXhOkXMv-K%g$GCs`K--ATs(ZSoZs9dhG%!z9;C3Hl zJX>g86k?jhZH;HwSTsQH5TBh;48D7MdO~eRbWW&{*7ixhD1;1-dr&X$f2VgSEHh+J zjMuwETk>?P+!oDh%s%F;jxEfa_NttfHW%FOVN>PIO>^Mg{~?lmsvrM5k>t1aFMyVt z@9sQFen|iI36W%a4Iq-ttN}!lnKc7V(==U30Prii0l<}XHK5z=VnkO1nt858bUC0= ztN{c7nKgg_AhQM#0A$tx0)WgK zKmd?g0|)@#Q7NTdNhp$Z9StB!%B%q-NttyXXtnzie{{ROzZ@<*kR-jNQ$S_5nJfJA za5sNE`;EMJts~3pW0vnRZ=0+2%K=!lZMdExNk=*ZR3vM*fFfDjf1g(3YOL+4<}9n- zw#P@?=eQY?bfl9&d!V?;%B0Fkd-ZS5n~GfPjd!9-(t%E=Tu&eHmmOO-c;mT zZ~RL@A%E;B>|TVkYb;!pe%kiNzXMbxYrAV-6vB;(d(gWh@mlrvF0g+#<@!}_i*Ge; zAM;ht-F2&S&r+^?Ph~%sa*}kUx178_DKSucBbM@UkW`;73X*iBH#Ymsg^*8$a rNm33CAW6!s0VGM8H3OAW%7yd?@?5UCa>(OU00000NkvXXu0mjf_*G(! diff --git a/classstdex_1_1parser_1_1sgml__url__password__char-members.html b/classstdex_1_1parser_1_1sgml__url__password__char-members.html index cf93c1f73..c30b57400 100644 --- a/classstdex_1_1parser_1_1sgml__url__password__char-members.html +++ b/classstdex_1_1parser_1_1sgml__url__password__char-members.html @@ -80,20 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1sgml__url__password__char.html b/classstdex_1_1parser_1_1sgml__url__password__char.html index 82da5432b..981d45b28 100644 --- a/classstdex_1_1parser_1_1sgml__url__password__char.html +++ b/classstdex_1_1parser_1_1sgml__url__password__char.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::sgml_url_password_char: stdex::parser::basic_url_password_char< char > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > @@ -110,35 +110,35 @@ 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< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

Test for valid URL password SGML character.

@@ -199,7 +199,7 @@ const std::locale & m_
diff --git a/classstdex_1_1parser_1_1sgml__url__password__char.png b/classstdex_1_1parser_1_1sgml__url__password__char.png index 815169a07b7870b3ddbfd547a3f674981ddc08cc..786b6a27bb451f384dfc0f359ee0ad234a56ea4b 100644 GIT binary patch delta 1257 zcmV=4E+m`V1I~7L_t(|0qvdZlHxiH2HT&jru6<#e1JfFlOSPccINDgN(1pl zcG|Y`ms)F0YOU3SDoKeXt)w1F3Q0YZ6q0%*DJ1nsQpg*6%J3se@8JdbbkHvj^vm=} z(wFcfddg+gvVGkqu>J3+b1C2M??2aywZv_D3)t>Y$J^()1%G7p6br(~l z;oAS*AGNESONNT2VYeW!; zj-d00tJib=_<9~Styf>-Htk}sdY;7_9(Z;+k9tnf+0;BAh(;`;EJ&NPq3x2Om@ObmnKHVOlwud!l$t?g{jKXYP4yYxm9dn00$&>~-Tiq&?u+ z^yQl?j3=pG?KC}tEn8BOj&b&INzyakorffOe04lYI>B$%bIZKXD?7)FVkD7d^Gsn$%jW1Hf!*WTth-V)N8Y5RH6YKYhC*(c<78Xm4&$>nZsI>h#N&w;L!e=QYh zU`Y=1-|0buR+FIdaP@kwA79U-ruFJe+@@XZqk4w%y8vhOw0ZT1I&QTH>QnQ)tLG)3 z_tny3-Q?@aAJsGN&Ha3B=|)nS@E&}q4|mTR#o0YYYS-RrOwI1vxdR-{JuPP+?OG&F zIJw7P$T{}}dc558I416!YtN2*f2QB-#@yc}(xIvQ=GsS^q^(^a-)$$fb@Sg`ZMbFA z9&R-qE=hWZ*I$ypmOnF!Bpu)<^xQJ}u#NiCw?^?pO48@Z-6KgMXY@$YKSt`2q>$7j zNg=66l0s6CB!yh`)LLs&Ypo6dzljfk1i&Np07QIzq#uBQ)B_N4v6FrP2YgZwz!Opq zlNmsQ%WgGDW!N&%*+xqvz63iW)_lq%*;YkkC|CW>M=75Ij-m4?wf4- zVLvt4()o>OsmIJLo1~f96OQO9X64(i!w6~ym0K)0OB-4M-+4cD@JywWyw9yP63 zUou9sV#9Sv&oFd1uQPhqDVdqM98Asg)*e=Icv^Rzr@8nC^oX8uTkhv;NMWz^to3GQ zKJVwAe=#+?3+T?p$yc+Uet*5nJ!ZvRoZRz0dLGBbeRJ(8a(^l8b>nNIO>KB{EqeAr zCaL29{Rr(ewIgghBPyCIe56t%%1U9kTadWWR_-T=lCf->+ZfK@#SUvD1Fbr z8`8||C_lD)PEPy(y?e~e{zg)dnOR8cF*6HECp~6nA*sjAEaal6lv0vXN^$rP9O5SF T^S8Zo00000NkvXXu0mjfwy>Uk delta 1268 zcmZA0eNfT|7{GBX(>W>DWo?yW8fj$O8Z4WMR9d`EE8OZtrP4x)rCa73O24jJmYFDc zGGgFN8ks{&;{qkCRcZraqL43<76}7IGXb3roZjuOZqHxO-=FXEIK3}}%Z>mQxR_nv zSx{deeRvcajdkKphQgV+Pi}8ym0z<4DfLe)8s3W0nvMR6|yro=N z*0UZLP>W&hCNg0^%0(hDnq`BM&))bhY?|JaX|g|}!>B_In)v!uj&(%P=6JBrLTc5c z&t$BmT^_JOZ|l(>FED_wM^&KxsvZn8XOp$@!W`5SAF8wzU}CHmBda=v+6$?@{wg9+ zQl(R!)H=(B@$%|4Ro>S}^Q1L8St4)Q9nBmLrYz zTzX$1+jRvQ`8G0SGH;7F-H0{->xT0={oI>eMpKf1k#}Yf*N8rzO$7h>!U$~}@)(;Oj4W@&4Dy6aGZUYQLW=*!OCF7YSEZ&2m zY~R0&yhUQM`_v|faswqJ(^Gjp^%-HSH&tF_3mDLTWPWl1&yYvJ26sCq_tXWD8%)>^ zD>5=EoUPFJpT1-j3sxitCjy%^4^M4Z0wPZ@QtY|5PVI>7y?RS;njLJ&bt89mzq5pA zzc{hH$G>y(mOxZUK18^ZUEY8I4yvWwm`;gbIO~rKQ$x{=`2ZVL7C5n`G|td9s^af> z*w-ZD_ocP0!mUvC8TP#?bhy*yO=*KcW4w{=eoTPvy17>E8e8XgtvRzkRfy~F&z{Q& zsqW;>8BaV8z2Z1sN6o@%5ONpGM*AC8gVlJsE(m6EQJZU8ZQ=v}l(B56Qwwq-beI{~ z`~PcBviFc^M4EURsOrg*b#8C5D9~~aVaDyFh2_u=v#007U^^%>V3-YY$IoYh0EO2C zL_7`;e|kQJQuz~CEQBJO%6d{Mt5|fUa{fcO2_5+;W)AvTH)K})s8W>~LqJg|0U}!k zjn~M~xA(fH){_O2H3Ab@{iSJV*rTPlx43BSW?& zDJ&ECM2}RmA>ve#jfF%Mw3$C_SJL%c@ArHS0<0gl7Yn}JfIx8Am`VBFq6A-oj&Fj0 z3Y-^oA;J`?z*0=_A-ax^KvYes1rzB&PVk?dPrquQpqw)^meH*t#@9ci&^7<{3S@GA zKM>v;L^|=9N9)Q0e}VJ!{0o!bB8%nD86&nmM+&)I#k0=i6i3Oub8?NDbBs!HtO4-q z=H~ID>35BK!rT}!aotU5C8xG diff --git a/classstdex_1_1parser_1_1sgml__url__path__char-members.html b/classstdex_1_1parser_1_1sgml__url__path__char-members.html index b4701f529..d16eaed7d 100644 --- a/classstdex_1_1parser_1_1sgml__url__path__char-members.html +++ b/classstdex_1_1parser_1_1sgml__url__path__char-members.html @@ -80,20 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1sgml__url__path__char.html b/classstdex_1_1parser_1_1sgml__url__path__char.html index 66ac3cbda..68cd74e93 100644 --- a/classstdex_1_1parser_1_1sgml__url__path__char.html +++ b/classstdex_1_1parser_1_1sgml__url__path__char.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::sgml_url_path_char: stdex::parser::basic_url_path_char< char > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > @@ -110,35 +110,35 @@ 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< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

Test for valid URL path SGML character.

@@ -199,7 +199,7 @@ const std::locale & m_
diff --git a/classstdex_1_1parser_1_1sgml__url__path__char.png b/classstdex_1_1parser_1_1sgml__url__path__char.png index f63e31d5e9320aa3fa3244efe71bf1adbcba9c14..54a5924a20efe39d83ecc7cf9a36ff3caefe2e04 100644 GIT binary patch delta 1199 zcmaLVeNfT|9LMqRj|W4|7BkOt&a%W+meuAdIUn<(q_kb2l955q>A*76)Y2)x>#kzO zDO#?~$22X}Li4FnB+Y!rheXXX(3z&oDIGoy95ni4`(wA;pP#$;f3FYUxZYKWF{eAWybQvj$4KpBK(HC|#~?++L%6VR}$EGoO^ZO1nPc-FUUT*Q|6_R5CHXxEcQn{I0|0b53n#-x0J%m*}GtuNU#c!RHg$~O{9?rPUpJJt z(!4@6LkEtn#9*ptV>dpm!E<1~*Qh#kU8T4!|A=M|$=A?C1N|Jj#5*nwH&S=fi;-uo z;IBcockRGZf6=OMO2M!awD+%B786`jMc=u+R+3|+?Myn>2$bAPBvqYzN4lOaeA0H~ ze%qwQ!ax^|HJusBwx3Fl4nLAL;eDNfl6n_@Yu3s20qQ`mk(BzT!QHN7lo~001OaMh zC=dWaNjeTjkkFHX2j(Ca+`HV+wq{pE1?9`jK~fKN%X!2W0FA~2ysrX)LJI(CErttl zHqklN?fej#dTR+s)5+@NU0zU$TmCU5bgjbr?M}J|2thSbGPN{Z}zdrGMPSMQ}g9G<( zh<_Z6P_0ZNT(8uw2^b|3s8Z#jsc;B~_5Obf1K59gNy$0X{e>4u zo5tw|ARG{hP2x{jdCR_!Pc)Xcl&2?5Ul_wkZGe3&PRAHJteUa7qhCDtX#2(_4{poI z9A~A{ceLp3EpcN!`NOQuC3$yL^<5rM=myyVZ2K`1_0{P{VnwUAurtayEUmA#L~q1l zceN9I{U!p*$hEp!9eqR14^Q=!b5}_fiB_z|p{N4dw$;QeCxsH@jB28>!}~6WC`u)i zPX}X>!-{ZZ+R}pfWnwL%!I(Q7TH-<$TX8H>trbYI>>{Kj5Qz-Y3kb*Mb-!p4Mx314 zYg*isb=++C)Vw)E>WN>9+pqCxJ+o)WEg`KK8@Ijx@o|Z_bD1kX!*Q3pga7SVawE!X z&pj5e=0D$8vX01JbcD2vJ0>5vJzP>g#WZB`+QZWvv4yKwMA7ILUVD@9qYldBF@u1* czoSNveU(CRq^?@WFkk@1|DfM}AJ+N500mel!~g&Q delta 1212 zcma)+eK6a19LK-E2qIM)9P@BP7HgS0rRdtyuyAE*87U>S>OxgKv`sxf{C>J_O^a4S zakQ1wBMBYxa0yz*SSj_;5n094*`}!o)=En}Ew|q7w*U6|`}NoBb??uvPCm9U5-#;6 zc~a6K#RDn(-4VSU=s#65!kguN18u6Nd>C_Bsaq{tmyi2P1yhWLo&>@sp-xJs&zOu|)$R%VK0KuV4 z`|Y+KNz&yv?W85?ZgXYy@J(Dk{u3!Gf&8ITKXQfNJZYTD3ya;;rN=87XWOUBR}Nig z;bX@pa$GCSr<4LF<%c_F zg8j{z*rk_Zv#hl@wc#dJH#4}zgWCgbQ8N!vVsdE!A-$e;kjM^Eb=#8Jm0~yOtlczm zg8jR+*mPA35H?2aAOeCWvah&ksC{AW!8$Jy>#))s)Opi}&af&!M-jV5y-x zxNndjk~Q8ZaG66RAsX*#DgL?c?69D_9ud*>(F|TD*5cs{tdu{rFKD*TbA@MN9xVjE z=ia>Oc|fR~m`&R_fK8?BzH1Cy${F%2iRWiUQiCW-;17x#;g7Cs+lm>n&~;%M&g{8xt%5O6 zA@zze2tKgE>@too`LhKVr&5)~3>!45I59q(dyDBwY{T!F{r9w>@s@WAH_OJH?wwPi zMfk-{MsLkseGO5`T8(YteSJgr8hvle)6w+fCjby;$ z^b0IiduSg6YeAh`;~BBun@yqc_>hd}{mw-*2GvZam?(dV+DDZBI)8>htwJO{({by#5!Zuq=ZB diff --git a/classstdex_1_1parser_1_1sgml__url__username__char-members.html b/classstdex_1_1parser_1_1sgml__url__username__char-members.html index cda1b02f0..050fff5aa 100644 --- a/classstdex_1_1parser_1_1sgml__url__username__char-members.html +++ b/classstdex_1_1parser_1_1sgml__url__username__char-members.html @@ -80,20 +80,20 @@ $(function() {

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
basic_parser(const std::locale &locale=std::locale()) (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inline
intervalstdex::parser::basic_parser< T >
invalidate() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
m_locale (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< 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
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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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_parser< T >)stdex::parser::basic_parser< 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
~basic_parser() (defined in stdex::parser::basic_parser< T >)stdex::parser::basic_parser< T >inlinevirtual
diff --git a/classstdex_1_1parser_1_1sgml__url__username__char.html b/classstdex_1_1parser_1_1sgml__url__username__char.html index 1e42641bb..1729e7f38 100644 --- a/classstdex_1_1parser_1_1sgml__url__username__char.html +++ b/classstdex_1_1parser_1_1sgml__url__username__char.html @@ -92,7 +92,7 @@ Inheritance diagram for stdex::parser::sgml_url_username_char: stdex::parser::basic_url_username_char< char > -stdex::parser::basic_tester< T > +stdex::parser::basic_parser< T > @@ -110,35 +110,35 @@ 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< T >
basic_tester (const std::locale &locale=std::locale())
 
+
- Public Member Functions inherited from stdex::parser::basic_parser< T >
basic_parser (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)
 
+
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 >
+
- Public Attributes inherited from stdex::parser::basic_parser< T >
interval< size_t > interval
 Test for interval.
 
- Protected Attributes inherited from stdex::parser::basic_tester< T >
-const std::locale & m_locale
 
 Region of the last match.
 
- Protected Attributes inherited from stdex::parser::basic_parser< T >
+std::locale m_locale
 

Detailed Description

Test for valid URL username SGML character.

@@ -199,7 +199,7 @@ const std::locale & m_
diff --git a/classstdex_1_1parser_1_1sgml__url__username__char.png b/classstdex_1_1parser_1_1sgml__url__username__char.png index a41fa73ec9695dce099a3aeb2f4ad6fff46f41bc..872a0317fe02027b96371782ec7664c02b44b210 100644 GIT binary patch delta 1278 zcmYk*eNfVO90zdq^4y(HdvKLl(oVvMOqZ;@i22jhAyIhYdQy|pi>4N~#1POQZR@hy zN(IdaL|oy>6ule6he=p-K9o#+#H6GtB`E^=1mj7DUDxgV$M?Sfe81nj_v`&JyX)MG z&oHQ%*ywNaoVA=6Bn{HT6^)I0Vz*DT;4QiSi2+9_Kl*L1>A8FE7GyHDUL@zqlTJTi zmc}z<%q6^vWq-_`Su`_kxCqvbn&Nu^%;jyVSF_y;a%&@&{4rru6l*C~_{N~GdZLxc z)Oe7t1S1KJJ4s_%j}6vKV*lRcT82dgoAvNA1>rmPA>trSDv~D4NDB2y4f(8NgDE)G zk}>r%Y4SFV^UqNLeg37qP`N#u!xzo1r(amq0@EC<}Ye^S46HNw`6!7jPrVEWhcg% zhuna_Ss*M3Zi~lDyAuQ=xJW+d z{0^7zeR(VG-I-;c&O!FF>vw7E_P99ma(7la187@A_2yTMk#Rn{I zT~f3M{>sXUO6!6xKG>6hG$wNB8%L`=Zfml(axZ$) zR0WOY+6KvA0wmd7%H6xTRmgs5b7A-D|IJUi_FW-7#zXf4z zO;6YzA08wrCFjyi0;5EcoByRwHgcI$X5gUO?H;W3z}y$eM|{_q{d(YgXtsSqEp%X2 z{;rj5_v>;VWcoGyp&lO^4!<&B+S_g0J}S!W+=f=Lyj*asD2EyK08m%TEXCh)@0Nz_LFB{(MB<*=UTFy2R#EBTLkKID zz!n<78}YJC_tbn+4oanII8#tL(lIcK9<3yM;p4#UR`_LF#`zMUKyvwzx;DKZEq?TD zXvVOw@2OP!=4Wo2yh*;cIl#I(OdUJx8J)r1ya`*si5v)-77&`b?8-?MkL%yD11!h+ z+E+4e5WBBuRRR(yVwWdQ+o7T35B{%ClOYv2wfvk8sh%26I{I>p6^*B;V_wRp59%w%MH+dpfeS%;t)AUQ{ z{SsWMn0_J==*u>pQX6y8r|+b6j!Ne}URlg1)H37nK7=Je+*edN!G(Q{bUB^4nYETA jG!#4(v@@vAyU6bJ&K#hB5cnp-$+0kTxY(wHXMXq(j5(yr delta 1290 zcmZY7eNfT|7zc37)|--Bb7t2imTbiIbV#K#?U!i>NX8A#7tBa4ma;U&BvbjhE!}!i z6r5oVX$kYRp*2G+4gauwSt?4RX^6`=G>2%Q$Xkwf>uz^@{&@a-?tAzBJPS@{r_xhk zAwE1b`l5rD|1xtjc>G`b zfOqe<;Ydf#WkR083y+$^a+2#!$aXe7vEAujdG7~c`to$EdV~#!S~E;YX~(n4@ep=r zzCbCqF16b7WN`#lov}chLpu*<(9h;w9gNLJmkOQol*F=8NhMNoeit)=(!ykPFDBQ% z2&ldD3bRKdh>?qxV>m^S?`ma~2gCgmv-LvNP+izxIk<`~ozkf1tPQcyL^37+4*@6> z*di@;e)PLrJuU%^Lbue}rC=XME+rr<39K4^52B1dF3Te+YvPn&wvGO>f8Rmp z?o5{Ci)UHoLj8$23de9gR#7IDP88cz0k510hdHw1p8<}m-jM~L6a25WbOb9+yuVfw z<5Iw!aP)LIj|U*TVKC$-&pkHCWtBnbSx{hbT)h5(`_Z~XT;KIOKz;VV7u)OLpK_*3 zS#acM|Fz%>{H-{}{#FR_dztEvZ~?P@Aza)xi{%_vj}sp%ec7PV1!m0WC7332ET+8s z70t(W4lfx5U8v=rH{Xkmf{B^OOVYo|usxAQ-!(=Fv(H6tPi-z~sdh}VbAYwYH{&As zT`4`enmfE>by|&!SDaUQQKbo~+EUbyyO8wVDAaA0k4<-Tlq7qNS0U z+X3p%OCz$^cKxs#qAA{<)>1p_cQ40UBJVun&OGZssFUk&@;2sI#S@^+Z3eE!n^n>E zeDx{n`{=N1w5@$s5J_q&VRzVa$n}j185dy`BxO2_(i3Wo4^HjX*bs}8TELQ*EpG_n zHjPQ!QvxAmMaprb6+^aZsQDf>mPd`kY<@(D~Vjcn&~*5%^OH%w5#xa)$up*fn< zw>Ub?nd0j0KP{WUa^8;P?0nq!HT%5#`C9@qEiz54bo`UQ3c*26C|nM8bz--y`w?f? z3kb36dDoIF1_dt24?^Qzafs>ITwj-K5ATWkP;+f z^xvQMQlFeY%gEh1b(%Vp*+E3nV(0B^n9ejz;PJ-Zkm<)D@!A#9;AV^~bZMwzSl-)H zMOVnn5qC zKm@&WV=yaO>P9NiKII-UM%@D}ytX<37U4T6ezyOEk531BlhfKwk`kl3>-W$3dRiPh z@xXvdIc)1&K0{r(P6(BW&Y&A%Q&Q`1dW)>u7h6wBqh=Qk%ibzYdh#fh3KnL(NujO~ tIqxeyYDS^2;omjs5detFIpw6QouJER#IlYKFM-$xf8>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 diff --git a/classstdex_1_1progress-members.html b/classstdex_1_1progress-members.html index d7701c8bb..ec0b65479 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 466d69e88..736c58a01 100644 --- a/classstdex_1_1progress.html +++ b/classstdex_1_1progress.html @@ -318,7 +318,7 @@ template<class T > diff --git a/classstdex_1_1user__cancelled-members.html b/classstdex_1_1user__cancelled-members.html index 863de705d..3ff41d531 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 53011a0a8..7f5a63f3b 100644 --- a/classstdex_1_1user__cancelled.html +++ b/classstdex_1_1user__cancelled.html @@ -141,7 +141,7 @@ Public Member Functions diff --git a/classstdex_1_1vector__queue-members.html b/classstdex_1_1vector__queue-members.html index 4310c4611..769b6fffa 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 af29ee88f..3309c429d 100644 --- a/classstdex_1_1vector__queue.html +++ b/classstdex_1_1vector__queue.html @@ -795,7 +795,7 @@ template<class T > diff --git a/dir_4be4f7b278e009bf0f1906cf31fb73bd.html b/dir_4be4f7b278e009bf0f1906cf31fb73bd.html index 25867ab96..7d0260a97 100644 --- a/dir_4be4f7b278e009bf0f1906cf31fb73bd.html +++ b/dir_4be4f7b278e009bf0f1906cf31fb73bd.html @@ -86,7 +86,7 @@ Files diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html index dee22e78d..d1e4b03c4 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 c1c32381d..c696a7e6e 100644 --- a/dir_fca3c47b2ea228727bd6729832f89576.html +++ b/dir_fca3c47b2ea228727bd6729832f89576.html @@ -114,7 +114,7 @@ Files diff --git a/errno_8hpp_source.html b/errno_8hpp_source.html index 2c4550829..1df62857e 100644 --- a/errno_8hpp_source.html +++ b/errno_8hpp_source.html @@ -136,7 +136,7 @@ $(function() { diff --git a/exception_8hpp_source.html b/exception_8hpp_source.html index 5d54a25df..e87ac200a 100644 --- a/exception_8hpp_source.html +++ b/exception_8hpp_source.html @@ -102,7 +102,7 @@ $(function() { diff --git a/files.html b/files.html index c954a2da3..44d6e6ca4 100644 --- a/files.html +++ b/files.html @@ -99,7 +99,7 @@ $(function() { diff --git a/functions.html b/functions.html index 18fb0aee9..98eff1f11 100644 --- a/functions.html +++ b/functions.html @@ -75,7 +75,7 @@ $(function() {

- a -

- d -

@@ -212,7 +212,7 @@ $(function() {

- s -

@@ -253,7 +253,7 @@ $(function() { diff --git a/functions_func.html b/functions_func.html index f24f18c94..83f4daf8a 100644 --- a/functions_func.html +++ b/functions_func.html @@ -198,7 +198,7 @@ $(function() { diff --git a/functions_type.html b/functions_type.html index 2c4d841de..f3d7c3d6b 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 c2889ed48..d3837352e 100644 --- a/functions_vars.html +++ b/functions_vars.html @@ -74,7 +74,7 @@ $(function() {

- a -

@@ -86,29 +86,29 @@ $(function() {

- c -

- d -

- e -

- f -

@@ -118,8 +118,8 @@ $(function() {

- i -

@@ -127,7 +127,7 @@ $(function() {
  • m_allow_absolute : stdex::parser::basic_dns_name< T >
  • m_count : stdex::vector_queue< T >
  • m_data : stdex::vector_queue< T >
  • -
  • m_el : stdex::parser::basic_iterations< T >
  • +
  • m_el : stdex::parser::basic_iterations< T >
  • m_greedy : stdex::parser::basic_iterations< T >
  • m_head : stdex::vector_queue< T >
  • m_max_iterations : stdex::parser::basic_iterations< T >
  • @@ -140,25 +140,25 @@ $(function() {

    - n -

    - p -

    - s -

    @@ -176,7 +176,7 @@ $(function() { diff --git a/hex_8hpp_source.html b/hex_8hpp_source.html index 5655f2b0e..b5a93b45a 100644 --- a/hex_8hpp_source.html +++ b/hex_8hpp_source.html @@ -209,7 +209,7 @@ $(function() { diff --git a/hierarchy.html b/hierarchy.html index a7775cc3f..5fedcc731 100644 --- a/hierarchy.html +++ b/hierarchy.html @@ -77,7 +77,7 @@ $(function() {
    [detail level 1234]
    - + @@ -137,12 +137,12 @@ $(function() { - + - + - + @@ -189,14 +189,14 @@ $(function() { - +
     Cstdex::base64_decBase64 decoding session
     Cstdex::base64_encBase64 encoding session
     Cstdex::parser::basic_tester< T >Base template for all testers
     Cstdex::parser::basic_parser< T >Base template for all parsers
     Cstdex::parser::basic_any_cu< char >
     Cstdex::parser::basic_dns_domain_char< char >
     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::parser_collection< T >Base template for collection-holding parsers
     Cstdex::parser::basic_tester< char >
     Cstdex::parser::basic_parser< char >
     Cstdex::parser::http_agentTest for HTTP agent
     Cstdex::parser::http_any_typeTest for HTTP any type
     Cstdex::parser::http_asteriskTest for HTTP asterisk
     Cstd::runtime_error
     Cstdex::errno_errorStandard C runtime library error
     CT
     Cstdex::parser::http_header_collection< T >Collection of HTTP headers
     Cstdex::parser::http_value_collection< T >Collection of HTTP values
     Cstdex::vector_queue< T >Helper class to allow limited size FIFO queues implemented as vector of elements
    diff --git a/idrec_8hpp_source.html b/idrec_8hpp_source.html index 68d1576f0..b407ec4bd 100644 --- a/idrec_8hpp_source.html +++ b/idrec_8hpp_source.html @@ -275,7 +275,7 @@ $(function() { diff --git a/index.html b/index.html index 84ba7ade2..397834426 100644 --- a/index.html +++ b/index.html @@ -76,7 +76,7 @@ $(function() { diff --git a/interval_8hpp_source.html b/interval_8hpp_source.html index dbb544c38..7c13445ce 100644 --- a/interval_8hpp_source.html +++ b/interval_8hpp_source.html @@ -118,7 +118,7 @@ $(function() { diff --git a/mapping_8hpp_source.html b/mapping_8hpp_source.html index 6429604d5..01e8a9e1c 100644 --- a/mapping_8hpp_source.html +++ b/mapping_8hpp_source.html @@ -109,7 +109,7 @@ $(function() { diff --git a/memory_8hpp_source.html b/memory_8hpp_source.html index da9968ce2..3a8fd6d04 100644 --- a/memory_8hpp_source.html +++ b/memory_8hpp_source.html @@ -119,7 +119,7 @@ $(function() { diff --git a/parser_8hpp_source.html b/parser_8hpp_source.html index fac2a2c1f..65a4cafb7 100644 --- a/parser_8hpp_source.html +++ b/parser_8hpp_source.html @@ -118,11 +118,11 @@ $(function() {
    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() {}
    +
    51 basic_parser(_In_ const std::locale& locale = std::locale()) : m_locale(locale) {}
    +
    52 virtual ~basic_parser() {}
    53
    54 bool search(
    55 _In_reads_or_z_(end) const T* text,
    @@ -216,23 +216,23 @@ $(function() {
    144 }
    146
    147 public:
    - +
    149
    150 protected:
    -
    151 const std::locale& m_locale;
    +
    151 std::locale m_locale;
    152 };
    153
    - - + +
    156#ifdef _UNICODE
    -
    157 using ttester = wtester;
    +
    157 using tparser = wparser;
    158#else
    -
    159 using ttester = tester;
    +
    159 using tparser = parser;
    160#endif
    - +
    162
    166 template <class T>
    -
    167 class basic_noop : public basic_tester<T>
    +
    167 class basic_noop : public basic_parser<T>
    168 {
    169 public:
    170 virtual bool match(
    @@ -261,6240 +261,6266 @@ $(function() {
    194
    198 template <class T>
    -
    199 class basic_any_cu : public basic_tester<T>
    +
    199 class basic_any_cu : public basic_parser<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 };
    +
    202 basic_any_cu(_In_ const std::locale& locale = std::locale()) : basic_parser<T>(locale) {}
    +
    203
    +
    204 virtual bool match(
    +
    205 _In_reads_or_z_(end) const T* text,
    +
    206 _In_ size_t start = 0,
    +
    207 _In_ size_t end = (size_t)-1,
    +
    208 _In_ int flags = match_default)
    +
    209 {
    +
    210 assert(text || start >= end);
    +
    211 if (start < end && text[start]) {
    +
    212 interval.end = (interval.start = start) + 1;
    +
    213 return true;
    +
    214 }
    +
    215 interval.start = (interval.end = start) + 1;
    +
    216 return false;
    +
    217 }
    +
    218 };
    +
    219
    + + +
    222#ifdef _UNICODE
    +
    223 using tany_cu = wany_cu;
    +
    224#else
    +
    225 using tany_cu = any_cu;
    +
    226#endif
    +
    227
    +
    231 class sgml_any_cp : public basic_any_cu<char>
    +
    232 {
    +
    233 public:
    +
    234 sgml_any_cp(_In_ const std::locale& locale = std::locale()) : basic_any_cu<char>(locale) {}
    +
    235
    +
    236 virtual bool match(
    +
    237 _In_reads_or_z_(end) const char* text,
    +
    238 _In_ size_t start = 0,
    +
    239 _In_ size_t end = (size_t)-1,
    +
    240 _In_ int flags = match_default)
    +
    241 {
    +
    242 assert(text || start >= end);
    +
    243 if (start < end && text[start]) {
    +
    244 if (text[start] == '&') {
    +
    245 // SGML entity
    +
    246 const auto& ctype = std::use_facet<std::ctype<char>>(m_locale);
    +
    247 for (interval.end = start + 1; interval.end < end && text[interval.end]; interval.end++)
    +
    248 if (text[interval.end] == ';') {
    +
    249 interval.end++;
    +
    250 interval.start = start;
    +
    251 return true;
    +
    252 }
    +
    253 else if (text[interval.end] == '&' || ctype.is(ctype.space, text[interval.end]))
    +
    254 break;
    +
    255 // Unterminated entity
    +
    256 }
    +
    257 interval.end = (interval.start = start) + 1;
    +
    258 return true;
    +
    259 }
    +
    260 interval.start = (interval.end = start) + 1;
    +
    261 return false;
    +
    262 }
    +
    263 };
    +
    264
    +
    268 template <class T>
    +
    269 class basic_cu : public basic_parser<T>
    +
    270 {
    +
    271 public:
    +
    272 basic_cu(T chr, bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    273 basic_parser<T>(locale),
    +
    274 m_chr(chr),
    +
    275 m_invert(invert)
    +
    276 {}
    +
    277
    +
    278 virtual bool match(
    +
    279 _In_reads_or_z_(end) const T* text,
    +
    280 _In_ size_t start = 0,
    +
    281 _In_ size_t end = (size_t)-1,
    +
    282 _In_ int flags = match_default)
    +
    283 {
    +
    284 assert(text || start >= end);
    +
    285 if (start < end && text[start]) {
    +
    286 bool r;
    +
    287 if (flags & match_case_insensitive) {
    +
    288 const auto& ctype = std::use_facet<std::ctype<T>>(m_locale);
    +
    289 r = ctype.tolower(text[start]) == ctype.tolower(m_chr);
    +
    290 }
    +
    291 else
    +
    292 r = text[start] == m_chr;
    +
    293 if (r && !m_invert || !r && m_invert) {
    +
    294 interval.end = (interval.start = start) + 1;
    +
    295 return true;
    +
    296 }
    +
    297 }
    +
    298 interval.start = (interval.end = start) + 1;
    +
    299 return false;
    +
    300 }
    +
    301
    +
    302 protected:
    +
    303 T m_chr;
    +
    304 bool m_invert;
    +
    305 };
    +
    306
    +
    307 using cu = basic_cu<char>;
    +
    308 using wcu = basic_cu<wchar_t>;
    +
    309#ifdef _UNICODE
    +
    310 using tcu = wcu;
    +
    311#else
    +
    312 using tcu = cu;
    +
    313#endif
    +
    314
    +
    318 class sgml_cp : public sgml_parser
    +
    319 {
    +
    320 public:
    +
    321 sgml_cp(const char* chr, size_t count = (size_t)-1, bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    322 sgml_parser(locale),
    +
    323 m_invert(invert)
    +
    324 {
    +
    325 assert(chr || !count);
    +
    326 wchar_t buf[3];
    +
    327 size_t chr_end;
    +
    328 m_chr.assign(count ? next_sgml_cp(chr, 0, count, chr_end, buf) : L"");
    +
    329 }
    +
    330
    +
    331 virtual bool match(
    +
    332 _In_reads_or_z_(end) const char* text,
    +
    333 _In_ size_t start = 0,
    +
    334 _In_ size_t end = (size_t)-1,
    +
    335 _In_ int flags = match_default)
    +
    336 {
    +
    337 assert(text || start >= end);
    +
    338 if (start < end && text[start]) {
    +
    339 wchar_t buf[3];
    +
    340 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    341 bool r = ((flags & match_case_insensitive) ?
    +
    342 stdex::strnicmp(chr, (size_t)-1, m_chr.c_str(), m_chr.size(), m_locale) :
    +
    343 stdex::strncmp(chr, (size_t)-1, m_chr.c_str(), m_chr.size())) == 0;
    +
    344 if (r && !m_invert || !r && m_invert) {
    +
    345 interval.start = start;
    +
    346 return true;
    +
    347 }
    +
    348 }
    +
    349 interval.start = (interval.end = start) + 1;
    +
    350 return false;
    +
    351 }
    +
    352
    +
    353 protected:
    +
    354 std::wstring m_chr;
    +
    355 bool m_invert;
    +
    356 };
    +
    357
    +
    361 template <class T>
    +
    362 class basic_space_cu : public basic_parser<T>
    +
    363 {
    +
    364 public:
    +
    365 basic_space_cu(bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    366 basic_parser<T>(locale),
    +
    367 m_invert(invert)
    +
    368 {}
    +
    369
    +
    370 virtual bool match(
    +
    371 _In_reads_or_z_(end) const T* text,
    +
    372 _In_ size_t start = 0,
    +
    373 _In_ size_t end = (size_t)-1,
    +
    374 _In_ int flags = match_default)
    +
    375 {
    +
    376 assert(text || start >= end);
    +
    377 if (start < end && text[start]) {
    +
    378 bool r =
    +
    379 ((flags & match_multiline) || !islbreak(text[start])) &&
    +
    380 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::space, text[start]);
    +
    381 if (r && !m_invert || !r && m_invert) {
    +
    382 interval.end = (interval.start = start) + 1;
    +
    383 return true;
    +
    384 }
    +
    385 }
    +
    386 interval.start = (interval.end = start) + 1;
    +
    387 return false;
    +
    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 };
    +
    390 protected:
    +
    391 bool m_invert;
    +
    392 };
    +
    393
    + + +
    396#ifdef _UNICODE
    +
    397 using tspace_cu = wspace_cu;
    +
    398#else
    +
    399 using tspace_cu = space_cu;
    +
    400#endif
    +
    401
    +
    405 class sgml_space_cp : public basic_space_cu<char>
    +
    406 {
    +
    407 public:
    +
    408 sgml_space_cp(_In_ bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    409 basic_space_cu<char>(invert, locale)
    +
    410 {}
    +
    411
    +
    412 virtual bool match(
    +
    413 _In_reads_or_z_(end) const char* text,
    +
    414 _In_ size_t start = 0,
    +
    415 _In_ size_t end = (size_t)-1,
    +
    416 _In_ int flags = match_default)
    +
    417 {
    +
    418 assert(text || start >= end);
    +
    419 if (start < end && text[start]) {
    +
    420 wchar_t buf[3];
    +
    421 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    422 const wchar_t* chr_end = chr + stdex::strlen(chr);
    +
    423 bool r =
    +
    424 ((flags & match_multiline) || !islbreak(chr, (size_t)-1)) &&
    +
    425 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::space, chr, chr_end) == chr_end;
    +
    426 if (r && !m_invert || !r && m_invert) {
    +
    427 interval.start = start;
    +
    428 return true;
    +
    429 }
    +
    430 }
    +
    431
    +
    432 interval.start = (interval.end = start) + 1;
    +
    433 return false;
    +
    434 }
    +
    435 };
    +
    436
    +
    440 template <class T>
    +
    441 class basic_punct_cu : public basic_parser<T>
    +
    442 {
    +
    443 public:
    +
    444 basic_punct_cu(bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    445 basic_parser<T>(locale),
    +
    446 m_invert(invert)
    +
    447 {}
    +
    448
    +
    449 virtual bool match(
    +
    450 _In_reads_or_z_(end) const T* text,
    +
    451 _In_ size_t start = 0,
    +
    452 _In_ size_t end = (size_t)-1,
    +
    453 _In_ int flags = match_default)
    +
    454 {
    +
    455 assert(text || start >= end);
    +
    456 if (start < end && text[start]) {
    +
    457 bool r = std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::punct, text[start]);
    +
    458 if (r && !m_invert || !r && m_invert) {
    +
    459 interval.end = (interval.start = start) + 1;
    +
    460 return true;
    +
    461 }
    +
    462 }
    +
    463 interval.start = (interval.end = start) + 1;
    +
    464 return false;
    +
    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
    +
    467 protected:
    +
    468 bool m_invert;
    +
    469 };
    +
    470
    + + +
    473#ifdef _UNICODE
    +
    474 using tpunct_cu = wpunct_cu;
    +
    475#else
    +
    476 using tpunct_cu = punct_cu;
    +
    477#endif
    +
    478
    +
    482 class sgml_punct_cp : public basic_punct_cu<char>
    +
    483 {
    +
    484 public:
    +
    485 sgml_punct_cp(bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    486 basic_punct_cu<char>(invert, locale)
    +
    487 {}
    +
    488
    +
    489 virtual bool match(
    +
    490 _In_reads_or_z_(end) const char* text,
    +
    491 _In_ size_t start = 0,
    +
    492 _In_ size_t end = (size_t)-1,
    +
    493 _In_ int flags = match_default)
    +
    494 {
    +
    495 assert(text || start >= end);
    +
    496 if (start < end && text[start]) {
    +
    497 wchar_t buf[3];
    +
    498 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    499 const wchar_t* chr_end = chr + stdex::strlen(chr);
    +
    500 bool r = std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::punct, chr, chr_end) == chr_end;
    +
    501 if (r && !m_invert || !r && m_invert) {
    +
    502 interval.start = start;
    +
    503 return true;
    +
    504 }
    +
    505 }
    +
    506 interval.start = (interval.end = start) + 1;
    +
    507 return false;
    +
    508 }
    +
    509 };
    +
    510
    +
    514 template <class T>
    + +
    516 {
    +
    517 public:
    +
    518 basic_space_or_punct_cu(bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    519 basic_parser<T>(locale),
    +
    520 m_invert(invert)
    +
    521 {}
    +
    522
    +
    523 virtual bool match(
    +
    524 _In_reads_or_z_(end) const T* text,
    +
    525 _In_ size_t start = 0,
    +
    526 _In_ size_t end = (size_t)-1,
    +
    527 _In_ int flags = match_default)
    +
    528 {
    +
    529 assert(text || start >= end);
    +
    530 if (start < end && text[start]) {
    +
    531 bool r =
    +
    532 ((flags & match_multiline) || !islbreak(text[start])) &&
    +
    533 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::space | std::ctype_base::punct, text[start]);
    +
    534 if (r && !m_invert || !r && m_invert) {
    +
    535 interval.end = (interval.start = start) + 1;
    +
    536 return true;
    +
    537 }
    +
    538 }
    +
    539 interval.start = (interval.end = start) + 1;
    +
    540 return false;
    +
    541 }
    +
    542
    +
    543 protected:
    +
    544 bool m_invert;
    +
    545 };
    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 }
    + + +
    549#ifdef _UNICODE
    + +
    551#else
    + +
    553#endif
    +
    554
    + +
    559 {
    +
    560 public:
    +
    561 sgml_space_or_punct_cp(bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    562 basic_space_or_punct_cu<char>(invert, locale)
    +
    563 {}
    +
    564
    +
    565 virtual bool match(
    +
    566 _In_reads_or_z_(end) const char* text,
    +
    567 _In_ size_t start = 0,
    +
    568 _In_ size_t end = (size_t)-1,
    +
    569 _In_ int flags = match_default)
    +
    570 {
    +
    571 assert(text || start >= end);
    +
    572 if (start < end && text[start]) {
    +
    573 wchar_t buf[3];
    +
    574 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    575 const wchar_t* chr_end = chr + stdex::strlen(chr);
    +
    576 bool r =
    +
    577 ((flags & match_multiline) || !islbreak(chr, (size_t)-1)) &&
    +
    578 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::space | std::ctype_base::punct, chr, chr_end) == chr_end;
    +
    579 if (r && !m_invert || !r && m_invert) {
    +
    580 interval.start = start;
    +
    581 return true;
    +
    582 }
    +
    583 }
    +
    584 interval.start = (interval.end = start) + 1;
    +
    585 return false;
    +
    586 }
    +
    587 };
    +
    588
    +
    592 template <class T>
    +
    593 class basic_bol : public basic_parser<T>
    +
    594 {
    +
    595 public:
    +
    596 basic_bol(bool invert = false) : m_invert(invert) {}
    +
    597
    +
    598 virtual bool match(
    +
    599 _In_reads_or_z_(end) const T* text,
    +
    600 _In_ size_t start = 0,
    +
    601 _In_ size_t end = (size_t)-1,
    +
    602 _In_ int flags = match_default)
    +
    603 {
    +
    604 assert(text || start >= end);
    +
    605 bool r = start == 0 || start <= end && islbreak(text[start - 1]);
    +
    606 if (r && !m_invert || !r && m_invert) {
    +
    607 interval.end = interval.start = start;
    +
    608 return true;
    +
    609 }
    +
    610 interval.start = (interval.end = start) + 1;
    +
    611 return false;
    +
    612 }
    +
    613
    +
    614 protected:
    +
    615 bool m_invert;
    +
    616 };
    +
    617
    +
    618 using bol = basic_bol<char>;
    +
    619 using wbol = basic_bol<wchar_t>;
    +
    620#ifdef _UNICODE
    +
    621 using tbol = wbol;
    +
    622#else
    +
    623 using tbol = bol;
    +
    624#endif
    + +
    626
    +
    630 template <class T>
    +
    631 class basic_eol : public basic_parser<T>
    +
    632 {
    +
    633 public:
    +
    634 basic_eol(bool invert = false) : m_invert(invert) {}
    +
    635
    +
    636 virtual bool match(
    +
    637 _In_reads_or_z_(end) const T* text,
    +
    638 _In_ size_t start = 0,
    +
    639 _In_ size_t end = (size_t)-1,
    +
    640 _In_ int flags = match_default)
    +
    641 {
    +
    642 assert(text || start >= end);
    +
    643 bool r = islbreak(text[start]);
    +
    644 if (r && !m_invert || !r && m_invert) {
    +
    645 interval.end = interval.start = start;
    +
    646 return true;
    +
    647 }
    +
    648 interval.start = (interval.end = start) + 1;
    +
    649 return false;
    +
    650 }
    +
    651
    +
    652 protected:
    +
    653 bool m_invert;
    +
    654 };
    +
    655
    +
    656 using eol = basic_eol<char>;
    +
    657 using weol = basic_eol<wchar_t>;
    +
    658#ifdef _UNICODE
    +
    659 using teol = weol;
    +
    660#else
    +
    661 using teol = eol;
    +
    662#endif
    + +
    664
    +
    665 template <class T>
    +
    666 class basic_set : public basic_parser<T>
    +
    667 {
    +
    668 public:
    +
    669 basic_set(bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    670 basic_parser<T>(locale),
    +
    671 hit_offset((size_t)-1),
    +
    672 m_invert(invert)
    +
    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
    +
    675 virtual bool match(
    +
    676 _In_reads_or_z_(end) const T* text,
    +
    677 _In_ size_t start = 0,
    +
    678 _In_ size_t end = (size_t)-1,
    +
    679 _In_ int flags = match_default) = 0;
    +
    680
    +
    681 virtual void invalidate()
    +
    682 {
    +
    683 hit_offset = (size_t)-1;
    + +
    685 }
    +
    686
    +
    687 public:
    +
    688 size_t hit_offset;
    +
    689
    +
    690 protected:
    +
    691 bool m_invert;
    +
    692 };
    +
    693
    +
    697 template <class T>
    +
    698 class basic_cu_set : public basic_set<T>
    +
    699 {
    +
    700 public:
    + +
    702 _In_reads_or_z_(count) const T* set,
    +
    703 _In_ size_t count = (size_t)-1,
    +
    704 _In_ bool invert = false,
    +
    705 _In_ const std::locale& locale = std::locale()) :
    +
    706 basic_set<T>(invert, locale)
    +
    707 {
    +
    708 if (set)
    +
    709 m_set.assign(set, set + stdex::strnlen(set, count));
    +
    710 }
    +
    711
    +
    712 virtual bool match(
    +
    713 _In_reads_or_z_(end) const T* text,
    +
    714 _In_ size_t start = 0,
    +
    715 _In_ size_t end = (size_t)-1,
    +
    716 _In_ int flags = match_default)
    +
    717 {
    +
    718 assert(text || start >= end);
    +
    719 if (start < end && text[start]) {
    +
    720 const T* set = m_set.c_str();
    +
    721 const T* r = (flags & match_case_insensitive) ?
    +
    722 stdex::strnichr(set, text[start], m_set.size(), m_locale) :
    +
    723 stdex::strnchr(set, text[start], m_set.size());
    +
    724 if (r && !m_invert || !r && m_invert) {
    +
    725 hit_offset = r ? r - set : (size_t)-1;
    +
    726 interval.end = (interval.start = start) + 1;
    +
    727 return true;
    +
    728 }
    +
    729 }
    +
    730 hit_offset = (size_t)-1;
    +
    731 interval.start = (interval.end = start) + 1;
    +
    732 return false;
    +
    733 }
    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
    +
    735 protected:
    +
    736 std::basic_string<T> m_set;
    +
    737 };
    +
    738
    + + +
    741#ifdef _UNICODE
    +
    742 using tcu_set = wcu_set;
    +
    743#else
    +
    744 using tcu_set = cu_set;
    +
    745#endif
    +
    746
    +
    750 class sgml_cp_set : public basic_set<char>
    +
    751 {
    +
    752 public:
    +
    753 sgml_cp_set(const char* set, size_t count = (size_t)-1, bool invert = false, _In_ const std::locale& locale = std::locale()) :
    +
    754 basic_set<char>(invert, locale)
    +
    755 {
    +
    756 if (set)
    +
    757 m_set = sgml2str(set, count);
    +
    758 }
    +
    759
    +
    760 virtual bool match(
    +
    761 _In_reads_or_z_(end) const char* text,
    +
    762 _In_ size_t start = 0,
    +
    763 _In_ size_t end = (size_t)-1,
    +
    764 _In_ int flags = match_default)
    +
    765 {
    +
    766 assert(text || start >= end);
    +
    767 if (start < end && text[start]) {
    +
    768 wchar_t buf[3];
    +
    769 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    770 const wchar_t* set = m_set.c_str();
    +
    771 const wchar_t* r = (flags & match_case_insensitive) ?
    +
    772 stdex::strnistr(set, chr, m_set.size(), m_locale) :
    +
    773 stdex::strnstr(set, chr, m_set.size());
    +
    774 if (r && !m_invert || !r && m_invert) {
    +
    775 hit_offset = r ? r - set : (size_t)-1;
    +
    776 interval.start = start;
    +
    777 return true;
    +
    778 }
    +
    779 }
    +
    780 hit_offset = (size_t)-1;
    +
    781 interval.start = (interval.end = start) + 1;
    +
    782 return false;
    +
    783 }
    +
    784
    +
    785 protected:
    +
    786 std::wstring m_set;
    +
    787 };
    +
    788
    +
    792 template <class T>
    +
    793 class basic_string : public basic_parser<T>
    +
    794 {
    +
    795 public:
    + +
    797 _In_reads_or_z_(count) const T* str,
    +
    798 _In_ size_t count = (size_t)-1,
    +
    799 _In_ const std::locale& locale = std::locale()) :
    +
    800 basic_parser<T>(locale),
    +
    801 m_str(str, str + stdex::strnlen(str, count))
    +
    802 {}
    +
    803
    +
    804 virtual bool match(
    +
    805 _In_reads_or_z_(end) const T* text,
    +
    806 _In_ size_t start = 0,
    +
    807 _In_ size_t end = (size_t)-1,
    +
    808 _In_ int flags = match_default)
    +
    809 {
    +
    810 assert(text || start >= end);
    +
    811 size_t
    +
    812 m = m_str.size(),
    +
    813 n = std::min<size_t>(end - start, m);
    +
    814 bool r = ((flags & match_case_insensitive) ?
    +
    815 stdex::strnicmp(text + start, n, m_str.c_str(), m, m_locale) :
    +
    816 stdex::strncmp(text + start, n, m_str.c_str(), m)) == 0;
    +
    817 if (r) {
    +
    818 interval.end = (interval.start = start) + n;
    +
    819 return true;
    +
    820 }
    +
    821 interval.start = (interval.end = start) + 1;
    +
    822 return false;
    +
    823 }
    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& el: m_collection)
    -
    960 el->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 {}
    +
    825 protected:
    +
    826 std::basic_string<T> m_str;
    +
    827 };
    +
    828
    + + +
    831#ifdef _UNICODE
    +
    832 using tstring = wstring;
    +
    833#else
    +
    834 using tstring = string;
    +
    835#endif
    +
    836
    + +
    841 {
    +
    842 public:
    +
    843 sgml_string(const char* str, size_t count = (size_t)-1, _In_ const std::locale& locale = std::locale()) :
    +
    844 sgml_parser(locale),
    +
    845 m_str(sgml2str(str, count))
    +
    846 {}
    +
    847
    +
    848 virtual bool match(
    +
    849 _In_reads_or_z_(end) const char* text,
    +
    850 _In_ size_t start = 0,
    +
    851 _In_ size_t end = (size_t)-1,
    +
    852 _In_ int flags = match_default)
    +
    853 {
    +
    854 assert(text || start >= end);
    +
    855 const wchar_t* str = m_str.c_str();
    +
    856 const bool case_insensitive = flags & match_case_insensitive ? true : false;
    +
    857 const auto& ctype = std::use_facet<std::ctype<wchar_t>>(m_locale);
    +
    858 for (interval.end = start;;) {
    +
    859 if (!*str) {
    +
    860 interval.start = start;
    +
    861 return true;
    +
    862 }
    +
    863 if (interval.end >= end || !text[interval.end]) {
    +
    864 interval.start = (interval.end = start) + 1;
    +
    865 return false;
    +
    866 }
    +
    867 wchar_t buf[3];
    +
    868 const wchar_t* chr = next_sgml_cp(text, interval.end, end, interval.end, buf);
    +
    869 for (; *chr; ++str, ++chr) {
    +
    870 if (!*str ||
    +
    871 (case_insensitive ? ctype.tolower(*str) != ctype.tolower(*chr) : *str != *chr))
    +
    872 {
    +
    873 interval.start = (interval.end = start) + 1;
    +
    874 return false;
    +
    875 }
    +
    876 }
    +
    877 }
    +
    878 }
    +
    879
    +
    880 protected:
    +
    881 std::wstring m_str;
    +
    882 };
    +
    883
    +
    887 template <class T>
    + +
    889 {
    +
    890 public:
    +
    891 basic_iterations(const std::shared_ptr<basic_parser<T>>& el, size_t min_iterations = 0, size_t max_iterations = (size_t)-1, bool greedy = true) :
    +
    892 m_el(el),
    +
    893 m_min_iterations(min_iterations),
    +
    894 m_max_iterations(max_iterations),
    +
    895 m_greedy(greedy)
    +
    896 {}
    +
    897
    +
    898 virtual bool match(
    +
    899 _In_reads_or_z_(end) const T* text,
    +
    900 _In_ size_t start = 0,
    +
    901 _In_ size_t end = (size_t)-1,
    +
    902 _In_ int flags = match_default)
    +
    903 {
    +
    904 assert(text || start >= end);
    +
    905 interval.start = interval.end = start;
    +
    906 for (size_t i = 0; ; i++) {
    +
    907 if (!m_greedy && i >= m_min_iterations || i >= m_max_iterations)
    +
    908 return true;
    +
    909 if (!m_el->match(text, interval.end, end, flags)) {
    +
    910 if (i >= m_min_iterations)
    +
    911 return true;
    +
    912 break;
    +
    913 }
    +
    914 if (m_el->interval.end == interval.end) {
    +
    915 // Element did match, but the matching interval was empty. Quit instead of spinning.
    +
    916 return true;
    +
    917 }
    +
    918 interval.end = m_el->interval.end;
    +
    919 }
    +
    920 interval.start = (interval.end = start) + 1;
    +
    921 return false;
    +
    922 }
    +
    923
    +
    924 protected:
    +
    925 std::shared_ptr<basic_parser<T>> m_el;
    + + +
    928 bool m_greedy;
    +
    929 };
    +
    930
    + + +
    933#ifdef _UNICODE
    +
    934 using titerations = witerations;
    +
    935#else
    +
    936 using titerations = iterations;
    +
    937#endif
    + +
    939
    +
    943 template <class T>
    + +
    945 {
    +
    946 protected:
    +
    947 parser_collection(_In_ const std::locale& locale) : basic_parser<T>(locale) {}
    +
    948
    +
    949 public:
    + +
    951 _In_count_(count) const std::shared_ptr<basic_parser<T>>* el,
    +
    952 _In_ size_t count,
    +
    953 _In_ const std::locale& locale = std::locale()) :
    +
    954 basic_parser<T>(locale)
    +
    955 {
    +
    956 assert(el || !count);
    +
    957 m_collection.reserve(count);
    +
    958 for (size_t i = 0; i < count; i++)
    +
    959 m_collection.push_back(el[i]);
    +
    960 }
    +
    961
    + +
    963 _Inout_ std::vector<std::shared_ptr<basic_parser<T>>>&& collection,
    +
    964 _In_ const std::locale& locale = std::locale()) :
    +
    965 basic_parser<T>(locale),
    +
    966 m_collection(std::move(collection))
    +
    967 {}
    +
    968
    +
    969 virtual void invalidate()
    +
    970 {
    +
    971 for (auto& el: m_collection)
    +
    972 el->invalidate();
    + +
    974 }
    +
    975
    +
    976 protected:
    +
    977 std::vector<std::shared_ptr<basic_parser<T>>> m_collection;
    +
    978 };
    +
    979
    +
    983 template <class T>
    + +
    985 {
    +
    986 public:
    + +
    988 _In_count_(count) const std::shared_ptr<basic_parser<T>>* el = nullptr,
    +
    989 _In_ size_t count = 0,
    +
    990 _In_ const std::locale& locale = std::locale()) :
    +
    991 parser_collection<T>(el, count, locale)
    +
    992 {}
    +
    993
    + +
    995 _Inout_ std::vector<std::shared_ptr<basic_parser<T>>>&& collection,
    +
    996 _In_ const std::locale& locale = std::locale()) :
    +
    997 parser_collection<T>(std::move(collection), locale)
    +
    998 {}
    +
    999
    +
    1000 virtual bool match(
    +
    1001 _In_reads_or_z_(end) const T* text,
    +
    1002 _In_ size_t start = 0,
    +
    1003 _In_ size_t end = (size_t)-1,
    +
    1004 _In_ int flags = match_default)
    +
    1005 {
    +
    1006 assert(text || start >= end);
    +
    1007 interval.end = start;
    +
    1008 for (auto i = m_collection.begin(); i != m_collection.end(); ++i) {
    +
    1009 if (!(*i)->match(text, interval.end, end, flags)) {
    +
    1010 for (++i; i != m_collection.end(); ++i)
    +
    1011 (*i)->invalidate();
    +
    1012 interval.start = (interval.end = start) + 1;
    +
    1013 return false;
    +
    1014 }
    +
    1015 interval.end = (*i)->interval.end;
    +
    1016 }
    +
    1017 interval.start = start;
    +
    1018 return true;
    +
    1019 }
    +
    1020 };
    +
    1021
    + + +
    1024#ifdef _UNICODE
    +
    1025 using tsequence = wsequence;
    +
    1026#else
    +
    1027 using tsequence = sequence;
    +
    1028#endif
    +
    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& el: m_collection)
    -
    1187 el->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& el: m_collection) {
    -
    1205 if (!el->interval) {
    -
    1206 // Element was not matched in permutatuion yet.
    -
    1207 all_matched = false;
    -
    1208 if (el->match(text, start, end, flags)) {
    -
    1209 // Element matched for the first time.
    -
    1210 if (match_recursively(text, el->interval.end, end, flags)) {
    -
    1211 // Rest of the elements matched too.
    -
    1212 return true;
    -
    1213 }
    -
    1214 el->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 {}
    +
    1034 template <class T>
    + +
    1036 {
    +
    1037 protected:
    +
    1038 basic_branch(_In_ const std::locale& locale) :
    +
    1039 parser_collection<T>(locale),
    +
    1040 hit_offset((size_t)-1)
    +
    1041 {}
    +
    1042
    +
    1043 public:
    + +
    1045 _In_count_(count) const std::shared_ptr<basic_parser<T>>* el = nullptr,
    +
    1046 _In_ size_t count = 0,
    +
    1047 _In_ const std::locale& locale = std::locale()) :
    +
    1048 parser_collection<T>(el, count, locale),
    +
    1049 hit_offset((size_t)-1)
    +
    1050 {}
    +
    1051
    + +
    1053 _Inout_ std::vector<std::shared_ptr<basic_parser<T>>>&& collection,
    +
    1054 _In_ const std::locale& locale = std::locale()) :
    +
    1055 parser_collection<T>(std::move(collection), locale),
    +
    1056 hit_offset((size_t)-1)
    +
    1057 {}
    +
    1058
    +
    1059 virtual bool match(
    +
    1060 _In_reads_or_z_(end) const T* text,
    +
    1061 _In_ size_t start = 0,
    +
    1062 _In_ size_t end = (size_t)-1,
    +
    1063 _In_ int flags = match_default)
    +
    1064 {
    +
    1065 assert(text || start >= end);
    +
    1066 hit_offset = 0;
    +
    1067 for (auto i = m_collection.begin(); i != m_collection.end(); ++i, ++hit_offset) {
    +
    1068 if ((*i)->match(text, start, end, flags)) {
    +
    1069 interval = (*i)->interval;
    +
    1070 for (++i; i != m_collection.end(); ++i)
    +
    1071 (*i)->invalidate();
    +
    1072 return true;
    +
    1073 }
    +
    1074 }
    +
    1075 hit_offset = (size_t)-1;
    +
    1076 interval.start = (interval.end = start) + 1;
    +
    1077 return false;
    +
    1078 }
    +
    1079
    +
    1080 virtual void invalidate()
    +
    1081 {
    +
    1082 hit_offset = (size_t)-1;
    + +
    1084 }
    +
    1085
    +
    1086 public:
    +
    1087 size_t hit_offset;
    +
    1088 };
    +
    1089
    +
    1090 using branch = basic_branch<char>;
    + +
    1092#ifdef _UNICODE
    +
    1093 using tbranch = wbranch;
    +
    1094#else
    +
    1095 using tbranch = branch;
    +
    1096#endif
    + +
    1098
    +
    1102 template <class T, class T_parser = basic_string<T>>
    + +
    1104 {
    +
    1105 public:
    +
    1106 inline basic_string_branch(
    +
    1107 _In_reads_(count) const T* str_z = nullptr,
    +
    1108 _In_ size_t count = 0,
    +
    1109 _In_ const std::locale& locale = std::locale()) :
    +
    1110 basic_branch<T>(locale)
    +
    1111 {
    +
    1112 build(str_z, count);
    +
    1113 }
    +
    1114
    +
    1115 inline basic_string_branch(_In_z_ const T* str, ...) :
    +
    1116 basic_branch<T>(std::locale())
    +
    1117 {
    +
    1118 va_list params;
    +
    1119 va_start(params, str);
    +
    1120 build(str, params);
    +
    1121 va_end(params);
    +
    1122 }
    +
    1123
    +
    1124 inline basic_string_branch(_In_ const std::locale& locale, _In_z_ const T* str, ...) :
    +
    1125 basic_branch<T>(locale)
    +
    1126 {
    +
    1127 va_list params;
    +
    1128 va_start(params, str);
    +
    1129 build(str, params);
    +
    1130 va_end(params);
    +
    1131 }
    +
    1132
    +
    1133 protected:
    +
    1134 void build(_In_reads_(count) const T* str_z, _In_ size_t count)
    +
    1135 {
    +
    1136 assert(str_z || !count);
    +
    1137 if (count) {
    +
    1138 size_t offset, n;
    +
    1139 for (
    +
    1140 offset = n = 0;
    +
    1141 offset < count && str_z[offset];
    +
    1142 offset += stdex::strnlen(str_z + offset, count - offset) + 1, ++n);
    +
    1143 m_collection.reserve(n);
    +
    1144 for (
    +
    1145 offset = 0;
    +
    1146 offset < count && str_z[offset];
    +
    1147 offset += stdex::strnlen(str_z + offset, count - offset) + 1)
    +
    1148 m_collection.push_back(std::move(std::make_shared<T_parser>(str_z + offset, count - offset, m_locale)));
    +
    1149 }
    +
    1150 }
    +
    1151
    +
    1152 void build(_In_z_ const T* str, _In_ va_list params)
    +
    1153 {
    +
    1154 const T* p;
    +
    1155 for (
    +
    1156 m_collection.push_back(std::move(std::make_shared<T_parser>(str, (size_t)-1, m_locale)));
    +
    1157 (p = va_arg(params, const T*)) != nullptr;
    +
    1158 m_collection.push_back(std::move(std::make_shared<T_parser>(p, (size_t)-1, m_locale))));
    +
    1159 }
    +
    1160 };
    +
    1161
    + + +
    1164#ifdef _UNICODE
    + +
    1166#else
    + +
    1168#endif
    + +
    1170
    +
    1174 template <class T>
    + +
    1176 {
    +
    1177 public:
    + +
    1179 _In_count_(count) const std::shared_ptr<basic_parser<T>>* el = nullptr,
    +
    1180 _In_ size_t count = 0,
    +
    1181 _In_ const std::locale& locale = std::locale()) :
    +
    1182 parser_collection<T>(el, count, locale)
    +
    1183 {}
    +
    1184
    + +
    1186 _Inout_ std::vector<std::shared_ptr<basic_parser<T>>>&& collection,
    +
    1187 _In_ const std::locale& locale = std::locale()) :
    +
    1188 parser_collection<T>(std::move(collection), locale)
    +
    1189 {}
    +
    1190
    +
    1191 virtual bool match(
    +
    1192 _In_reads_or_z_(end) const T* text,
    +
    1193 _In_ size_t start = 0,
    +
    1194 _In_ size_t end = (size_t)-1,
    +
    1195 _In_ int flags = match_default)
    +
    1196 {
    +
    1197 assert(text || start >= end);
    +
    1198 for (auto& el: m_collection)
    +
    1199 el->invalidate();
    +
    1200 if (match_recursively(text, start, end, flags)) {
    +
    1201 interval.start = start;
    +
    1202 return true;
    +
    1203 }
    +
    1204 interval.start = (interval.end = start) + 1;
    +
    1205 return false;
    +
    1206 }
    +
    1207
    +
    1208 protected:
    +
    1209 bool match_recursively(
    +
    1210 _In_reads_or_z_(end) const T* text,
    +
    1211 _In_ size_t start = 0,
    +
    1212 _In_ size_t end = (size_t)-1,
    +
    1213 _In_ int flags = match_default)
    +
    1214 {
    +
    1215 bool all_matched = true;
    +
    1216 for (auto& el: m_collection) {
    +
    1217 if (!el->interval) {
    +
    1218 // Element was not matched in permutatuion yet.
    +
    1219 all_matched = false;
    +
    1220 if (el->match(text, start, end, flags)) {
    +
    1221 // Element matched for the first time.
    +
    1222 if (match_recursively(text, el->interval.end, end, flags)) {
    +
    1223 // Rest of the elements matched too.
    +
    1224 return true;
    +
    1225 }
    +
    1226 el->invalidate();
    +
    1227 }
    +
    1228 }
    +
    1229 }
    +
    1230 if (all_matched) {
    +
    1231 interval.end = start;
    +
    1232 return true;
    +
    1233 }
    +
    1234 return false;
    +
    1235 }
    +
    1236 };
    +
    1237
    + + +
    1240#ifdef _UNICODE
    +
    1241 using tpermutation = wpermutation;
    +
    1242#else
    +
    1243 using tpermutation = permutation;
    +
    1244#endif
    +
    1246
    -
    1247 virtual void invalidate()
    -
    1248 {
    -
    1249 value = 0;
    - -
    1251 }
    -
    1252
    +
    1250 template <class T>
    +
    1251 class basic_integer : public basic_parser<T>
    +
    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;
    +
    1254 basic_integer(_In_ const std::locale& locale = std::locale()) :
    +
    1255 basic_parser<T>(locale),
    +
    1256 value(0)
    +
    1257 {}
    +
    1258
    +
    1259 virtual void invalidate()
    +
    1260 {
    +
    1261 value = 0;
    + +
    1263 }
    +
    1264
    +
    1265 public:
    +
    1266 size_t value;
    +
    1267 };
    +
    1268
    +
    1272 template <class T>
    + +
    1274 {
    +
    1275 public:
    + +
    1277 _In_ const std::shared_ptr<basic_parser<T>>& digit_0,
    +
    1278 _In_ const std::shared_ptr<basic_parser<T>>& digit_1,
    +
    1279 _In_ const std::shared_ptr<basic_parser<T>>& digit_2,
    +
    1280 _In_ const std::shared_ptr<basic_parser<T>>& digit_3,
    +
    1281 _In_ const std::shared_ptr<basic_parser<T>>& digit_4,
    +
    1282 _In_ const std::shared_ptr<basic_parser<T>>& digit_5,
    +
    1283 _In_ const std::shared_ptr<basic_parser<T>>& digit_6,
    +
    1284 _In_ const std::shared_ptr<basic_parser<T>>& digit_7,
    +
    1285 _In_ const std::shared_ptr<basic_parser<T>>& digit_8,
    +
    1286 _In_ const std::shared_ptr<basic_parser<T>>& digit_9,
    +
    1287 _In_ const std::locale& locale = std::locale()) :
    +
    1288 basic_integer<T>(locale),
    +
    1289 m_digit_0(digit_0),
    +
    1290 m_digit_1(digit_1),
    +
    1291 m_digit_2(digit_2),
    +
    1292 m_digit_3(digit_3),
    +
    1293 m_digit_4(digit_4),
    +
    1294 m_digit_5(digit_5),
    +
    1295 m_digit_6(digit_6),
    +
    1296 m_digit_7(digit_7),
    +
    1297 m_digit_8(digit_8),
    +
    1298 m_digit_9(digit_9)
    +
    1299 {}
    +
    1300
    +
    1301 virtual bool match(
    +
    1302 _In_reads_or_z_(end) const T* text,
    +
    1303 _In_ size_t start = 0,
    +
    1304 _In_ size_t end = (size_t)-1,
    +
    1305 _In_ int flags = match_default)
    +
    1306 {
    +
    1307 assert(text || start >= end);
    +
    1308 for (interval.end = start, value = 0; interval.end < end && text[interval.end];) {
    +
    1309 size_t dig;
    +
    1310 if (m_digit_0->match(text, interval.end, end, flags)) { dig = 0; interval.end = m_digit_0->interval.end; }
    +
    1311 else if (m_digit_1->match(text, interval.end, end, flags)) { dig = 1; interval.end = m_digit_1->interval.end; }
    +
    1312 else if (m_digit_2->match(text, interval.end, end, flags)) { dig = 2; interval.end = m_digit_2->interval.end; }
    +
    1313 else if (m_digit_3->match(text, interval.end, end, flags)) { dig = 3; interval.end = m_digit_3->interval.end; }
    +
    1314 else if (m_digit_4->match(text, interval.end, end, flags)) { dig = 4; interval.end = m_digit_4->interval.end; }
    +
    1315 else if (m_digit_5->match(text, interval.end, end, flags)) { dig = 5; interval.end = m_digit_5->interval.end; }
    +
    1316 else if (m_digit_6->match(text, interval.end, end, flags)) { dig = 6; interval.end = m_digit_6->interval.end; }
    +
    1317 else if (m_digit_7->match(text, interval.end, end, flags)) { dig = 7; interval.end = m_digit_7->interval.end; }
    +
    1318 else if (m_digit_8->match(text, interval.end, end, flags)) { dig = 8; interval.end = m_digit_8->interval.end; }
    +
    1319 else if (m_digit_9->match(text, interval.end, end, flags)) { dig = 9; interval.end = m_digit_9->interval.end; }
    +
    1320 else break;
    +
    1321 value = value * 10 + dig;
    +
    1322 }
    +
    1323 if (start < interval.end) {
    +
    1324 interval.start = start;
    +
    1325 return true;
    +
    1326 }
    +
    1327 interval.start = (interval.end = start) + 1;
    +
    1328 return false;
    +
    1329 }
    +
    1330
    +
    1331 protected:
    +
    1332 std::shared_ptr<basic_parser<T>>
    +
    1333 m_digit_0,
    +
    1334 m_digit_1,
    +
    1335 m_digit_2,
    +
    1336 m_digit_3,
    +
    1337 m_digit_4,
    +
    1338 m_digit_5,
    +
    1339 m_digit_6,
    +
    1340 m_digit_7,
    +
    1341 m_digit_8,
    +
    1342 m_digit_9;
    +
    1343 };
    +
    1344
    + + +
    1347#ifdef _UNICODE
    +
    1348 using tinteger10 = winteger10;
    +
    1349#else
    +
    1350 using tinteger10 = integer10;
    +
    1351#endif
    + +
    1353
    +
    1357 template <class T>
    + +
    1359 {
    +
    1360 public:
    + +
    1362 _In_ const std::shared_ptr<basic_integer10<T>>& digits,
    +
    1363 _In_ const std::shared_ptr<basic_set<T>>& separator,
    +
    1364 _In_ const std::locale& locale = std::locale()) :
    +
    1365 basic_integer<T>(locale),
    +
    1366 digit_count(0),
    +
    1367 has_separators(false),
    +
    1368 m_digits(digits),
    +
    1369 m_separator(separator)
    +
    1370 {}
    +
    1371
    +
    1372 virtual bool match(
    +
    1373 _In_reads_or_z_(end) const T* text,
    +
    1374 _In_ size_t start = 0,
    +
    1375 _In_ size_t end = (size_t)-1,
    +
    1376 _In_ int flags = match_default)
    +
    1377 {
    +
    1378 assert(text || start >= end);
    +
    1379 if (m_digits->match(text, start, end, flags)) {
    +
    1380 // Leading part match.
    +
    1381 value = m_digits->value;
    +
    1382 digit_count = m_digits->interval.size();
    +
    1383 has_separators = false;
    +
    1384 interval.start = start;
    +
    1385 interval.end = m_digits->interval.end;
    +
    1386 if (m_digits->interval.size() <= 3) {
    +
    1387 // Maybe separated with thousand separators?
    +
    1388 size_t hit_offset = (size_t)-1;
    +
    1389 while (m_separator->match(text, interval.end, end, flags) &&
    +
    1390 (hit_offset == (size_t)-1 || hit_offset == m_separator->hit_offset) && // All separators must be the same, no mixing.
    +
    1391 m_digits->match(text, m_separator->interval.end, end, flags) &&
    +
    1392 m_digits->interval.size() == 3)
    +
    1393 {
    +
    1394 // Thousand separator and three-digit integer followed.
    +
    1395 value = value * 1000 + m_digits->value;
    +
    1396 digit_count += 3;
    +
    1397 has_separators = true;
    +
    1398 interval.end = m_digits->interval.end;
    +
    1399 hit_offset = m_separator->hit_offset;
    +
    1400 }
    +
    1401 }
    +
    1402
    +
    1403 return true;
    +
    1404 }
    +
    1405 value = 0;
    +
    1406 interval.start = (interval.end = start) + 1;
    +
    1407 return false;
    +
    1408 }
    +
    1409
    +
    1410 virtual void invalidate()
    +
    1411 {
    +
    1412 digit_count = 0;
    +
    1413 has_separators = false;
    + +
    1415 }
    +
    1416
    +
    1417 public:
    + + +
    1420
    +
    1421 protected:
    +
    1422 std::shared_ptr<basic_integer10<T>> m_digits;
    +
    1423 std::shared_ptr<basic_set<T>> m_separator;
    +
    1424 };
    +
    1425
    + + +
    1428#ifdef _UNICODE
    +
    1429 using tinteger10ts = winteger10ts;
    +
    1430#else
    +
    1431 using tinteger10ts = integer10ts;
    +
    1432#endif
    + +
    1434
    +
    1438 template <class T>
    + +
    1440 {
    +
    1441 public:
    + +
    1443 _In_ const std::shared_ptr<basic_parser<T>>& digit_0,
    +
    1444 _In_ const std::shared_ptr<basic_parser<T>>& digit_1,
    +
    1445 _In_ const std::shared_ptr<basic_parser<T>>& digit_2,
    +
    1446 _In_ const std::shared_ptr<basic_parser<T>>& digit_3,
    +
    1447 _In_ const std::shared_ptr<basic_parser<T>>& digit_4,
    +
    1448 _In_ const std::shared_ptr<basic_parser<T>>& digit_5,
    +
    1449 _In_ const std::shared_ptr<basic_parser<T>>& digit_6,
    +
    1450 _In_ const std::shared_ptr<basic_parser<T>>& digit_7,
    +
    1451 _In_ const std::shared_ptr<basic_parser<T>>& digit_8,
    +
    1452 _In_ const std::shared_ptr<basic_parser<T>>& digit_9,
    +
    1453 _In_ const std::shared_ptr<basic_parser<T>>& digit_10,
    +
    1454 _In_ const std::shared_ptr<basic_parser<T>>& digit_11,
    +
    1455 _In_ const std::shared_ptr<basic_parser<T>>& digit_12,
    +
    1456 _In_ const std::shared_ptr<basic_parser<T>>& digit_13,
    +
    1457 _In_ const std::shared_ptr<basic_parser<T>>& digit_14,
    +
    1458 _In_ const std::shared_ptr<basic_parser<T>>& digit_15,
    +
    1459 _In_ const std::locale& locale = std::locale()) :
    +
    1460 basic_integer<T>(locale),
    +
    1461 m_digit_0(digit_0),
    +
    1462 m_digit_1(digit_1),
    +
    1463 m_digit_2(digit_2),
    +
    1464 m_digit_3(digit_3),
    +
    1465 m_digit_4(digit_4),
    +
    1466 m_digit_5(digit_5),
    +
    1467 m_digit_6(digit_6),
    +
    1468 m_digit_7(digit_7),
    +
    1469 m_digit_8(digit_8),
    +
    1470 m_digit_9(digit_9),
    +
    1471 m_digit_10(digit_10),
    +
    1472 m_digit_11(digit_11),
    +
    1473 m_digit_12(digit_12),
    +
    1474 m_digit_13(digit_13),
    +
    1475 m_digit_14(digit_14),
    +
    1476 m_digit_15(digit_15)
    +
    1477 {}
    +
    1478
    +
    1479 virtual bool match(
    +
    1480 _In_reads_or_z_(end) const T* text,
    +
    1481 _In_ size_t start = 0,
    +
    1482 _In_ size_t end = (size_t)-1,
    +
    1483 _In_ int flags = match_default)
    +
    1484 {
    +
    1485 assert(text || start >= end);
    +
    1486 for (interval.end = start, value = 0; interval.end < end && text[interval.end];) {
    +
    1487 size_t dig;
    +
    1488 if (m_digit_0->match(text, interval.end, end, flags)) { dig = 0; interval.end = m_digit_0->interval.end; }
    +
    1489 else if (m_digit_1->match(text, interval.end, end, flags)) { dig = 1; interval.end = m_digit_1->interval.end; }
    +
    1490 else if (m_digit_2->match(text, interval.end, end, flags)) { dig = 2; interval.end = m_digit_2->interval.end; }
    +
    1491 else if (m_digit_3->match(text, interval.end, end, flags)) { dig = 3; interval.end = m_digit_3->interval.end; }
    +
    1492 else if (m_digit_4->match(text, interval.end, end, flags)) { dig = 4; interval.end = m_digit_4->interval.end; }
    +
    1493 else if (m_digit_5->match(text, interval.end, end, flags)) { dig = 5; interval.end = m_digit_5->interval.end; }
    +
    1494 else if (m_digit_6->match(text, interval.end, end, flags)) { dig = 6; interval.end = m_digit_6->interval.end; }
    +
    1495 else if (m_digit_7->match(text, interval.end, end, flags)) { dig = 7; interval.end = m_digit_7->interval.end; }
    +
    1496 else if (m_digit_8->match(text, interval.end, end, flags)) { dig = 8; interval.end = m_digit_8->interval.end; }
    +
    1497 else if (m_digit_9->match(text, interval.end, end, flags)) { dig = 9; interval.end = m_digit_9->interval.end; }
    +
    1498 else if (m_digit_10->match(text, interval.end, end, flags)) { dig = 10; interval.end = m_digit_10->interval.end; }
    +
    1499 else if (m_digit_11->match(text, interval.end, end, flags)) { dig = 11; interval.end = m_digit_11->interval.end; }
    +
    1500 else if (m_digit_12->match(text, interval.end, end, flags)) { dig = 12; interval.end = m_digit_12->interval.end; }
    +
    1501 else if (m_digit_13->match(text, interval.end, end, flags)) { dig = 13; interval.end = m_digit_13->interval.end; }
    +
    1502 else if (m_digit_14->match(text, interval.end, end, flags)) { dig = 14; interval.end = m_digit_14->interval.end; }
    +
    1503 else if (m_digit_15->match(text, interval.end, end, flags)) { dig = 15; interval.end = m_digit_15->interval.end; }
    +
    1504 else break;
    +
    1505 value = value * 16 + dig;
    +
    1506 }
    +
    1507 if (start < interval.end) {
    +
    1508 interval.start = start;
    +
    1509 return true;
    +
    1510 }
    +
    1511 interval.start = (interval.end = start) + 1;
    +
    1512 return false;
    +
    1513 }
    +
    1514
    +
    1515 protected:
    +
    1516 std::shared_ptr<basic_parser<T>>
    +
    1517 m_digit_0,
    +
    1518 m_digit_1,
    +
    1519 m_digit_2,
    +
    1520 m_digit_3,
    +
    1521 m_digit_4,
    +
    1522 m_digit_5,
    +
    1523 m_digit_6,
    +
    1524 m_digit_7,
    +
    1525 m_digit_8,
    +
    1526 m_digit_9,
    +
    1527 m_digit_10,
    +
    1528 m_digit_11,
    +
    1529 m_digit_12,
    +
    1530 m_digit_13,
    +
    1531 m_digit_14,
    +
    1532 m_digit_15;
    +
    1533 };
    +
    1534
    + + +
    1537#ifdef _UNICODE
    +
    1538 using tinteger16 = winteger16;
    +
    1539#else
    +
    1540 using tinteger16 = integer16;
    +
    1541#endif
    + +
    1543
    +
    1547 template <class T>
    + +
    1549 {
    +
    1550 public:
    + +
    1552 _In_ const std::shared_ptr<basic_parser<T>>& digit_1,
    +
    1553 _In_ const std::shared_ptr<basic_parser<T>>& digit_5,
    +
    1554 _In_ const std::shared_ptr<basic_parser<T>>& digit_10,
    +
    1555 _In_ const std::shared_ptr<basic_parser<T>>& digit_50,
    +
    1556 _In_ const std::shared_ptr<basic_parser<T>>& digit_100,
    +
    1557 _In_ const std::shared_ptr<basic_parser<T>>& digit_500,
    +
    1558 _In_ const std::shared_ptr<basic_parser<T>>& digit_1000,
    +
    1559 _In_ const std::shared_ptr<basic_parser<T>>& digit_5000,
    +
    1560 _In_ const std::shared_ptr<basic_parser<T>>& digit_10000,
    +
    1561 _In_ const std::locale& locale = std::locale()) :
    +
    1562 basic_integer<T>(locale),
    +
    1563 m_digit_1(digit_1),
    +
    1564 m_digit_5(digit_5),
    +
    1565 m_digit_10(digit_10),
    +
    1566 m_digit_50(digit_50),
    +
    1567 m_digit_100(digit_100),
    +
    1568 m_digit_500(digit_500),
    +
    1569 m_digit_1000(digit_1000),
    +
    1570 m_digit_5000(digit_5000),
    +
    1571 m_digit_10000(digit_10000)
    +
    1572 {}
    +
    1573
    +
    1574 virtual bool match(
    +
    1575 _In_reads_or_z_(end) const T* text,
    +
    1576 _In_ size_t start = 0,
    +
    1577 _In_ size_t end = (size_t)-1,
    +
    1578 _In_ int flags = match_default)
    +
    1579 {
    +
    1580 assert(text || start >= end);
    +
    1581 size_t
    +
    1582 dig[5] = { (size_t)-1, (size_t)-1, (size_t)-1, (size_t)-1, (size_t)-1 },
    +
    1583 end2;
    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;
    +
    1585 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) {
    +
    1586 if (m_digit_1 && m_digit_1->match(text, interval.end, end, flags)) { dig[0] = 1; end2 = m_digit_1->interval.end; }
    +
    1587 else if (m_digit_5 && m_digit_5->match(text, interval.end, end, flags)) { dig[0] = 5; end2 = m_digit_5->interval.end; }
    +
    1588 else if (m_digit_10 && m_digit_10->match(text, interval.end, end, flags)) { dig[0] = 10; end2 = m_digit_10->interval.end; }
    +
    1589 else if (m_digit_50 && m_digit_50->match(text, interval.end, end, flags)) { dig[0] = 50; end2 = m_digit_50->interval.end; }
    +
    1590 else if (m_digit_100 && m_digit_100->match(text, interval.end, end, flags)) { dig[0] = 100; end2 = m_digit_100->interval.end; }
    +
    1591 else if (m_digit_500 && m_digit_500->match(text, interval.end, end, flags)) { dig[0] = 500; end2 = m_digit_500->interval.end; }
    +
    1592 else if (m_digit_1000 && m_digit_1000->match(text, interval.end, end, flags)) { dig[0] = 1000; end2 = m_digit_1000->interval.end; }
    +
    1593 else if (m_digit_5000 && m_digit_5000->match(text, interval.end, end, flags)) { dig[0] = 5000; end2 = m_digit_5000->interval.end; }
    +
    1594 else if (m_digit_10000 && m_digit_10000->match(text, interval.end, end, flags)) { dig[0] = 10000; end2 = m_digit_10000->interval.end; }
    +
    1595 else break;
    +
    1596
    +
    1597 // Store first digit.
    +
    1598 if (dig[4] == (size_t)-1) dig[4] = dig[0];
    +
    1599
    +
    1600 if (dig[3] == dig[2] && dig[2] == dig[1] && dig[1] == dig[0] && dig[0] != dig[4]) {
    +
    1601 // Same digit repeated four times. No-go, unless first digit. E.g. XIIII vs. XIV. MMMMMCD allowed, IIII also...
    +
    1602 break;
    +
    1603 }
    +
    1604 if (dig[0] <= dig[1]) {
    +
    1605 // Digit is less or equal previous one: add.
    +
    1606 value += dig[0];
    +
    1607 }
    +
    1608 else if (
    +
    1609 dig[1] == 1 && (dig[0] == 5 || dig[0] == 10) ||
    +
    1610 dig[1] == 10 && (dig[0] == 50 || dig[0] == 100) ||
    +
    1611 dig[1] == 100 && (dig[0] == 500 || dig[0] == 1000) ||
    +
    1612 dig[1] == 1000 && (dig[0] == 5000 || dig[0] == 10000))
    +
    1613 {
    +
    1614 // Digit is up to two orders bigger than previous one: subtract. But...
    +
    1615 if (dig[2] < dig[0]) {
    +
    1616 // Digit is also bigger than pre-previous one. E.g. VIX (V < X => invalid)
    +
    1617 break;
    +
    1618 }
    +
    1619 value -= dig[1]; // Cancel addition in the previous step.
    +
    1620 dig[0] -= dig[1]; // Combine last two digits.
    +
    1621 dig[1] = dig[2]; // The true previous digit is now pre-previous one. :)
    +
    1622 dig[2] = dig[3]; // The true pre-previous digit is now pre-pre-previous one. :)
    +
    1623 value += dig[0]; // Add combined value.
    +
    1624 }
    +
    1625 else {
    +
    1626 // New digit is too big than the previous one. E.g. VX (V < X => invalid)
    +
    1627 break;
    +
    1628 }
    +
    1629 }
    +
    1630 if (value) {
    +
    1631 interval.start = start;
    +
    1632 return true;
    +
    1633 }
    +
    1634 interval.start = (interval.end = start) + 1;
    +
    1635 return false;
    +
    1636 }
    +
    1637
    +
    1638 protected:
    +
    1639 std::shared_ptr<basic_parser<T>>
    +
    1640 m_digit_1,
    +
    1641 m_digit_5,
    +
    1642 m_digit_10,
    +
    1643 m_digit_50,
    +
    1644 m_digit_100,
    +
    1645 m_digit_500,
    +
    1646 m_digit_1000,
    +
    1647 m_digit_5000,
    +
    1648 m_digit_10000;
    +
    1649 };
    +
    1650
    + + +
    1653#ifdef _UNICODE
    + +
    1655#else
    + +
    1657#endif
    + +
    1659
    +
    1663 template <class T>
    + +
    1665 {
    +
    1666 public:
    + +
    1668 _In_ const std::shared_ptr<basic_parser<T>>& _numerator,
    +
    1669 _In_ const std::shared_ptr<basic_parser<T>>& _fraction_line,
    +
    1670 _In_ const std::shared_ptr<basic_parser<T>>& _denominator,
    +
    1671 _In_ const std::locale& locale = std::locale()) :
    +
    1672 basic_parser<T>(locale),
    +
    1673 numerator(_numerator),
    +
    1674 fraction_line(_fraction_line),
    +
    1675 denominator(_denominator)
    +
    1676 {}
    +
    1677
    +
    1678 virtual bool match(
    +
    1679 _In_reads_or_z_(end) const T* text,
    +
    1680 _In_ size_t start = 0,
    +
    1681 _In_ size_t end = (size_t)-1,
    +
    1682 _In_ int flags = match_default)
    +
    1683 {
    +
    1684 assert(text || start >= end);
    +
    1685 if (numerator->match(text, start, end, flags) &&
    +
    1686 fraction_line->match(text, numerator->interval.end, end, flags) &&
    +
    1687 denominator->match(text, fraction_line->interval.end, end, flags))
    +
    1688 {
    +
    1689 interval.start = start;
    +
    1690 interval.end = denominator->interval.end;
    +
    1691 return true;
    +
    1692 }
    +
    1693 numerator->invalidate();
    +
    1694 fraction_line->invalidate();
    +
    1695 denominator->invalidate();
    +
    1696 interval.start = (interval.end = start) + 1;
    +
    1697 return false;
    +
    1698 }
    +
    1699
    +
    1700 virtual void invalidate()
    +
    1701 {
    +
    1702 numerator->invalidate();
    +
    1703 fraction_line->invalidate();
    +
    1704 denominator->invalidate();
    + +
    1706 }
    +
    1707
    +
    1708 public:
    +
    1709 std::shared_ptr<basic_parser<T>> numerator;
    +
    1710 std::shared_ptr<basic_parser<T>> fraction_line;
    +
    1711 std::shared_ptr<basic_parser<T>> denominator;
    +
    1712 };
    +
    1713
    + + +
    1716#ifdef _UNICODE
    +
    1717 using tfraction = wfraction;
    +
    1718#else
    +
    1719 using tfraction = fraction;
    +
    1720#endif
    + +
    1722
    +
    1726 template <class T>
    +
    1727 class basic_score : public basic_parser<T>
    +
    1728 {
    +
    1729 public:
    + +
    1731 _In_ const std::shared_ptr<basic_parser<T>>& _home,
    +
    1732 _In_ const std::shared_ptr<basic_parser<T>>& _separator,
    +
    1733 _In_ const std::shared_ptr<basic_parser<T>>& _guest,
    +
    1734 _In_ const std::shared_ptr<basic_parser<T>>& space,
    +
    1735 _In_ const std::locale& locale = std::locale()) :
    +
    1736 basic_parser<T>(locale),
    +
    1737 home(_home),
    +
    1738 separator(_separator),
    +
    1739 guest(_guest),
    +
    1740 m_space(space)
    +
    1741 {}
    +
    1742
    +
    1743 virtual bool match(
    +
    1744 _In_reads_or_z_(end) const T* text,
    +
    1745 _In_ size_t start = 0,
    +
    1746 _In_ size_t end = (size_t)-1,
    +
    1747 _In_ int flags = match_default)
    +
    1748 {
    +
    1749 assert(text || start >= end);
    +
    1750 interval.end = start;
    +
    1751
    +
    1752 if (home->match(text, interval.end, end, flags))
    +
    1753 interval.end = home->interval.end;
    +
    1754 else
    +
    1755 goto end;
    +
    1756
    +
    1757 const int space_match_flags = flags & ~match_multiline; // Spaces in score must never be broken in new line.
    +
    1758 for (; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.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;
    +
    1760 if (separator->match(text, interval.end, end, flags))
    +
    1761 interval.end = separator->interval.end;
    +
    1762 else
    +
    1763 goto end;
    +
    1764
    +
    1765 for (; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    1766
    +
    1767 if (guest->match(text, interval.end, end, flags))
    +
    1768 interval.end = guest->interval.end;
    +
    1769 else
    +
    1770 goto end;
    +
    1771
    +
    1772 interval.start = start;
    +
    1773 return true;
    +
    1774
    +
    1775 end:
    +
    1776 home->invalidate();
    +
    1777 separator->invalidate();
    +
    1778 guest->invalidate();
    +
    1779 interval.start = (interval.end = start) + 1;
    +
    1780 return false;
    +
    1781 }
    +
    1782
    +
    1783 virtual void invalidate()
    +
    1784 {
    +
    1785 home->invalidate();
    +
    1786 separator->invalidate();
    +
    1787 guest->invalidate();
    + +
    1789 }
    +
    1790
    +
    1791 public:
    +
    1792 std::shared_ptr<basic_parser<T>> home;
    +
    1793 std::shared_ptr<basic_parser<T>> separator;
    +
    1794 std::shared_ptr<basic_parser<T>> guest;
    +
    1795
    +
    1796 protected:
    +
    1797 std::shared_ptr<basic_parser<T>> m_space;
    +
    1798 };
    +
    1799
    +
    1800 using score = basic_score<char>;
    + +
    1802#ifdef _UNICODE
    +
    1803 using tscore = wscore;
    +
    1804#else
    +
    1805 using tscore = score;
    +
    1806#endif
    + +
    1808
    +
    1812 template <class T>
    + +
    1814 {
    +
    1815 public:
    + +
    1817 _In_ const std::shared_ptr<basic_parser<T>>& _positive_sign,
    +
    1818 _In_ const std::shared_ptr<basic_parser<T>>& _negative_sign,
    +
    1819 _In_ const std::shared_ptr<basic_parser<T>>& _special_sign,
    +
    1820 _In_ const std::shared_ptr<basic_parser<T>>& _number,
    +
    1821 _In_ const std::locale& locale = std::locale()) :
    +
    1822 basic_parser<T>(locale),
    +
    1823 positive_sign(_positive_sign),
    +
    1824 negative_sign(_negative_sign),
    +
    1825 special_sign(_special_sign),
    +
    1826 number(_number)
    +
    1827 {}
    +
    1828
    +
    1829 virtual bool match(
    +
    1830 _In_reads_or_z_(end) const T* text,
    +
    1831 _In_ size_t start = 0,
    +
    1832 _In_ size_t end = (size_t)-1,
    +
    1833 _In_ int flags = match_default)
    +
    1834 {
    +
    1835 assert(text || start >= end);
    +
    1836 interval.end = start;
    +
    1837 if (positive_sign && positive_sign->match(text, interval.end, end, flags)) {
    +
    1838 interval.end = positive_sign->interval.end;
    +
    1839 if (negative_sign) negative_sign->invalidate();
    +
    1840 if (special_sign) special_sign->invalidate();
    +
    1841 }
    +
    1842 else if (negative_sign && negative_sign->match(text, interval.end, end, flags)) {
    +
    1843 interval.end = negative_sign->interval.end;
    +
    1844 if (positive_sign) positive_sign->invalidate();
    +
    1845 if (special_sign) special_sign->invalidate();
    +
    1846 }
    +
    1847 else if (special_sign && special_sign->match(text, interval.end, end, flags)) {
    +
    1848 interval.end = special_sign->interval.end;
    +
    1849 if (positive_sign) positive_sign->invalidate();
    +
    1850 if (negative_sign) negative_sign->invalidate();
    +
    1851 }
    +
    1852 else {
    +
    1853 if (positive_sign) positive_sign->invalidate();
    +
    1854 if (negative_sign) negative_sign->invalidate();
    +
    1855 if (special_sign) special_sign->invalidate();
    +
    1856 }
    +
    1857 if (number->match(text, interval.end, end, flags)) {
    +
    1858 interval.start = start;
    +
    1859 interval.end = number->interval.end;
    +
    1860 return true;
    +
    1861 }
    +
    1862 if (positive_sign) positive_sign->invalidate();
    +
    1863 if (negative_sign) negative_sign->invalidate();
    +
    1864 if (special_sign) special_sign->invalidate();
    +
    1865 number->invalidate();
    +
    1866 interval.start = (interval.end = start) + 1;
    +
    1867 return false;
    +
    1868 }
    +
    1869
    +
    1870 virtual void invalidate()
    +
    1871 {
    +
    1872 if (positive_sign) positive_sign->invalidate();
    +
    1873 if (negative_sign) negative_sign->invalidate();
    +
    1874 if (special_sign) special_sign->invalidate();
    +
    1875 number->invalidate();
    + +
    1877 }
    +
    1878
    +
    1879 public:
    +
    1880 std::shared_ptr<basic_parser<T>> positive_sign;
    +
    1881 std::shared_ptr<basic_parser<T>> negative_sign;
    +
    1882 std::shared_ptr<basic_parser<T>> special_sign;
    +
    1883 std::shared_ptr<basic_parser<T>> number;
    +
    1884 };
    +
    1885
    + + +
    1888#ifdef _UNICODE
    + +
    1890#else
    + +
    1892#endif
    + +
    1894
    +
    1898 template <class T>
    + +
    1900 {
    +
    1901 public:
    + +
    1903 _In_ const std::shared_ptr<basic_parser<T>>& _positive_sign,
    +
    1904 _In_ const std::shared_ptr<basic_parser<T>>& _negative_sign,
    +
    1905 _In_ const std::shared_ptr<basic_parser<T>>& _special_sign,
    +
    1906 _In_ const std::shared_ptr<basic_parser<T>>& _integer,
    +
    1907 _In_ const std::shared_ptr<basic_parser<T>>& space,
    +
    1908 _In_ const std::shared_ptr<basic_parser<T>>& _fraction,
    +
    1909 _In_ const std::locale& locale = std::locale()) :
    +
    1910 basic_parser<T>(locale),
    +
    1911 positive_sign(_positive_sign),
    +
    1912 negative_sign(_negative_sign),
    +
    1913 special_sign(_special_sign),
    +
    1914 integer(_integer),
    +
    1915 fraction(_fraction),
    +
    1916 m_space(space)
    +
    1917 {}
    +
    1918
    +
    1919 virtual bool match(
    +
    1920 _In_reads_or_z_(end) const T* text,
    +
    1921 _In_ size_t start = 0,
    +
    1922 _In_ size_t end = (size_t)-1,
    +
    1923 _In_ int flags = match_default)
    +
    1924 {
    +
    1925 assert(text || start >= end);
    +
    1926 interval.end = start;
    +
    1927
    +
    1928 if (positive_sign && positive_sign->match(text, interval.end, end, flags)) {
    +
    1929 interval.end = positive_sign->interval.end;
    +
    1930 if (negative_sign) negative_sign->invalidate();
    +
    1931 if (special_sign) special_sign->invalidate();
    +
    1932 }
    +
    1933 else if (negative_sign && negative_sign->match(text, interval.end, end, flags)) {
    +
    1934 interval.end = negative_sign->interval.end;
    +
    1935 if (positive_sign) positive_sign->invalidate();
    +
    1936 if (special_sign) special_sign->invalidate();
    +
    1937 }
    +
    1938 else if (special_sign && special_sign->match(text, interval.end, end, flags)) {
    +
    1939 interval.end = special_sign->interval.end;
    +
    1940 if (positive_sign) positive_sign->invalidate();
    +
    1941 if (negative_sign) negative_sign->invalidate();
    +
    1942 }
    +
    1943 else {
    +
    1944 if (positive_sign) positive_sign->invalidate();
    +
    1945 if (negative_sign) negative_sign->invalidate();
    +
    1946 if (special_sign) special_sign->invalidate();
    +
    1947 }
    +
    1948
    +
    1949 // Check for <integer> <fraction>
    +
    1950 const int space_match_flags = flags & ~match_multiline; // Spaces in fractions must never be broken in new line.
    +
    1951 if (integer->match(text, interval.end, end, flags) &&
    +
    1952 m_space->match(text, integer->interval.end, end, space_match_flags))
    +
    1953 {
    +
    1954 for (interval.end = m_space->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    1955 if (fraction->match(text, interval.end, end, flags)) {
    +
    1956 interval.start = start;
    + +
    1958 return true;
    +
    1959 }
    +
    1960 fraction->invalidate();
    +
    1961 interval.start = start;
    +
    1962 interval.end = integer->interval.end;
    +
    1963 return true;
    +
    1964 }
    +
    1965
    +
    1966 // Check for <fraction>
    +
    1967 if (fraction->match(text, interval.end, end, flags)) {
    +
    1968 integer->invalidate();
    +
    1969 interval.start = start;
    + +
    1971 return true;
    +
    1972 }
    +
    1973
    +
    1974 // Check for <integer>
    +
    1975 if (integer->match(text, interval.end, end, flags)) {
    +
    1976 fraction->invalidate();
    +
    1977 interval.start = start;
    +
    1978 interval.end = integer->interval.end;
    +
    1979 return true;
    +
    1980 }
    +
    1981
    +
    1982 if (positive_sign) positive_sign->invalidate();
    +
    1983 if (negative_sign) negative_sign->invalidate();
    +
    1984 if (special_sign) special_sign->invalidate();
    +
    1985 integer->invalidate();
    +
    1986 fraction->invalidate();
    +
    1987 interval.start = (interval.end = start) + 1;
    +
    1988 return false;
    +
    1989 }
    +
    1990
    +
    1991 virtual void invalidate()
    +
    1992 {
    +
    1993 if (positive_sign) positive_sign->invalidate();
    +
    1994 if (negative_sign) negative_sign->invalidate();
    +
    1995 if (special_sign) special_sign->invalidate();
    +
    1996 integer->invalidate();
    +
    1997 fraction->invalidate();
    + +
    1999 }
    +
    2000
    +
    2001 public:
    +
    2002 std::shared_ptr<basic_parser<T>> positive_sign;
    +
    2003 std::shared_ptr<basic_parser<T>> negative_sign;
    +
    2004 std::shared_ptr<basic_parser<T>> special_sign;
    +
    2005 std::shared_ptr<basic_parser<T>> integer;
    +
    2006 std::shared_ptr<basic_parser<T>> fraction;
    +
    2007
    +
    2008 protected:
    +
    2009 std::shared_ptr<basic_parser<T>> m_space;
    +
    2010 };
    +
    2011
    + + +
    2014#ifdef _UNICODE
    + +
    2016#else
    + +
    2018#endif
    + +
    2020
    +
    2024 template <class T>
    + +
    2026 {
    +
    2027 public:
    + +
    2029 _In_ const std::shared_ptr<basic_parser<T>>& _positive_sign,
    +
    2030 _In_ const std::shared_ptr<basic_parser<T>>& _negative_sign,
    +
    2031 _In_ const std::shared_ptr<basic_parser<T>>& _special_sign,
    +
    2032 _In_ const std::shared_ptr<basic_integer<T>>& _integer,
    +
    2033 _In_ const std::shared_ptr<basic_parser<T>>& _decimal_separator,
    +
    2034 _In_ const std::shared_ptr<basic_integer<T>>& _decimal,
    +
    2035 _In_ const std::shared_ptr<basic_parser<T>>& _exponent_symbol,
    +
    2036 _In_ const std::shared_ptr<basic_parser<T>>& _positive_exp_sign,
    +
    2037 _In_ const std::shared_ptr<basic_parser<T>>& _negative_exp_sign,
    +
    2038 _In_ const std::shared_ptr<basic_integer<T>>& _exponent,
    +
    2039 _In_ const std::locale& locale = std::locale()) :
    +
    2040 basic_parser<T>(locale),
    +
    2041 positive_sign(_positive_sign),
    +
    2042 negative_sign(_negative_sign),
    +
    2043 special_sign(_special_sign),
    +
    2044 integer(_integer),
    +
    2045 decimal_separator(_decimal_separator),
    +
    2046 decimal(_decimal),
    +
    2047 exponent_symbol(_exponent_symbol),
    +
    2048 positive_exp_sign(_positive_exp_sign),
    +
    2049 negative_exp_sign(_negative_exp_sign),
    +
    2050 exponent(_exponent),
    +
    2051 value(std::numeric_limits<double>::quiet_NaN())
    +
    2052 {}
    +
    2053
    +
    2054 virtual bool match(
    +
    2055 _In_reads_or_z_(end) const T* text,
    +
    2056 _In_ size_t start = 0,
    +
    2057 _In_ size_t end = (size_t)-1,
    +
    2058 _In_ int flags = match_default)
    +
    2059 {
    +
    2060 assert(text || start >= end);
    +
    2061 interval.end = start;
    +
    2062
    +
    2063 if (positive_sign && positive_sign->match(text, interval.end, end, flags)) {
    +
    2064 interval.end = positive_sign->interval.end;
    +
    2065 if (negative_sign) negative_sign->invalidate();
    +
    2066 if (special_sign) special_sign->invalidate();
    +
    2067 }
    +
    2068 else if (negative_sign && negative_sign->match(text, interval.end, end, flags)) {
    +
    2069 interval.end = negative_sign->interval.end;
    +
    2070 if (positive_sign) positive_sign->invalidate();
    +
    2071 if (special_sign) special_sign->invalidate();
    +
    2072 }
    +
    2073 else if (special_sign && special_sign->match(text, interval.end, end, flags)) {
    +
    2074 interval.end = special_sign->interval.end;
    +
    2075 if (positive_sign) positive_sign->invalidate();
    +
    2076 if (negative_sign) negative_sign->invalidate();
    +
    2077 }
    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();
    +
    2079 if (positive_sign) positive_sign->invalidate();
    +
    2080 if (negative_sign) negative_sign->invalidate();
    +
    2081 if (special_sign) special_sign->invalidate();
    +
    2082 }
    +
    2083
    +
    2084 if (integer->match(text, interval.end, end, flags))
    +
    2085 interval.end = integer->interval.end;
    +
    2086
    +
    2087 if (decimal_separator->match(text, interval.end, end, flags) &&
    +
    2088 decimal->match(text, decimal_separator->interval.end, end, flags))
    +
    2089 interval.end = decimal->interval.end;
    +
    2090 else {
    +
    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);
    +
    2093 }
    +
    2094
    +
    2095 if (!integer->interval.empty() &&
    +
    2096 decimal->interval.empty())
    +
    2097 {
    +
    2098 // No integer part, no decimal part.
    +
    2099 if (positive_sign) positive_sign->invalidate();
    +
    2100 if (negative_sign) negative_sign->invalidate();
    +
    2101 if (special_sign) special_sign->invalidate();
    +
    2102 integer->invalidate();
    +
    2103 decimal_separator->invalidate();
    +
    2104 decimal->invalidate();
    +
    2105 if (exponent_symbol) exponent_symbol->invalidate();
    +
    2106 if (positive_exp_sign) positive_exp_sign->invalidate();
    +
    2107 if (negative_exp_sign) negative_exp_sign->invalidate();
    +
    2108 if (exponent) exponent->invalidate();
    +
    2109 interval.start = (interval.end = start) + 1;
    +
    2110 return false;
    +
    2111 }
    +
    2112
    +
    2113 if (exponent_symbol && exponent_symbol->match(text, interval.end, end, flags) &&
    +
    2114 (positive_exp_sign && positive_exp_sign->match(text, exponent_symbol->interval.end, end, flags) &&
    +
    2115 exponent && exponent->match(text, positive_exp_sign->interval.end, end, flags) ||
    +
    2116 exponent && exponent->match(text, exponent_symbol->interval.end, end, flags)))
    +
    2117 {
    +
    2118 interval.end = exponent->interval.end;
    +
    2119 if (negative_exp_sign) negative_exp_sign->invalidate();
    +
    2120 }
    +
    2121 else if (exponent_symbol && exponent_symbol->match(text, interval.end, end, flags) &&
    +
    2122 negative_exp_sign && negative_exp_sign->match(text, exponent_symbol->interval.end, end, flags) &&
    +
    2123 exponent && exponent->match(text, negative_exp_sign->interval.end, end, flags))
    +
    2124 {
    +
    2125 interval.end = exponent->interval.end;
    +
    2126 if (positive_exp_sign) positive_exp_sign->invalidate();
    +
    2127 }
    +
    2128 else {
    +
    2129 if (exponent_symbol) exponent_symbol->invalidate();
    +
    2130 if (positive_exp_sign) positive_exp_sign->invalidate();
    +
    2131 if (negative_exp_sign) negative_exp_sign->invalidate();
    +
    2132 if (exponent) exponent->invalidate();
    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();
    - +
    2135 value = (double)integer->value;
    +
    2136 if (decimal->interval)
    +
    2137 value += (double)decimal->value * pow(10.0, -(double)decimal->interval.size());
    +
    2138 if (negative_sign && negative_sign->interval)
    +
    2139 value = -value;
    +
    2140 if (exponent && exponent->interval) {
    +
    2141 double e = (double)exponent->value;
    +
    2142 if (negative_exp_sign && negative_exp_sign->interval)
    +
    2143 e = -e;
    +
    2144 value *= pow(10.0, e);
    +
    2145 }
    +
    2146
    +
    2147 interval.start = start;
    +
    2148 return true;
    +
    2149 }
    +
    2150
    +
    2151 virtual void invalidate()
    +
    2152 {
    +
    2153 if (positive_sign) positive_sign->invalidate();
    +
    2154 if (negative_sign) negative_sign->invalidate();
    +
    2155 if (special_sign) special_sign->invalidate();
    +
    2156 integer->invalidate();
    +
    2157 decimal_separator->invalidate();
    +
    2158 decimal->invalidate();
    +
    2159 if (exponent_symbol) exponent_symbol->invalidate();
    +
    2160 if (positive_exp_sign) positive_exp_sign->invalidate();
    +
    2161 if (negative_exp_sign) negative_exp_sign->invalidate();
    +
    2162 if (exponent) exponent->invalidate();
    +
    2163 value = std::numeric_limits<double>::quiet_NaN();
    + +
    2165 }
    +
    2166
    +
    2167 public:
    +
    2168 std::shared_ptr<basic_parser<T>> positive_sign;
    +
    2169 std::shared_ptr<basic_parser<T>> negative_sign;
    +
    2170 std::shared_ptr<basic_parser<T>> special_sign;
    +
    2171 std::shared_ptr<basic_integer<T>> integer;
    +
    2172 std::shared_ptr<basic_parser<T>> decimal_separator;
    +
    2173 std::shared_ptr<basic_integer<T>> decimal;
    +
    2174 std::shared_ptr<basic_parser<T>> exponent_symbol;
    +
    2175 std::shared_ptr<basic_parser<T>> positive_exp_sign;
    +
    2176 std::shared_ptr<basic_parser<T>> negative_exp_sign;
    +
    2177 std::shared_ptr<basic_integer<T>> exponent;
    +
    2178 double value;
    +
    2179 };
    +
    2180
    + + +
    2183#ifdef _UNICODE
    + +
    2185#else
    + +
    2187#endif
    + +
    2189
    +
    2193 template <class T>
    + +
    2195 {
    +
    2196 public:
    + +
    2198 _In_ const std::shared_ptr<basic_parser<T>>& _positive_sign,
    +
    2199 _In_ const std::shared_ptr<basic_parser<T>>& _negative_sign,
    +
    2200 _In_ const std::shared_ptr<basic_parser<T>>& _special_sign,
    +
    2201 _In_ const std::shared_ptr<basic_parser<T>>& _currency,
    +
    2202 _In_ const std::shared_ptr<basic_parser<T>>& _integer,
    +
    2203 _In_ const std::shared_ptr<basic_parser<T>>& _decimal_separator,
    +
    2204 _In_ const std::shared_ptr<basic_parser<T>>& _decimal,
    +
    2205 _In_ const std::locale& locale = std::locale()) :
    +
    2206 basic_parser<T>(locale),
    +
    2207 positive_sign(_positive_sign),
    +
    2208 negative_sign(_negative_sign),
    +
    2209 special_sign(_special_sign),
    +
    2210 currency(_currency),
    +
    2211 integer(_integer),
    +
    2212 decimal_separator(_decimal_separator),
    +
    2213 decimal(_decimal)
    +
    2214 {}
    +
    2215
    +
    2216 virtual bool match(
    +
    2217 _In_reads_or_z_(end) const T* text,
    +
    2218 _In_ size_t start = 0,
    +
    2219 _In_ size_t end = (size_t)-1,
    +
    2220 _In_ int flags = match_default)
    +
    2221 {
    +
    2222 assert(text || start >= end);
    +
    2223 interval.end = start;
    +
    2224
    +
    2225 if (positive_sign->match(text, interval.end, end, flags)) {
    +
    2226 interval.end = positive_sign->interval.end;
    +
    2227 if (negative_sign) negative_sign->invalidate();
    +
    2228 if (special_sign) special_sign->invalidate();
    +
    2229 }
    +
    2230 else if (negative_sign->match(text, interval.end, end, flags)) {
    +
    2231 interval.end = negative_sign->interval.end;
    +
    2232 if (positive_sign) positive_sign->invalidate();
    +
    2233 if (special_sign) special_sign->invalidate();
    +
    2234 }
    +
    2235 else if (special_sign->match(text, interval.end, end, flags)) {
    +
    2236 interval.end = special_sign->interval.end;
    +
    2237 if (positive_sign) positive_sign->invalidate();
    +
    2238 if (negative_sign) negative_sign->invalidate();
    +
    2239 }
    +
    2240 else {
    +
    2241 if (positive_sign) positive_sign->invalidate();
    +
    2242 if (negative_sign) negative_sign->invalidate();
    +
    2243 if (special_sign) special_sign->invalidate();
    +
    2244 }
    +
    2245
    +
    2246 if (currency->match(text, interval.end, end, flags))
    +
    2247 interval.end = currency->interval.end;
    +
    2248 else {
    +
    2249 if (positive_sign) positive_sign->invalidate();
    +
    2250 if (negative_sign) negative_sign->invalidate();
    +
    2251 if (special_sign) special_sign->invalidate();
    +
    2252 integer->invalidate();
    +
    2253 decimal_separator->invalidate();
    +
    2254 decimal->invalidate();
    +
    2255 interval.start = (interval.end = start) + 1;
    +
    2256 return false;
    +
    2257 }
    +
    2258
    +
    2259 if (integer->match(text, interval.end, end, flags))
    +
    2260 interval.end = integer->interval.end;
    +
    2261 if (decimal_separator->match(text, interval.end, end, flags) &&
    +
    2262 decimal->match(text, decimal_separator->interval.end, end, flags))
    +
    2263 interval.end = decimal->interval.end;
    +
    2264 else {
    +
    2265 decimal_separator->invalidate();
    +
    2266 decimal->invalidate();
    +
    2267 }
    +
    2268
    +
    2269 if (integer->interval.empty() &&
    +
    2270 decimal->interval.empty())
    +
    2271 {
    +
    2272 // No integer part, no decimal part.
    +
    2273 if (positive_sign) positive_sign->invalidate();
    +
    2274 if (negative_sign) negative_sign->invalidate();
    +
    2275 if (special_sign) special_sign->invalidate();
    +
    2276 currency->invalidate();
    +
    2277 integer->invalidate();
    +
    2278 decimal_separator->invalidate();
    +
    2279 decimal->invalidate();
    +
    2280 interval.start = (interval.end = start) + 1;
    +
    2281 return false;
    +
    2282 }
    +
    2283
    +
    2284 interval.start = start;
    +
    2285 return true;
    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));
    +
    2288 virtual void invalidate()
    +
    2289 {
    +
    2290 if (positive_sign) positive_sign->invalidate();
    +
    2291 if (negative_sign) negative_sign->invalidate();
    +
    2292 if (special_sign) special_sign->invalidate();
    +
    2293 currency->invalidate();
    +
    2294 integer->invalidate();
    +
    2295 decimal_separator->invalidate();
    +
    2296 decimal->invalidate();
    + +
    2298 }
    +
    2299
    +
    2300 public:
    +
    2301 std::shared_ptr<basic_parser<T>> positive_sign;
    +
    2302 std::shared_ptr<basic_parser<T>> negative_sign;
    +
    2303 std::shared_ptr<basic_parser<T>> special_sign;
    +
    2304 std::shared_ptr<basic_parser<T>> currency;
    +
    2305 std::shared_ptr<basic_parser<T>> integer;
    +
    2306 std::shared_ptr<basic_parser<T>> decimal_separator;
    +
    2307 std::shared_ptr<basic_parser<T>> decimal;
    +
    2308 };
    +
    2309
    + + +
    2312#ifdef _UNICODE
    + +
    2314#else
    + +
    2316#endif
    + +
    2318
    +
    2322 template <class T>
    + +
    2324 {
    +
    2325 public:
    + +
    2327 _In_ const std::shared_ptr<basic_parser<T>>& digit_0,
    +
    2328 _In_ const std::shared_ptr<basic_parser<T>>& digit_1,
    +
    2329 _In_ const std::shared_ptr<basic_parser<T>>& digit_2,
    +
    2330 _In_ const std::shared_ptr<basic_parser<T>>& digit_3,
    +
    2331 _In_ const std::shared_ptr<basic_parser<T>>& digit_4,
    +
    2332 _In_ const std::shared_ptr<basic_parser<T>>& digit_5,
    +
    2333 _In_ const std::shared_ptr<basic_parser<T>>& digit_6,
    +
    2334 _In_ const std::shared_ptr<basic_parser<T>>& digit_7,
    +
    2335 _In_ const std::shared_ptr<basic_parser<T>>& digit_8,
    +
    2336 _In_ const std::shared_ptr<basic_parser<T>>& digit_9,
    +
    2337 _In_ const std::shared_ptr<basic_parser<T>>& separator,
    +
    2338 _In_ const std::locale& locale = std::locale()) :
    +
    2339 basic_parser<T>(locale),
    +
    2340 m_digit_0(digit_0),
    +
    2341 m_digit_1(digit_1),
    +
    2342 m_digit_2(digit_2),
    +
    2343 m_digit_3(digit_3),
    +
    2344 m_digit_4(digit_4),
    +
    2345 m_digit_5(digit_5),
    +
    2346 m_digit_6(digit_6),
    +
    2347 m_digit_7(digit_7),
    +
    2348 m_digit_8(digit_8),
    +
    2349 m_digit_9(digit_9),
    +
    2350 m_separator(separator)
    +
    2351 {
    +
    2352 value.s_addr = 0;
    +
    2353 }
    +
    2354
    +
    2355 virtual bool match(
    +
    2356 _In_reads_or_z_(end) const T* text,
    +
    2357 _In_ size_t start = 0,
    +
    2358 _In_ size_t end = (size_t)-1,
    +
    2359 _In_ int flags = match_default)
    +
    2360 {
    +
    2361 assert(text || start >= end);
    +
    2362 interval.end = start;
    +
    2363 value.s_addr = 0;
    +
    2364
    +
    2365 size_t i;
    +
    2366 for (i = 0; i < 4; i++) {
    +
    2367 if (i) {
    +
    2368 if (m_separator->match(text, interval.end, end, flags))
    +
    2369 interval.end = m_separator->interval.end;
    +
    2370 else
    +
    2371 goto error;
    +
    2372 }
    +
    2373
    +
    2374 components[i].start = interval.end;
    +
    2375 bool is_empty = true;
    +
    2376 size_t x;
    +
    2377 for (x = 0; interval.end < end && text[interval.end];) {
    +
    2378 size_t dig, digit_end;
    +
    2379 if (m_digit_0->match(text, interval.end, end, flags)) { dig = 0; digit_end = m_digit_0->interval.end; }
    +
    2380 else if (m_digit_1->match(text, interval.end, end, flags)) { dig = 1; digit_end = m_digit_1->interval.end; }
    +
    2381 else if (m_digit_2->match(text, interval.end, end, flags)) { dig = 2; digit_end = m_digit_2->interval.end; }
    +
    2382 else if (m_digit_3->match(text, interval.end, end, flags)) { dig = 3; digit_end = m_digit_3->interval.end; }
    +
    2383 else if (m_digit_4->match(text, interval.end, end, flags)) { dig = 4; digit_end = m_digit_4->interval.end; }
    +
    2384 else if (m_digit_5->match(text, interval.end, end, flags)) { dig = 5; digit_end = m_digit_5->interval.end; }
    +
    2385 else if (m_digit_6->match(text, interval.end, end, flags)) { dig = 6; digit_end = m_digit_6->interval.end; }
    +
    2386 else if (m_digit_7->match(text, interval.end, end, flags)) { dig = 7; digit_end = m_digit_7->interval.end; }
    +
    2387 else if (m_digit_8->match(text, interval.end, end, flags)) { dig = 8; digit_end = m_digit_8->interval.end; }
    +
    2388 else if (m_digit_9->match(text, interval.end, end, flags)) { dig = 9; digit_end = m_digit_9->interval.end; }
    +
    2389 else break;
    +
    2390 size_t x_n = x * 10 + dig;
    +
    2391 if (x_n <= 255) {
    +
    2392 x = x_n;
    +
    2393 interval.end = digit_end;
    +
    2394 is_empty = false;
    +
    2395 }
    +
    2396 else
    +
    2397 break;
    +
    2398 }
    +
    2399 if (is_empty)
    +
    2400 goto error;
    +
    2401 components[i].end = interval.end;
    +
    2402 value.s_addr = (value.s_addr << 8) | (uint8_t)x;
    +
    2403 }
    +
    2404 if (i < 4)
    +
    2405 goto error;
    +
    2406
    +
    2407 interval.start = start;
    +
    2408 return true;
    +
    2409
    +
    2410 error:
    +
    2411 components[0].start = 1;
    +
    2412 components[0].end = 0;
    +
    2413 components[1].start = 1;
    +
    2414 components[1].end = 0;
    +
    2415 components[2].start = 1;
    +
    2416 components[2].end = 0;
    +
    2417 components[3].start = 1;
    +
    2418 components[3].end = 0;
    +
    2419 value = 0;
    +
    2420 interval.start = (interval.end = start) + 1;
    +
    2421 return false;
    +
    2422 }
    +
    2423
    +
    2424 virtual void invalidate()
    +
    2425 {
    +
    2426 components[0].start = 1;
    +
    2427 components[0].end = 0;
    +
    2428 components[1].start = 1;
    +
    2429 components[1].end = 0;
    +
    2430 components[2].start = 1;
    +
    2431 components[2].end = 0;
    +
    2432 components[3].start = 1;
    +
    2433 components[3].end = 0;
    +
    2434 value = 0;
    + +
    2436 }
    +
    2437
    +
    2438 public:
    + +
    2440 struct in_addr value;
    +
    2441
    +
    2442 protected:
    +
    2443 std::shared_ptr<basic_parser<T>>
    +
    2444 m_digit_0,
    +
    2445 m_digit_1,
    +
    2446 m_digit_2,
    +
    2447 m_digit_3,
    +
    2448 m_digit_4,
    +
    2449 m_digit_5,
    +
    2450 m_digit_6,
    +
    2451 m_digit_7,
    +
    2452 m_digit_8,
    +
    2453 m_digit_9;
    +
    2454 std::shared_ptr<basic_parser<T>> m_separator;
    +
    2455 };
    +
    2456
    + + +
    2459#ifdef _UNICODE
    + +
    2461#else
    + +
    2463#endif
    + +
    2465
    +
    2469 template <class T>
    + +
    2471 {
    +
    2472 public:
    +
    2473 basic_ipv6_scope_id_char(_In_ const std::locale& locale = std::locale()) : basic_parser<T>(locale) {}
    +
    2474
    +
    2475 virtual bool match(
    +
    2476 _In_reads_or_z_(end) const T* text,
    +
    2477 _In_ size_t start = 0,
    +
    2478 _In_ size_t end = (size_t)-1,
    +
    2479 _In_ int flags = match_default)
    +
    2480 {
    +
    2481 assert(text || start >= end);
    +
    2482 if (start < end && text[start]) {
    +
    2483 if (text[start] == '-' ||
    +
    2484 text[start] == '_' ||
    +
    2485 text[start] == ':' ||
    +
    2486 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
    +
    2487 {
    +
    2488 interval.end = (interval.start = start) + 1;
    +
    2489 return true;
    +
    2490 }
    +
    2491 }
    +
    2492 interval.start = (interval.end = start) + 1;
    +
    2493 return false;
    +
    2494 }
    +
    2495 };
    +
    2496
    + + +
    2499#ifdef _UNICODE
    + +
    2501#else
    + +
    2503#endif
    +
    2504
    + +
    2509 {
    +
    2510 public:
    +
    2511 sgml_ipv6_scope_id_char(_In_ const std::locale& locale = std::locale()) : sgml_parser(locale) {}
    +
    2512
    +
    2513 virtual bool match(
    +
    2514 _In_reads_or_z_(end) const char* text,
    +
    2515 _In_ size_t start = 0,
    +
    2516 _In_ size_t end = (size_t)-1,
    +
    2517 _In_ int flags = match_default)
    +
    2518 {
    +
    2519 assert(text || start >= end);
    +
    2520 if (start < end && text[start]) {
    +
    2521 wchar_t buf[3];
    +
    2522 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    2523 const wchar_t* chr_end = chr + stdex::strlen(chr);
    +
    2524 if ((chr[0] == L'-' ||
    +
    2525 chr[0] == L'_' ||
    +
    2526 chr[0] == L':') && chr[1] == 0 ||
    +
    2527 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::alnum, chr, chr_end) == chr_end)
    +
    2528 {
    +
    2529 interval.start = start;
    +
    2530 return true;
    +
    2531 }
    +
    2532 }
    +
    2533 interval.start = (interval.end = start) + 1;
    +
    2534 return false;
    +
    2535 }
    +
    2536 };
    +
    2537
    +
    2541 template <class T>
    + +
    2543 {
    +
    2544 public:
    + +
    2546 _In_ const std::shared_ptr<basic_parser<T>>& digit_0,
    +
    2547 _In_ const std::shared_ptr<basic_parser<T>>& digit_1,
    +
    2548 _In_ const std::shared_ptr<basic_parser<T>>& digit_2,
    +
    2549 _In_ const std::shared_ptr<basic_parser<T>>& digit_3,
    +
    2550 _In_ const std::shared_ptr<basic_parser<T>>& digit_4,
    +
    2551 _In_ const std::shared_ptr<basic_parser<T>>& digit_5,
    +
    2552 _In_ const std::shared_ptr<basic_parser<T>>& digit_6,
    +
    2553 _In_ const std::shared_ptr<basic_parser<T>>& digit_7,
    +
    2554 _In_ const std::shared_ptr<basic_parser<T>>& digit_8,
    +
    2555 _In_ const std::shared_ptr<basic_parser<T>>& digit_9,
    +
    2556 _In_ const std::shared_ptr<basic_parser<T>>& digit_10,
    +
    2557 _In_ const std::shared_ptr<basic_parser<T>>& digit_11,
    +
    2558 _In_ const std::shared_ptr<basic_parser<T>>& digit_12,
    +
    2559 _In_ const std::shared_ptr<basic_parser<T>>& digit_13,
    +
    2560 _In_ const std::shared_ptr<basic_parser<T>>& digit_14,
    +
    2561 _In_ const std::shared_ptr<basic_parser<T>>& digit_15,
    +
    2562 _In_ const std::shared_ptr<basic_parser<T>>& separator,
    +
    2563 _In_ const std::shared_ptr<basic_parser<T>>& scope_id_separator = nullptr,
    +
    2564 _In_ const std::shared_ptr<basic_parser<T>>& _scope_id = nullptr,
    +
    2565 _In_ const std::locale& locale = std::locale()) :
    +
    2566 basic_parser<T>(locale),
    +
    2567 m_digit_0(digit_0),
    +
    2568 m_digit_1(digit_1),
    +
    2569 m_digit_2(digit_2),
    +
    2570 m_digit_3(digit_3),
    +
    2571 m_digit_4(digit_4),
    +
    2572 m_digit_5(digit_5),
    +
    2573 m_digit_6(digit_6),
    +
    2574 m_digit_7(digit_7),
    +
    2575 m_digit_8(digit_8),
    +
    2576 m_digit_9(digit_9),
    +
    2577 m_digit_10(digit_10),
    +
    2578 m_digit_11(digit_11),
    +
    2579 m_digit_12(digit_12),
    +
    2580 m_digit_13(digit_13),
    +
    2581 m_digit_14(digit_14),
    +
    2582 m_digit_15(digit_15),
    +
    2583 m_separator(separator),
    +
    2584 m_scope_id_separator(scope_id_separator),
    +
    2585 scope_id(_scope_id)
    +
    2586 {
    +
    2587 memset(value, 0, sizeof(value));
    +
    2588 }
    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;
    +
    2590 virtual bool match(
    +
    2591 _In_reads_or_z_(end) const T* text,
    +
    2592 _In_ size_t start = 0,
    +
    2593 _In_ size_t end = (size_t)-1,
    +
    2594 _In_ int flags = match_default)
    +
    2595 {
    +
    2596 assert(text || start >= end);
    +
    2597 interval.end = start;
    +
    2598 memset(value, 0, sizeof(value));
    +
    2599
    +
    2600 size_t i, compaction_i = (size_t)-1, compaction_start = start;
    +
    2601 for (i = 0; i < 8; i++) {
    +
    2602 bool is_empty = true;
    +
    2603
    +
    2604 if (m_separator->match(text, interval.end, end, flags)) {
    +
    2605 if (m_separator->match(text, m_separator->interval.end, end, flags)) {
    +
    2606 // :: found
    +
    2607 if (compaction_i == (size_t)-1) {
    +
    2608 // Zero compaction start
    +
    2609 compaction_i = i;
    +
    2610 compaction_start = m_separator->interval.start;
    +
    2611 interval.end = m_separator->interval.end;
    +
    2612 }
    +
    2613 else {
    +
    2614 // More than one zero compaction
    +
    2615 break;
    +
    2616 }
    +
    2617 }
    +
    2618 else if (i) {
    +
    2619 // Inner : found
    +
    2620 interval.end = m_separator->interval.end;
    +
    2621 }
    +
    2622 else {
    +
    2623 // Leading : found
    +
    2624 goto error;
    +
    2625 }
    +
    2626 }
    +
    2627 else if (i) {
    +
    2628 // : missing
    +
    2629 break;
    +
    2630 }
    +
    2631
    +
    2632 components[i].start = interval.end;
    +
    2633 size_t x;
    +
    2634 for (x = 0; interval.end < end && text[interval.end];) {
    +
    2635 size_t dig, digit_end;
    +
    2636 if (m_digit_0->match(text, interval.end, end, flags)) { dig = 0; digit_end = m_digit_0->interval.end; }
    +
    2637 else if (m_digit_1->match(text, interval.end, end, flags)) { dig = 1; digit_end = m_digit_1->interval.end; }
    +
    2638 else if (m_digit_2->match(text, interval.end, end, flags)) { dig = 2; digit_end = m_digit_2->interval.end; }
    +
    2639 else if (m_digit_3->match(text, interval.end, end, flags)) { dig = 3; digit_end = m_digit_3->interval.end; }
    +
    2640 else if (m_digit_4->match(text, interval.end, end, flags)) { dig = 4; digit_end = m_digit_4->interval.end; }
    +
    2641 else if (m_digit_5->match(text, interval.end, end, flags)) { dig = 5; digit_end = m_digit_5->interval.end; }
    +
    2642 else if (m_digit_6->match(text, interval.end, end, flags)) { dig = 6; digit_end = m_digit_6->interval.end; }
    +
    2643 else if (m_digit_7->match(text, interval.end, end, flags)) { dig = 7; digit_end = m_digit_7->interval.end; }
    +
    2644 else if (m_digit_8->match(text, interval.end, end, flags)) { dig = 8; digit_end = m_digit_8->interval.end; }
    +
    2645 else if (m_digit_9->match(text, interval.end, end, flags)) { dig = 9; digit_end = m_digit_9->interval.end; }
    +
    2646 else if (m_digit_10->match(text, interval.end, end, flags)) { dig = 10; digit_end = m_digit_10->interval.end; }
    +
    2647 else if (m_digit_11->match(text, interval.end, end, flags)) { dig = 11; digit_end = m_digit_11->interval.end; }
    +
    2648 else if (m_digit_12->match(text, interval.end, end, flags)) { dig = 12; digit_end = m_digit_12->interval.end; }
    +
    2649 else if (m_digit_13->match(text, interval.end, end, flags)) { dig = 13; digit_end = m_digit_13->interval.end; }
    +
    2650 else if (m_digit_14->match(text, interval.end, end, flags)) { dig = 14; digit_end = m_digit_14->interval.end; }
    +
    2651 else if (m_digit_15->match(text, interval.end, end, flags)) { dig = 15; digit_end = m_digit_15->interval.end; }
    +
    2652 else break;
    +
    2653 size_t x_n = x * 16 + dig;
    +
    2654 if (x_n <= 0xffff) {
    +
    2655 x = x_n;
    +
    2656 interval.end = digit_end;
    +
    2657 is_empty = false;
    +
    2658 }
    +
    2659 else
    +
    2660 break;
    +
    2661 }
    +
    2662 if (is_empty) {
    +
    2663 if (compaction_i != (size_t)-1) {
    +
    2664 // Zero compaction active: no sweat.
    +
    2665 break;
    +
    2666 }
    +
    2667 goto error;
    +
    2668 }
    +
    2669 components[i].end = interval.end;
    +
    2670 value.s6_words[i] = (uint16_t)x;
    +
    2671 }
    +
    2672
    +
    2673 if (compaction_i != (size_t)-1) {
    +
    2674 // Align components right due to zero compaction.
    +
    2675 size_t j, k;
    +
    2676 for (j = 8, k = i; k > compaction_i;) {
    +
    2677 value.s6_words[--j] = value.s6_words[--k];
    +
    2678 components[j] = components[k];
    +
    2679 }
    +
    2680 for (; j > compaction_i;) {
    +
    2681 value.s6_words[--j] = 0;
    +
    2682 components[j].start =
    +
    2683 components[j].end = compaction_start;
    +
    2684 }
    +
    2685 }
    +
    2686 else if (i < 8)
    +
    2687 goto error;
    +
    2688
    +
    2689 if (m_scope_id_separator && m_scope_id_separator->match(text, interval.end, end, flags) &&
    +
    2690 scope_id && scope_id->match(text, m_scope_id_separator->interval.end, end, flags))
    +
    2691 interval.end = scope_id->interval.end;
    +
    2692 else if (scope_id)
    +
    2693 scope_id->invalidate();
    +
    2694
    +
    2695 interval.start = start;
    +
    2696 return true;
    +
    2697
    +
    2698 error:
    +
    2699 components[0].start = 1;
    +
    2700 components[0].end = 0;
    +
    2701 components[1].start = 1;
    +
    2702 components[1].end = 0;
    +
    2703 components[2].start = 1;
    +
    2704 components[2].end = 0;
    +
    2705 components[3].start = 1;
    +
    2706 components[3].end = 0;
    +
    2707 components[4].start = 1;
    +
    2708 components[4].end = 0;
    +
    2709 components[5].start = 1;
    +
    2710 components[5].end = 0;
    +
    2711 components[6].start = 1;
    +
    2712 components[6].end = 0;
    +
    2713 components[7].start = 1;
    +
    2714 components[7].end = 0;
    +
    2715 memset(value, 0, sizeof(value));
    +
    2716 if (scope_id) scope_id->invalidate();
    +
    2717 interval.start = (interval.end = start) + 1;
    +
    2718 return false;
    +
    2719 }
    +
    2720
    +
    2721 virtual void invalidate()
    +
    2722 {
    +
    2723 components[0].start = 1;
    +
    2724 components[0].end = 0;
    +
    2725 components[1].start = 1;
    +
    2726 components[1].end = 0;
    +
    2727 components[2].start = 1;
    +
    2728 components[2].end = 0;
    +
    2729 components[3].start = 1;
    +
    2730 components[3].end = 0;
    +
    2731 components[4].start = 1;
    +
    2732 components[4].end = 0;
    +
    2733 components[5].start = 1;
    +
    2734 components[5].end = 0;
    +
    2735 components[6].start = 1;
    +
    2736 components[6].end = 0;
    +
    2737 components[7].start = 1;
    +
    2738 components[7].end = 0;
    +
    2739 memset(value, 0, sizeof(value));
    +
    2740 if (scope_id) scope_id->invalidate();
    + +
    2742 }
    +
    2743
    +
    2744 public:
    + +
    2746 struct in6_addr value;
    +
    2747 std::shared_ptr<basic_parser<T>> scope_id;
    +
    2748
    +
    2749 protected:
    +
    2750 std::shared_ptr<basic_parser<T>>
    +
    2751 m_digit_0,
    +
    2752 m_digit_1,
    +
    2753 m_digit_2,
    +
    2754 m_digit_3,
    +
    2755 m_digit_4,
    +
    2756 m_digit_5,
    +
    2757 m_digit_6,
    +
    2758 m_digit_7,
    +
    2759 m_digit_8,
    +
    2760 m_digit_9,
    +
    2761 m_digit_10,
    +
    2762 m_digit_11,
    +
    2763 m_digit_12,
    +
    2764 m_digit_13,
    +
    2765 m_digit_14,
    +
    2766 m_digit_15;
    +
    2767 std::shared_ptr<basic_parser<T>> m_separator, m_scope_id_separator;
    +
    2768 };
    +
    2769
    + + +
    2772#ifdef _UNICODE
    + +
    2774#else
    + +
    2776#endif
    + +
    2778
    +
    2782 template <class T>
    + +
    2784 {
    +
    2785 public:
    + +
    2787 _In_ bool allow_idn,
    +
    2788 _In_ const std::locale& locale = std::locale()) :
    +
    2789 basic_parser<T>(locale),
    +
    2790 m_allow_idn(allow_idn),
    +
    2791 allow_on_edge(true)
    +
    2792 {}
    +
    2793
    +
    2794 virtual bool match(
    +
    2795 _In_reads_or_z_(end) const T* text,
    +
    2796 _In_ size_t start = 0,
    +
    2797 _In_ size_t end = (size_t)-1,
    +
    2798 _In_ int flags = match_default)
    +
    2799 {
    +
    2800 assert(text || start >= end);
    +
    2801 if (start < end && text[start]) {
    +
    2802 if (('A' <= text[start] && text[start] <= 'Z') ||
    +
    2803 ('a' <= text[start] && text[start] <= 'z') ||
    +
    2804 ('0' <= text[start] && text[start] <= '9'))
    +
    2805 allow_on_edge = true;
    +
    2806 else if (text[start] == '-')
    +
    2807 allow_on_edge = false;
    +
    2808 else if (m_allow_idn && std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
    +
    2809 allow_on_edge = true;
    +
    2810 else {
    +
    2811 interval.start = (interval.end = start) + 1;
    +
    2812 return false;
    +
    2813 }
    +
    2814 interval.end = (interval.start = start) + 1;
    +
    2815 return true;
    +
    2816 }
    +
    2817 interval.start = (interval.end = start) + 1;
    +
    2818 return false;
    +
    2819 }
    +
    2820
    +
    2821 public:
    + +
    2823
    +
    2824 protected:
    +
    2825 bool m_allow_idn;
    +
    2826 };
    +
    2827
    + + +
    2830#ifdef _UNICODE
    + +
    2832#else
    + +
    2834#endif
    +
    2835
    + +
    2840 {
    +
    2841 public:
    + +
    2843 _In_ bool allow_idn,
    +
    2844 _In_ const std::locale& locale = std::locale()) :
    +
    2845 basic_dns_domain_char<char>(allow_idn, locale)
    +
    2846 {}
    +
    2847
    +
    2848 virtual bool match(
    +
    2849 _In_reads_or_z_(end) const char* text,
    +
    2850 _In_ size_t start = 0,
    +
    2851 _In_ size_t end = (size_t)-1,
    +
    2852 _In_ int flags = match_default)
    +
    2853 {
    +
    2854 assert(text || start >= end);
    +
    2855 if (start < end && text[start]) {
    +
    2856 wchar_t buf[3];
    +
    2857 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    2858 const wchar_t* chr_end = chr + stdex::strlen(chr);
    +
    2859 if ((('A' <= chr[0] && chr[0] <= 'Z') ||
    +
    2860 ('a' <= chr[0] && chr[0] <= 'z') ||
    +
    2861 ('0' <= chr[0] && chr[0] <= '9')) && chr[1] == 0)
    +
    2862 allow_on_edge = true;
    +
    2863 else if (chr[0] == '-' && chr[1] == 0)
    +
    2864 allow_on_edge = false;
    +
    2865 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)
    +
    2866 allow_on_edge = true;
    +
    2867 else {
    +
    2868 interval.start = (interval.end = start) + 1;
    +
    2869 return false;
    +
    2870 }
    +
    2871 interval.start = start;
    +
    2872 return true;
    +
    2873 }
    +
    2874 interval.start = (interval.end = start) + 1;
    +
    2875 return false;
    +
    2876 }
    +
    2877 };
    +
    2878
    +
    2882 template <class T>
    + +
    2884 {
    +
    2885 public:
    + +
    2887 _In_ bool allow_absolute,
    +
    2888 _In_ const std::shared_ptr<basic_dns_domain_char<T>>& domain_char,
    +
    2889 _In_ const std::shared_ptr<basic_parser<T>>& separator,
    +
    2890 _In_ const std::locale& locale = std::locale()) :
    +
    2891 basic_parser<T>(locale),
    +
    2892 m_allow_absolute(allow_absolute),
    +
    2893 m_domain_char(domain_char),
    +
    2894 m_separator(separator)
    +
    2895 {}
    +
    2896
    +
    2897 virtual bool match(
    +
    2898 _In_reads_or_z_(end) const T* text,
    +
    2899 _In_ size_t start = 0,
    +
    2900 _In_ size_t end = (size_t)-1,
    +
    2901 _In_ int flags = match_default)
    +
    2902 {
    +
    2903 assert(text || start >= end);
    +
    2904 size_t i = start, count;
    +
    2905 for (count = 0; i < end && text[i] && count < 127; count++) {
    +
    2906 if (m_domain_char->match(text, i, end, flags) &&
    +
    2907 m_domain_char->allow_on_edge)
    +
    2908 {
    +
    2909 // Domain start
    +
    2910 interval.end = i = m_domain_char->interval.end;
    +
    2911 while (i < end && text[i]) {
    +
    2912 if (m_domain_char->allow_on_edge &&
    +
    2913 m_separator->match(text, i, end, flags))
    +
    2914 {
    +
    2915 // Domain end
    +
    2916 if (m_allow_absolute)
    +
    2917 interval.end = i = m_separator->interval.end;
    +
    2918 else {
    +
    2919 interval.end = i;
    +
    2920 i = m_separator->interval.end;
    +
    2921 }
    +
    2922 break;
    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 {
    +
    2924 if (m_domain_char->match(text, i, end, flags)) {
    +
    2925 if (m_domain_char->allow_on_edge)
    +
    2926 interval.end = i = m_domain_char->interval.end;
    +
    2927 else
    +
    2928 i = m_domain_char->interval.end;
    +
    2929 }
    +
    2930 else {
    +
    2931 interval.start = start;
    +
    2932 return true;
    +
    2933 }
    +
    2934 }
    +
    2935 }
    +
    2936 else
    +
    2937 break;
    +
    2938 }
    +
    2939 if (count) {
    +
    2940 interval.start = start;
    +
    2941 return true;
    +
    2942 }
    +
    2943 interval.start = (interval.end = start) + 1;
    +
    2944 return false;
    +
    2945 }
    +
    2946
    +
    2947 protected:
    + +
    2949 std::shared_ptr<basic_dns_domain_char<T>> m_domain_char;
    +
    2950 std::shared_ptr<basic_parser<T>> m_separator;
    +
    2951 };
    +
    2952
    + + +
    2955#ifdef _UNICODE
    +
    2956 using tdns_name = wdns_name;
    +
    2957#else
    +
    2958 using tdns_name = dns_name;
    +
    2959#endif
    + +
    2961
    +
    2965 template <class T>
    + +
    2967 {
    +
    2968 public:
    +
    2969 basic_url_username_char(_In_ const std::locale& locale = std::locale()) : basic_parser<T>(locale) {}
    +
    2970
    +
    2971 virtual bool match(
    +
    2972 _In_reads_or_z_(end) const T* text,
    +
    2973 _In_ size_t start = 0,
    +
    2974 _In_ size_t end = (size_t)-1,
    +
    2975 _In_ int flags = match_default)
    +
    2976 {
    +
    2977 assert(text || start >= end);
    +
    2978 if (start < end && text[start]) {
    +
    2979 if (text[start] == '-' ||
    +
    2980 text[start] == '.' ||
    +
    2981 text[start] == '_' ||
    +
    2982 text[start] == '~' ||
    +
    2983 text[start] == '%' ||
    +
    2984 text[start] == '!' ||
    +
    2985 text[start] == '$' ||
    +
    2986 text[start] == '&' ||
    +
    2987 text[start] == '\'' ||
    +
    2988 //text[start] == '(' ||
    +
    2989 //text[start] == ')' ||
    +
    2990 text[start] == '*' ||
    +
    2991 text[start] == '+' ||
    +
    2992 text[start] == ',' ||
    +
    2993 text[start] == ';' ||
    +
    2994 text[start] == '=' ||
    +
    2995 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
    +
    2996 {
    +
    2997 interval.end = (interval.start = start) + 1;
    +
    2998 return true;
    +
    2999 }
    +
    3000 }
    +
    3001 interval.start = (interval.end = start) + 1;
    +
    3002 return false;
    +
    3003 }
    +
    3004 };
    +
    3005
    + + +
    3008#ifdef _UNICODE
    + +
    3010#else
    + +
    3012#endif
    +
    3013
    + +
    3018 {
    +
    3019 public:
    +
    3020 sgml_url_username_char(_In_ const std::locale& locale = std::locale()) : basic_url_username_char<char>(locale) {}
    +
    3021
    +
    3022 virtual bool match(
    +
    3023 _In_reads_or_z_(end) const char* text,
    +
    3024 _In_ size_t start = 0,
    +
    3025 _In_ size_t end = (size_t)-1,
    +
    3026 _In_ int flags = match_default)
    +
    3027 {
    +
    3028 assert(text || start >= end);
    +
    3029 if (start < end && text[start]) {
    +
    3030 wchar_t buf[3];
    +
    3031 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    3032 const wchar_t* chr_end = chr + stdex::strlen(chr);
    +
    3033 if ((chr[0] == L'-' ||
    +
    3034 chr[0] == L'.' ||
    +
    3035 chr[0] == L'_' ||
    +
    3036 chr[0] == L'~' ||
    +
    3037 chr[0] == L'%' ||
    +
    3038 chr[0] == L'!' ||
    +
    3039 chr[0] == L'$' ||
    +
    3040 chr[0] == L'&' ||
    +
    3041 chr[0] == L'\'' ||
    +
    3042 //chr[0] == L'(' ||
    +
    3043 //chr[0] == L')' ||
    +
    3044 chr[0] == L'*' ||
    +
    3045 chr[0] == L'+' ||
    +
    3046 chr[0] == L',' ||
    +
    3047 chr[0] == L';' ||
    +
    3048 chr[0] == L'=') && chr[1] == 0 ||
    +
    3049 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::alnum, chr, chr_end) == chr_end)
    +
    3050 {
    +
    3051 interval.start = start;
    +
    3052 return true;
    +
    3053 }
    +
    3054 }
    +
    3055
    +
    3056 interval.start = (interval.end = start) + 1;
    +
    3057 return false;
    +
    3058 }
    +
    3059 };
    +
    3060
    +
    3064 template <class T>
    + +
    3066 {
    +
    3067 public:
    +
    3068 basic_url_password_char(_In_ const std::locale& locale = std::locale()) : basic_parser<T>(locale) {}
    +
    3069
    +
    3070 virtual bool match(
    +
    3071 _In_reads_or_z_(end) const T* text,
    +
    3072 _In_ size_t start = 0,
    +
    3073 _In_ size_t end = (size_t)-1,
    +
    3074 _In_ int flags = match_default)
    +
    3075 {
    +
    3076 assert(text || start >= end);
    +
    3077 if (start < end && text[start]) {
    +
    3078 if (text[start] == '-' ||
    +
    3079 text[start] == '.' ||
    +
    3080 text[start] == '_' ||
    +
    3081 text[start] == '~' ||
    +
    3082 text[start] == '%' ||
    +
    3083 text[start] == '!' ||
    +
    3084 text[start] == '$' ||
    +
    3085 text[start] == '&' ||
    +
    3086 text[start] == '\'' ||
    +
    3087 text[start] == '(' ||
    +
    3088 text[start] == ')' ||
    +
    3089 text[start] == '*' ||
    +
    3090 text[start] == '+' ||
    +
    3091 text[start] == ',' ||
    +
    3092 text[start] == ';' ||
    +
    3093 text[start] == '=' ||
    +
    3094 text[start] == ':' ||
    +
    3095 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
    +
    3096 {
    +
    3097 interval.end = (interval.start = start) + 1;
    +
    3098 return true;
    +
    3099 }
    +
    3100 }
    +
    3101 interval.start = (interval.end = start) + 1;
    +
    3102 return false;
    +
    3103 }
    +
    3104 };
    +
    3105
    + + +
    3108#ifdef _UNICODE
    + +
    3110#else
    + +
    3112#endif
    +
    3113
    + +
    3118 {
    +
    3119 public:
    +
    3120 sgml_url_password_char(_In_ const std::locale& locale = std::locale()) : basic_url_password_char<char>(locale) {}
    +
    3121
    +
    3122 virtual bool match(
    +
    3123 _In_reads_or_z_(end) const char* text,
    +
    3124 _In_ size_t start = 0,
    +
    3125 _In_ size_t end = (size_t)-1,
    +
    3126 _In_ int flags = match_default)
    +
    3127 {
    +
    3128 assert(text || start >= end);
    +
    3129 if (start < end && text[start]) {
    +
    3130 wchar_t buf[3];
    +
    3131 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    3132 const wchar_t* chr_end = chr + stdex::strlen(chr);
    +
    3133 if ((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'$' ||
    +
    3140 chr[0] == L'&' ||
    +
    3141 chr[0] == L'\'' ||
    +
    3142 chr[0] == L'(' ||
    +
    3143 chr[0] == L')' ||
    +
    3144 chr[0] == L'*' ||
    +
    3145 chr[0] == L'+' ||
    +
    3146 chr[0] == L',' ||
    +
    3147 chr[0] == L';' ||
    +
    3148 chr[0] == L'=' ||
    +
    3149 chr[0] == L':') && chr[1] == 0 ||
    +
    3150 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::alnum, chr, chr_end) == chr_end)
    +
    3151 {
    +
    3152 interval.start = start;
    +
    3153 return true;
    +
    3154 }
    +
    3155 }
    +
    3156 interval.start = (interval.end = start) + 1;
    +
    3157 return false;
    +
    3158 }
    +
    3159 };
    +
    3160
    +
    3164 template <class T>
    + +
    3166 {
    +
    3167 public:
    +
    3168 basic_url_path_char(_In_ const std::locale& locale = std::locale()) : basic_parser<T>(locale) {}
    +
    3169
    +
    3170 virtual bool match(
    +
    3171 _In_reads_or_z_(end) const T* text,
    +
    3172 _In_ size_t start = 0,
    +
    3173 _In_ size_t end = (size_t)-1,
    +
    3174 _In_ int flags = match_default)
    +
    3175 {
    +
    3176 assert(text || start >= end);
    +
    3177 if (start < end && text[start]) {
    +
    3178 if (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 text[start] == ')' ||
    +
    3190 text[start] == '*' ||
    +
    3191 text[start] == '+' ||
    +
    3192 text[start] == ',' ||
    +
    3193 text[start] == ';' ||
    +
    3194 text[start] == '=' ||
    +
    3195 text[start] == ':' ||
    +
    3196 text[start] == '@' ||
    +
    3197 text[start] == '?' ||
    +
    3198 text[start] == '#' ||
    +
    3199 std::use_facet<std::ctype<T>>(m_locale).is(std::ctype_base::alnum, text[start]))
    +
    3200 {
    +
    3201 interval.end = (interval.start = start) + 1;
    +
    3202 return true;
    +
    3203 }
    +
    3204 }
    +
    3205 interval.start = (interval.end = start) + 1;
    +
    3206 return false;
    +
    3207 }
    +
    3208 };
    +
    3209
    + + +
    3212#ifdef _UNICODE
    + +
    3214#else
    + +
    3216#endif
    +
    3217
    + +
    3222 {
    +
    3223 public:
    +
    3224 sgml_url_path_char(_In_ const std::locale& locale = std::locale()) : basic_url_path_char<char>(locale) {}
    +
    3225
    +
    3226 virtual bool match(
    +
    3227 _In_reads_or_z_(end) const char* text,
    +
    3228 _In_ size_t start = 0,
    +
    3229 _In_ size_t end = (size_t)-1,
    +
    3230 _In_ int flags = match_default)
    +
    3231 {
    +
    3232 assert(text || start >= end);
    +
    3233 if (start < end && text[start]) {
    +
    3234 wchar_t buf[3];
    +
    3235 const wchar_t* chr = next_sgml_cp(text, start, end, interval.end, buf);
    +
    3236 const wchar_t* chr_end = chr + stdex::strlen(chr);
    +
    3237 if ((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'(' ||
    +
    3248 chr[0] == L')' ||
    +
    3249 chr[0] == L'*' ||
    +
    3250 chr[0] == L'+' ||
    +
    3251 chr[0] == L',' ||
    +
    3252 chr[0] == L';' ||
    +
    3253 chr[0] == L'=' ||
    +
    3254 chr[0] == L':' ||
    +
    3255 chr[0] == L'@' ||
    +
    3256 chr[0] == L'?' ||
    +
    3257 chr[0] == L'#') && chr[1] == 0 ||
    +
    3258 std::use_facet<std::ctype<wchar_t>>(m_locale).scan_not(std::ctype_base::alnum, chr, chr_end) == chr_end)
    +
    3259 {
    +
    3260 interval.start = start;
    +
    3261 return true;
    +
    3262 }
    +
    3263 }
    +
    3264 interval.start = (interval.end = start) + 1;
    +
    3265 return false;
    +
    3266 }
    +
    3267 };
    +
    3268
    +
    3272 template <class T>
    + +
    3274 {
    +
    3275 public:
    + +
    3277 _In_ const std::shared_ptr<basic_parser<T>>& path_char,
    +
    3278 _In_ const std::shared_ptr<basic_parser<T>>& query_start,
    +
    3279 _In_ const std::shared_ptr<basic_parser<T>>& bookmark_start,
    +
    3280 _In_ const std::locale& locale = std::locale()) :
    +
    3281 basic_parser<T>(locale),
    +
    3282 m_path_char(path_char),
    +
    3283 m_query_start(query_start),
    +
    3284 m_bookmark_start(bookmark_start)
    +
    3285 {}
    +
    3286
    +
    3287 virtual bool match(
    +
    3288 _In_reads_or_z_(end) const T* text,
    +
    3289 _In_ size_t start = 0,
    +
    3290 _In_ size_t end = (size_t)-1,
    +
    3291 _In_ int flags = match_default)
    +
    3292 {
    +
    3293 assert(text || start >= end);
    +
    3294
    +
    3295 interval.end = start;
    +
    3296 path.start = start;
    +
    3297 query.start = 1;
    +
    3298 query.end = 0;
    +
    3299 bookmark.start = 1;
    +
    3300 bookmark.end = 0;
    +
    3301
    +
    3302 for (;;) {
    +
    3303 if (interval.end >= end || !text[interval.end])
    +
    3304 break;
    +
    3305 if (m_query_start->match(text, interval.end, end, flags)) {
    +
    3306 path.end = interval.end;
    +
    3307 query.start = interval.end = m_query_start->interval.end;
    +
    3308 for (;;) {
    +
    3309 if (interval.end >= end || !text[interval.end]) {
    +
    3310 query.end = interval.end;
    +
    3311 break;
    +
    3312 }
    +
    3313 if (m_bookmark_start->match(text, interval.end, end, flags)) {
    +
    3314 query.end = interval.end;
    +
    3315 bookmark.start = interval.end = m_bookmark_start->interval.end;
    +
    3316 for (;;) {
    +
    3317 if (interval.end >= end || !text[interval.end]) {
    +
    3318 bookmark.end = interval.end;
    +
    3319 break;
    +
    3320 }
    +
    3321 if (m_path_char->match(text, interval.end, end, flags))
    +
    3322 interval.end = m_path_char->interval.end;
    +
    3323 else {
    +
    3324 bookmark.end = interval.end;
    +
    3325 break;
    +
    3326 }
    +
    3327 }
    +
    3328 interval.start = start;
    +
    3329 return true;
    +
    3330 }
    +
    3331 if (m_path_char->match(text, interval.end, end, flags))
    +
    3332 interval.end = m_path_char->interval.end;
    +
    3333 else {
    +
    3334 query.end = interval.end;
    +
    3335 break;
    +
    3336 }
    +
    3337 }
    +
    3338 interval.start = start;
    +
    3339 return true;
    +
    3340 }
    +
    3341 if (m_bookmark_start->match(text, interval.end, end, flags)) {
    +
    3342 path.end = interval.end;
    +
    3343 bookmark.start = interval.end = m_bookmark_start->interval.end;
    +
    3344 for (;;) {
    +
    3345 if (interval.end >= end || !text[interval.end]) {
    +
    3346 bookmark.end = interval.end;
    +
    3347 break;
    +
    3348 }
    +
    3349 if (m_path_char->match(text, interval.end, end, flags))
    +
    3350 interval.end = m_path_char->interval.end;
    +
    3351 else {
    +
    3352 bookmark.end = interval.end;
    +
    3353 break;
    +
    3354 }
    +
    3355 }
    +
    3356 interval.start = start;
    +
    3357 return true;
    +
    3358 }
    +
    3359 if (m_path_char->match(text, interval.end, end, flags))
    +
    3360 interval.end = m_path_char->interval.end;
    +
    3361 else
    +
    3362 break;
    +
    3363 }
    +
    3364
    +
    3365 if (start < interval.end) {
    +
    3366 path.end = interval.end;
    +
    3367 interval.start = start;
    +
    3368 return true;
    +
    3369 }
    +
    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;
    +
    3373 bookmark.start = 1;
    +
    3374 bookmark.end = 0;
    +
    3375 interval.start = (interval.end = start) + 1;
    +
    3376 return false;
    +
    3377 }
    +
    3378
    +
    3379 virtual void invalidate()
    +
    3380 {
    +
    3381 path.start = 1;
    +
    3382 path.end = 0;
    +
    3383 query.start = 1;
    +
    3384 query.end = 0;
    +
    3385 bookmark.start = 1;
    +
    3386 bookmark.end = 0;
    + +
    3388 }
    +
    3389
    +
    3390 public:
    + + +
    3393 stdex::interval<size_t> bookmark;
    +
    3394
    +
    3395 protected:
    +
    3396 std::shared_ptr<basic_parser<T>> m_path_char;
    +
    3397 std::shared_ptr<basic_parser<T>> m_query_start;
    +
    3398 std::shared_ptr<basic_parser<T>> m_bookmark_start;
    +
    3399 };
    +
    3400
    + + +
    3403#ifdef _UNICODE
    +
    3404 using turl_path = wurl_path;
    +
    3405#else
    +
    3406 using turl_path = url_path;
    +
    3407#endif
    + +
    3409
    +
    3413 template <class T>
    +
    3414 class basic_url : public basic_parser<T>
    +
    3415 {
    +
    3416 public:
    +
    3417 basic_url(
    +
    3418 _In_ const std::shared_ptr<basic_parser<T>>& _http_scheme,
    +
    3419 _In_ const std::shared_ptr<basic_parser<T>>& _ftp_scheme,
    +
    3420 _In_ const std::shared_ptr<basic_parser<T>>& _mailto_scheme,
    +
    3421 _In_ const std::shared_ptr<basic_parser<T>>& _file_scheme,
    +
    3422 _In_ const std::shared_ptr<basic_parser<T>>& colon,
    +
    3423 _In_ const std::shared_ptr<basic_parser<T>>& slash,
    +
    3424 _In_ const std::shared_ptr<basic_parser<T>>& _username,
    +
    3425 _In_ const std::shared_ptr<basic_parser<T>>& _password,
    +
    3426 _In_ const std::shared_ptr<basic_parser<T>>& at,
    +
    3427 _In_ const std::shared_ptr<basic_parser<T>>& ip_lbracket,
    +
    3428 _In_ const std::shared_ptr<basic_parser<T>>& ip_rbracket,
    +
    3429 _In_ const std::shared_ptr<basic_parser<T>>& _ipv4_host,
    +
    3430 _In_ const std::shared_ptr<basic_parser<T>>& _ipv6_host,
    +
    3431 _In_ const std::shared_ptr<basic_parser<T>>& _dns_host,
    +
    3432 _In_ const std::shared_ptr<basic_parser<T>>& _port,
    +
    3433 _In_ const std::shared_ptr<basic_parser<T>>& _path,
    +
    3434 _In_ const std::locale& locale = std::locale()) :
    +
    3435 basic_parser<T>(locale),
    +
    3436 http_scheme(_http_scheme),
    +
    3437 ftp_scheme(_ftp_scheme),
    +
    3438 mailto_scheme(_mailto_scheme),
    +
    3439 file_scheme(_file_scheme),
    +
    3440 m_colon(colon),
    +
    3441 m_slash(slash),
    +
    3442 username(_username),
    +
    3443 password(_password),
    +
    3444 m_at(at),
    +
    3445 m_ip_lbracket(ip_lbracket),
    +
    3446 m_ip_rbracket(ip_rbracket),
    +
    3447 ipv4_host(_ipv4_host),
    +
    3448 ipv6_host(_ipv6_host),
    +
    3449 dns_host(_dns_host),
    +
    3450 port(_port),
    +
    3451 path(_path)
    +
    3452 {}
    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();
    +
    3454 virtual bool match(
    +
    3455 _In_reads_or_z_(end) const T* text,
    +
    3456 _In_ size_t start = 0,
    +
    3457 _In_ size_t end = (size_t)-1,
    +
    3458 _In_ int flags = match_default)
    +
    3459 {
    +
    3460 assert(text || start >= end);
    +
    3461
    +
    3462 interval.end = start;
    +
    3463
    +
    3464 if (http_scheme->match(text, interval.end, end, flags) &&
    +
    3465 m_colon->match(text, http_scheme->interval.end, end, flags) &&
    +
    3466 m_slash->match(text, m_colon->interval.end, end, flags) &&
    +
    3467 m_slash->match(text, m_slash->interval.end, end, flags))
    +
    3468 {
    +
    3469 // http://
    +
    3470 interval.end = m_slash->interval.end;
    +
    3471 ftp_scheme->invalidate();
    +
    3472 mailto_scheme->invalidate();
    +
    3473 file_scheme->invalidate();
    +
    3474 }
    +
    3475 else if (ftp_scheme->match(text, interval.end, end, flags) &&
    +
    3476 m_colon->match(text, ftp_scheme->interval.end, end, flags) &&
    +
    3477 m_slash->match(text, m_colon->interval.end, end, flags) &&
    +
    3478 m_slash->match(text, m_slash->interval.end, end, flags))
    +
    3479 {
    +
    3480 // ftp://
    +
    3481 interval.end = m_slash->interval.end;
    +
    3482 http_scheme->invalidate();
    +
    3483 mailto_scheme->invalidate();
    +
    3484 file_scheme->invalidate();
    +
    3485 }
    +
    3486 else if (mailto_scheme->match(text, interval.end, end, flags) &&
    +
    3487 m_colon->match(text, mailto_scheme->interval.end, end, flags))
    +
    3488 {
    +
    3489 // mailto:
    +
    3490 interval.end = m_colon->interval.end;
    +
    3491 http_scheme->invalidate();
    +
    3492 ftp_scheme->invalidate();
    +
    3493 file_scheme->invalidate();
    +
    3494 }
    +
    3495 else if (file_scheme->match(text, interval.end, end, flags) &&
    +
    3496 m_colon->match(text, file_scheme->interval.end, end, flags) &&
    +
    3497 m_slash->match(text, m_colon->interval.end, end, flags) &&
    +
    3498 m_slash->match(text, m_slash->interval.end, end, flags))
    +
    3499 {
    +
    3500 // file://
    +
    3501 interval.end = m_slash->interval.end;
    +
    3502 http_scheme->invalidate();
    +
    3503 ftp_scheme->invalidate();
    +
    3504 mailto_scheme->invalidate();
    +
    3505 }
    +
    3506 else {
    +
    3507 // Default to http:
    +
    3508 http_scheme->invalidate();
    +
    3509 ftp_scheme->invalidate();
    +
    3510 mailto_scheme->invalidate();
    +
    3511 file_scheme->invalidate();
    +
    3512 }
    +
    3513
    +
    3514 if (ftp_scheme->interval) {
    +
    3515 if (username->match(text, interval.end, end, flags)) {
    +
    3516 if (m_colon->match(text, username->interval.end, end, flags) &&
    +
    3517 password->match(text, m_colon->interval.end, end, flags) &&
    +
    3518 m_at->match(text, password->interval.end, end, flags))
    +
    3519 {
    +
    3520 // Username and password
    +
    3521 interval.end = m_at->interval.end;
    +
    3522 }
    +
    3523 else if (m_at->match(text, interval.end, end, flags)) {
    +
    3524 // Username only
    +
    3525 interval.end = m_at->interval.end;
    +
    3526 password->invalidate();
    +
    3527 }
    +
    3528 else {
    +
    3529 username->invalidate();
    +
    3530 password->invalidate();
    +
    3531 }
    +
    3532 }
    +
    3533 else {
    +
    3534 username->invalidate();
    +
    3535 password->invalidate();
    +
    3536 }
    +
    3537
    +
    3538 if (ipv4_host->match(text, interval.end, end, flags)) {
    +
    3539 // Host is IPv4
    +
    3540 interval.end = ipv4_host->interval.end;
    +
    3541 ipv6_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;
    +
    3544 else if (
    +
    3545 m_ip_lbracket->match(text, interval.end, end, flags) &&
    +
    3546 ipv6_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
    +
    3547 m_ip_rbracket->match(text, ipv6_host->interval.end, end, flags))
    +
    3548 {
    +
    3549 // Host is IPv6
    +
    3550 interval.end = m_ip_rbracket->interval.end;
    +
    3551 ipv4_host->invalidate();
    +
    3552 dns_host->invalidate();
    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();
    +
    3554 else if (dns_host->match(text, interval.end, end, flags)) {
    +
    3555 // Host is hostname
    +
    3556 interval.end = dns_host->interval.end;
    +
    3557 ipv4_host->invalidate();
    +
    3558 ipv6_host->invalidate();
    +
    3559 }
    +
    3560 else {
    +
    3561 invalidate();
    +
    3562 return false;
    +
    3563 }
    +
    3564
    +
    3565 if (m_colon->match(text, interval.end, end, flags) &&
    +
    3566 port->match(text, m_colon->interval.end, end, flags))
    +
    3567 {
    +
    3568 // Port
    +
    3569 interval.end = port->interval.end;
    +
    3570 }
    +
    3571 else
    +
    3572 port->invalidate();
    +
    3573
    +
    3574 if (path->match(text, interval.end, end, flags)) {
    +
    3575 // Path
    +
    3576 interval.end = path->interval.end;
    +
    3577 }
    +
    3578
    +
    3579 interval.start = start;
    +
    3580 return true;
    +
    3581 }
    +
    3582
    +
    3583 if (mailto_scheme->interval) {
    +
    3584 if (username->match(text, interval.end, end, flags) &&
    +
    3585 m_at->match(text, username->interval.end, end, flags))
    +
    3586 {
    +
    3587 // Username
    +
    3588 interval.end = m_at->interval.end;
    +
    3589 }
    +
    3590 else {
    +
    3591 invalidate();
    +
    3592 return false;
    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))
    +
    3594
    +
    3595 if (m_ip_lbracket->match(text, interval.end, end, flags) &&
    +
    3596 ipv4_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
    +
    3597 m_ip_rbracket->match(text, ipv4_host->interval.end, end, flags))
    3598 {
    -
    3599 // Host is IPv6
    +
    3599 // Host is IPv4
    3600 interval.end = m_ip_rbracket->interval.end;
    -
    3601 ipv4_host->invalidate();
    +
    3601 ipv6_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;
    +
    3604 else if (
    +
    3605 m_ip_lbracket->match(text, interval.end, end, flags) &&
    +
    3606 ipv6_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
    +
    3607 m_ip_rbracket->match(text, ipv6_host->interval.end, end, flags))
    +
    3608 {
    +
    3609 // Host is IPv6
    +
    3610 interval.end = m_ip_rbracket->interval.end;
    +
    3611 ipv4_host->invalidate();
    +
    3612 dns_host->invalidate();
    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 }
    +
    3614 else if (dns_host->match(text, interval.end, end, flags)) {
    +
    3615 // Host is hostname
    +
    3616 interval.end = dns_host->interval.end;
    +
    3617 ipv4_host->invalidate();
    +
    3618 ipv6_host->invalidate();
    +
    3619 }
    +
    3620 else {
    +
    3621 invalidate();
    +
    3622 return false;
    +
    3623 }
    +
    3624
    +
    3625 password->invalidate();
    +
    3626 port->invalidate();
    +
    3627 path->invalidate();
    +
    3628 interval.start = start;
    +
    3629 return true;
    +
    3630 }
    +
    3631
    +
    3632 if (file_scheme->interval) {
    +
    3633 if (path->match(text, interval.end, end, flags)) {
    +
    3634 // Path
    +
    3635 interval.end = path->interval.end;
    +
    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();
    +
    3638 username->invalidate();
    +
    3639 password->invalidate();
    +
    3640 ipv4_host->invalidate();
    +
    3641 ipv6_host->invalidate();
    +
    3642 dns_host->invalidate();
    +
    3643 port->invalidate();
    +
    3644 interval.start = start;
    +
    3645 return true;
    +
    3646 }
    +
    3647
    +
    3648 // "http://" found or defaulted to
    +
    3649
    +
    3650 // If "http://" explicit, test for username&password.
    +
    3651 if (http_scheme->interval &&
    +
    3652 username->match(text, interval.end, end, flags))
    +
    3653 {
    +
    3654 if (m_colon->match(text, username->interval.end, end, flags) &&
    +
    3655 password->match(text, m_colon->interval.end, end, flags) &&
    +
    3656 m_at->match(text, password->interval.end, end, flags))
    +
    3657 {
    +
    3658 // Username and password
    +
    3659 interval.end = m_at->interval.end;
    +
    3660 }
    +
    3661 else if (m_at->match(text, username->interval.end, end, flags)) {
    +
    3662 // Username only
    +
    3663 interval.end = m_at->interval.end;
    +
    3664 password->invalidate();
    +
    3665 }
    +
    3666 else {
    +
    3667 username->invalidate();
    +
    3668 password->invalidate();
    +
    3669 }
    +
    3670 }
    +
    3671 else {
    +
    3672 username->invalidate();
    +
    3673 password->invalidate();
    +
    3674 }
    +
    3675
    +
    3676 if (ipv4_host->match(text, interval.end, end, flags)) {
    +
    3677 // Host is IPv4
    +
    3678 interval.end = ipv4_host->interval.end;
    +
    3679 ipv6_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;
    +
    3682 else if (
    +
    3683 m_ip_lbracket->match(text, interval.end, end, flags) &&
    +
    3684 ipv6_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
    +
    3685 m_ip_rbracket->match(text, ipv6_host->interval.end, end, flags))
    +
    3686 {
    +
    3687 // Host is IPv6
    +
    3688 interval.end = m_ip_rbracket->interval.end;
    +
    3689 ipv4_host->invalidate();
    +
    3690 dns_host->invalidate();
    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))
    +
    3692 else if (dns_host->match(text, interval.end, end, flags)) {
    +
    3693 // Host is hostname
    +
    3694 interval.end = dns_host->interval.end;
    +
    3695 ipv4_host->invalidate();
    +
    3696 ipv6_host->invalidate();
    +
    3697 }
    +
    3698 else {
    +
    3699 invalidate();
    +
    3700 return false;
    +
    3701 }
    +
    3702
    +
    3703 if (m_colon->match(text, interval.end, end, flags) &&
    +
    3704 port->match(text, m_colon->interval.end, end, flags))
    +
    3705 {
    +
    3706 // Port
    +
    3707 interval.end = port->interval.end;
    +
    3708 }
    +
    3709 else
    +
    3710 port->invalidate();
    +
    3711
    +
    3712 if (path->match(text, interval.end, end, flags)) {
    +
    3713 // Path
    +
    3714 interval.end = path->interval.end;
    +
    3715 }
    +
    3716
    +
    3717 interval.start = start;
    +
    3718 return true;
    +
    3719 }
    +
    3720
    +
    3721 virtual void invalidate()
    +
    3722 {
    +
    3723 http_scheme->invalidate();
    +
    3724 ftp_scheme->invalidate();
    +
    3725 mailto_scheme->invalidate();
    +
    3726 file_scheme->invalidate();
    +
    3727 username->invalidate();
    +
    3728 password->invalidate();
    +
    3729 ipv4_host->invalidate();
    +
    3730 ipv6_host->invalidate();
    +
    3731 dns_host->invalidate();
    +
    3732 port->invalidate();
    +
    3733 path->invalidate();
    + +
    3735 }
    +
    3736
    +
    3737 public:
    +
    3738 std::shared_ptr<basic_parser<T>> http_scheme;
    +
    3739 std::shared_ptr<basic_parser<T>> ftp_scheme;
    +
    3740 std::shared_ptr<basic_parser<T>> mailto_scheme;
    +
    3741 std::shared_ptr<basic_parser<T>> file_scheme;
    +
    3742 std::shared_ptr<basic_parser<T>> username;
    +
    3743 std::shared_ptr<basic_parser<T>> password;
    +
    3744 std::shared_ptr<basic_parser<T>> ipv4_host;
    +
    3745 std::shared_ptr<basic_parser<T>> ipv6_host;
    +
    3746 std::shared_ptr<basic_parser<T>> dns_host;
    +
    3747 std::shared_ptr<basic_parser<T>> port;
    +
    3748 std::shared_ptr<basic_parser<T>> path;
    +
    3749
    +
    3750 protected:
    +
    3751 std::shared_ptr<basic_parser<T>> m_colon;
    +
    3752 std::shared_ptr<basic_parser<T>> m_slash;
    +
    3753 std::shared_ptr<basic_parser<T>> m_at;
    +
    3754 std::shared_ptr<basic_parser<T>> m_ip_lbracket;
    +
    3755 std::shared_ptr<basic_parser<T>> m_ip_rbracket;
    +
    3756 };
    +
    3757
    +
    3758 using url = basic_url<char>;
    +
    3759 using wurl = basic_url<wchar_t>;
    +
    3760#ifdef _UNICODE
    +
    3761 using turl = wurl;
    +
    3762#else
    +
    3763 using turl = url;
    +
    3764#endif
    +
    3765 using sgml_url = basic_url<char>;
    +
    3766
    +
    3770 template <class T>
    + +
    3772 {
    +
    3773 public:
    + +
    3775 _In_ const std::shared_ptr<basic_parser<T>>& _username,
    +
    3776 _In_ const std::shared_ptr<basic_parser<T>>& at,
    +
    3777 _In_ const std::shared_ptr<basic_parser<T>>& ip_lbracket,
    +
    3778 _In_ const std::shared_ptr<basic_parser<T>>& ip_rbracket,
    +
    3779 _In_ const std::shared_ptr<basic_parser<T>>& _ipv4_host,
    +
    3780 _In_ const std::shared_ptr<basic_parser<T>>& _ipv6_host,
    +
    3781 _In_ const std::shared_ptr<basic_parser<T>>& _dns_host,
    +
    3782 _In_ const std::locale& locale = std::locale()) :
    +
    3783 basic_parser<T>(locale),
    +
    3784 username(_username),
    +
    3785 m_at(at),
    +
    3786 m_ip_lbracket(ip_lbracket),
    +
    3787 m_ip_rbracket(ip_rbracket),
    +
    3788 ipv4_host(_ipv4_host),
    +
    3789 ipv6_host(_ipv6_host),
    +
    3790 dns_host(_dns_host)
    +
    3791 {}
    +
    3792
    +
    3793 virtual bool match(
    +
    3794 _In_reads_or_z_(end) const T* text,
    +
    3795 _In_ size_t start = 0,
    +
    3796 _In_ size_t end = (size_t)-1,
    +
    3797 _In_ int flags = match_default)
    +
    3798 {
    +
    3799 assert(text || start >= end);
    +
    3800
    +
    3801 if (username->match(text, start, end, flags) &&
    +
    3802 m_at->match(text, username->interval.end, end, flags))
    +
    3803 {
    +
    3804 // Username@
    +
    3805 if (m_ip_lbracket->match(text, m_at->interval.end, end, flags) &&
    +
    3806 ipv4_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
    +
    3807 m_ip_rbracket->match(text, ipv4_host->interval.end, end, flags))
    3808 {
    -
    3809 // Host is IPv6
    +
    3809 // Host is IPv4
    3810 interval.end = m_ip_rbracket->interval.end;
    -
    3811 ipv4_host->invalidate();
    +
    3811 ipv6_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 {
    +
    3814 else if (
    +
    3815 m_ip_lbracket->match(text, m_at->interval.end, end, flags) &&
    +
    3816 ipv6_host->match(text, m_ip_lbracket->interval.end, end, flags) &&
    +
    3817 m_ip_rbracket->match(text, ipv6_host->interval.end, end, flags))
    +
    3818 {
    +
    3819 // Host is IPv6
    +
    3820 interval.end = m_ip_rbracket->interval.end;
    +
    3821 ipv4_host->invalidate();
    +
    3822 dns_host->invalidate();
    +
    3823 }
    +
    3824 else if (dns_host->match(text, m_at->interval.end, end, flags)) {
    +
    3825 // Host is hostname
    +
    3826 interval.end = dns_host->interval.end;
    +
    3827 ipv4_host->invalidate();
    +
    3828 ipv6_host->invalidate();
    +
    3829 }
    +
    3830 else
    +
    3831 goto error;
    +
    3832 interval.start = start;
    +
    3833 return true;
    +
    3834 }
    +
    3835
    +
    3836 error:
    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 }
    +
    3841 interval.start = (interval.end = start) + 1;
    +
    3842 return false;
    +
    3843 }
    +
    3844
    +
    3845 virtual void invalidate()
    +
    3846 {
    +
    3847 username->invalidate();
    +
    3848 ipv4_host->invalidate();
    +
    3849 ipv6_host->invalidate();
    +
    3850 dns_host->invalidate();
    + +
    3852 }
    +
    3853
    +
    3854 public:
    +
    3855 std::shared_ptr<basic_parser<T>> username;
    +
    3856 std::shared_ptr<basic_parser<T>> ipv4_host;
    +
    3857 std::shared_ptr<basic_parser<T>> ipv6_host;
    +
    3858 std::shared_ptr<basic_parser<T>> dns_host;
    +
    3859
    +
    3860 protected:
    +
    3861 std::shared_ptr<basic_parser<T>> m_at;
    +
    3862 std::shared_ptr<basic_parser<T>> m_ip_lbracket;
    +
    3863 std::shared_ptr<basic_parser<T>> m_ip_rbracket;
    +
    3864 };
    +
    3865
    + + +
    3868#ifdef _UNICODE
    + +
    3870#else
    + +
    3872#endif
    + +
    3874
    +
    3878 template <class T>
    + +
    3880 {
    +
    3881 public:
    + +
    3883 _In_ const std::shared_ptr<basic_parser<T>>& _emoticon,
    +
    3884 _In_ const std::shared_ptr<basic_parser<T>>& _apex,
    +
    3885 _In_ const std::shared_ptr<basic_parser<T>>& _eyes,
    +
    3886 _In_ const std::shared_ptr<basic_parser<T>>& _nose,
    +
    3887 _In_ const std::shared_ptr<basic_set<T>>& _mouth,
    +
    3888 _In_ const std::locale& locale = std::locale()) :
    +
    3889 basic_parser<T>(locale),
    +
    3890 emoticon(_emoticon),
    +
    3891 apex(_apex),
    +
    3892 eyes(_eyes),
    +
    3893 nose(_nose),
    +
    3894 mouth(_mouth)
    +
    3895 {}
    +
    3896
    +
    3897 virtual bool match(
    +
    3898 _In_reads_or_z_(end) const T* text,
    +
    3899 _In_ size_t start = 0,
    +
    3900 _In_ size_t end = (size_t)-1,
    +
    3901 _In_ int flags = match_default)
    +
    3902 {
    +
    3903 assert(text || start >= end);
    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();
    - +
    3905 if (emoticon && emoticon->match(text, start, end, flags)) {
    +
    3906 if (apex) apex->invalidate();
    +
    3907 eyes->invalidate();
    +
    3908 if (nose) nose->invalidate();
    +
    3909 mouth->invalidate();
    +
    3910 interval.start = start;
    + +
    3912 return true;
    +
    3913 }
    +
    3914
    +
    3915 interval.end = start;
    +
    3916
    +
    3917 if (apex && apex->match(text, interval.end, end, flags))
    +
    3918 interval.end = apex->interval.end;
    +
    3919
    +
    3920 if (eyes->match(text, interval.end, end, flags)) {
    +
    3921 if (nose && nose->match(text, eyes->interval.end, end, flags) &&
    +
    3922 mouth->match(text, nose->interval.end, end, flags))
    +
    3923 {
    +
    3924 size_t
    +
    3925 start_mouth = mouth->interval.start,
    +
    3926 hit_offset = mouth->hit_offset;
    +
    3927 // Mouth may repeat :-)))))))
    +
    3928 for (interval.end = mouth->interval.end; mouth->match(text, interval.end, end, flags) && mouth->hit_offset == hit_offset; interval.end = mouth->interval.end);
    +
    3929 mouth->interval.start = start_mouth;
    +
    3930 mouth->interval.end = interval.end;
    +
    3931 interval.start = start;
    +
    3932 return true;
    +
    3933 }
    +
    3934 if (mouth->match(text, eyes->interval.end, end, flags)) {
    +
    3935 size_t
    +
    3936 start_mouth = mouth->interval.start,
    +
    3937 hit_offset = mouth->hit_offset;
    +
    3938 // Mouth may repeat :-)))))))
    +
    3939 for (interval.end = mouth->interval.end; mouth->match(text, interval.end, end, flags) && mouth->hit_offset == hit_offset; interval.end = mouth->interval.end);
    +
    3940 if (nose) nose->invalidate();
    +
    3941 mouth->interval.start = start_mouth;
    +
    3942 mouth->interval.end = interval.end;
    +
    3943 interval.start = start;
    +
    3944 return true;
    +
    3945 }
    +
    3946 }
    +
    3947
    +
    3948 if (emoticon) emoticon->invalidate();
    +
    3949 if (apex) apex->invalidate();
    +
    3950 eyes->invalidate();
    +
    3951 if (nose) nose->invalidate();
    +
    3952 mouth->invalidate();
    +
    3953 interval.start = (interval.end = start) + 1;
    +
    3954 return false;
    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 {
    +
    3957 virtual void invalidate()
    +
    3958 {
    +
    3959 if (emoticon) emoticon->invalidate();
    +
    3960 if (apex) apex->invalidate();
    +
    3961 eyes->invalidate();
    +
    3962 if (nose) nose->invalidate();
    +
    3963 mouth->invalidate();
    + +
    3965 }
    +
    3966
    +
    3967 public:
    +
    3968 std::shared_ptr<basic_parser<T>> emoticon;
    +
    3969 std::shared_ptr<basic_parser<T>> apex;
    +
    3970 std::shared_ptr<basic_parser<T>> eyes;
    +
    3971 std::shared_ptr<basic_parser<T>> nose;
    +
    3972 std::shared_ptr<basic_set<T>> mouth;
    +
    3973 };
    +
    3974
    + + +
    3977#ifdef _UNICODE
    +
    3978 using temoticon = wemoticon;
    +
    3979#else
    +
    3980 using temoticon = emoticon;
    +
    3981#endif
    + +
    3983
    +
    3987 template <class T>
    +
    3988 class basic_date : public basic_parser<T>
    +
    3989 {
    +
    3990 public:
    +
    3991 enum class format {
    +
    3992 dmy = 0x1,
    +
    3993 mdy = 0x2,
    +
    3994 ymd = 0x4,
    +
    3995 ym = 0x8,
    +
    3996 my = 0x10,
    +
    3997 dm = 0x20,
    +
    3998 md = 0x40,
    +
    3999 };
    +
    4000
    +
    4001 basic_date(
    +
    4002 _In_ int format_mask,
    +
    4003 _In_ const std::shared_ptr<basic_integer<T>>& _day,
    +
    4004 _In_ const std::shared_ptr<basic_integer<T>>& _month,
    +
    4005 _In_ const std::shared_ptr<basic_integer<T>>& _year,
    +
    4006 _In_ const std::shared_ptr<basic_set<T>>& separator,
    +
    4007 _In_ const std::shared_ptr<basic_parser<T>>& space,
    +
    4008 _In_ const std::locale& locale = std::locale()) :
    +
    4009 basic_parser<T>(locale),
    +
    4010 format(0),
    +
    4011 m_format_mask(format_mask),
    +
    4012 day(_day),
    +
    4013 month(_month),
    +
    4014 year(_year),
    +
    4015 m_separator(separator),
    +
    4016 m_space(space)
    +
    4017 {}
    +
    4018
    +
    4019 virtual bool match(
    +
    4020 _In_reads_or_z_(end) const T* text,
    +
    4021 _In_ size_t start = 0,
    +
    4022 _In_ size_t end = (size_t)-1,
    +
    4023 _In_ int flags = match_default)
    +
    4024 {
    +
    4025 assert(text || start >= end);
    +
    4026
    +
    4027 const int space_match_flags = flags & ~match_multiline; // Spaces in dates must never be broken in new line.
    +
    4028 if ((m_format_mask & format::dmy) != 0) {
    +
    4029 if (day->match(text, start, end, flags)) {
    +
    4030 for (interval.end = day->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4031 if (m_separator->match(text, interval.end, end, flags)) {
    +
    4032 size_t hit_offset = m_separator->hit_offset;
    +
    4033 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4034 if (month->match(text, interval.end, end, flags)) {
    +
    4035 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4036 if (m_separator->match(text, interval.end, end, flags) &&
    +
    4037 m_separator->hit_offset == hit_offset) // Both separators must match.
    +
    4038 {
    +
    4039 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4040 if (year->match(text, interval.end, end, flags) &&
    +
    4041 is_valid(day->value, month->value))
    +
    4042 {
    +
    4043 interval.start = start;
    +
    4044 interval.end = year->interval.end;
    +
    4045 format = format::dmy;
    +
    4046 return true;
    +
    4047 }
    +
    4048 }
    +
    4049 }
    +
    4050 }
    +
    4051 }
    +
    4052 }
    +
    4053
    +
    4054 if ((m_format_mask & format::mdy) != 0) {
    +
    4055 if (month->match(text, start, end, flags)) {
    +
    4056 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4057 if (m_separator->match(text, interval.end, end, flags)) {
    +
    4058 size_t hit_offset = m_separator->hit_offset;
    +
    4059 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4060 if (day->match(text, interval.end, end, flags)) {
    +
    4061 for (interval.end = day->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4062 if (m_separator->match(text, interval.end, end, flags) &&
    +
    4063 m_separator->hit_offset == hit_offset) // Both separators must match.
    +
    4064 {
    +
    4065 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4066 if (year->match(text, interval.end, end, flags) &&
    +
    4067 is_valid(day->value, month->value))
    +
    4068 {
    +
    4069 interval.start = start;
    +
    4070 interval.end = year->interval.end;
    +
    4071 format = format::mdy;
    +
    4072 return true;
    +
    4073 }
    +
    4074 }
    +
    4075 }
    +
    4076 }
    +
    4077 }
    +
    4078 }
    +
    4079
    +
    4080 if ((m_format_mask & format::ymd) != 0) {
    +
    4081 if (year->match(text, start, end, flags)) {
    +
    4082 for (interval.end = year->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4083 if (m_separator->match(text, interval.end, end, flags)) {
    +
    4084 size_t hit_offset = m_separator->hit_offset;
    +
    4085 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4086 if (month->match(text, interval.end, end, flags)) {
    +
    4087 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4088 if (m_separator->match(text, interval.end, end, flags) &&
    +
    4089 m_separator->hit_offset == hit_offset) // Both separators must match.
    +
    4090 {
    +
    4091 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4092 if (day->match(text, interval.end, end, flags) &&
    +
    4093 is_valid(day->value, month->value))
    +
    4094 {
    +
    4095 interval.start = start;
    +
    4096 interval.end = day->interval.end;
    +
    4097 format = format::ymd;
    +
    4098 return true;
    +
    4099 }
    +
    4100 }
    +
    4101 }
    +
    4102 }
    +
    4103 }
    +
    4104 }
    +
    4105
    +
    4106 if ((m_format_mask & format::ym) != 0) {
    +
    4107 if (year->match(text, start, end, flags)) {
    +
    4108 for (interval.end = year->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4109 if (m_separator->match(text, interval.end, end, flags)) {
    +
    4110 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4111 if (month->match(text, interval.end, end, flags) &&
    +
    4112 is_valid((size_t)-1, month->value))
    +
    4113 {
    +
    4114 if (day) day->invalidate();
    +
    4115 interval.start = start;
    +
    4116 interval.end = month->interval.end;
    +
    4117 format = format::ym;
    +
    4118 return true;
    +
    4119 }
    +
    4120 }
    +
    4121 }
    +
    4122 }
    +
    4123
    +
    4124 if ((m_format_mask & format::my) != 0) {
    +
    4125 if (month->match(text, start, end, flags)) {
    +
    4126 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4127 if (m_separator->match(text, interval.end, end, flags)) {
    +
    4128 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4129 if (year->match(text, interval.end, end, flags) &&
    +
    4130 is_valid((size_t)-1, month->value))
    +
    4131 {
    +
    4132 if (day) day->invalidate();
    +
    4133 interval.start = start;
    +
    4134 interval.end = year->interval.end;
    +
    4135 format = format::my;
    +
    4136 return true;
    +
    4137 }
    +
    4138 }
    +
    4139 }
    +
    4140 }
    +
    4141
    +
    4142 if ((m_format_mask & format::dm) != 0) {
    +
    4143 if (day->match(text, start, end, flags)) {
    +
    4144 for (interval.end = day->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4145 if (m_separator->match(text, interval.end, end, flags)) {
    +
    4146 size_t hit_offset = m_separator->hit_offset;
    +
    4147 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4148 if (month->match(text, interval.end, end, flags) &&
    +
    4149 is_valid(day->value, month->value))
    +
    4150 {
    +
    4151 if (year) year->invalidate();
    +
    4152 interval.start = start;
    +
    4153 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4154 if (m_separator->match(text, interval.end, end, flags) &&
    +
    4155 m_separator->hit_offset == hit_offset) // Both separators must match.
    +
    4156 interval.end = m_separator->interval.end;
    +
    4157 else
    +
    4158 interval.end = month->interval.end;
    +
    4159 format = format::dm;
    +
    4160 return true;
    +
    4161 }
    +
    4162 }
    +
    4163 }
    +
    4164 }
    +
    4165
    +
    4166 if ((m_format_mask & format::md) != 0) {
    +
    4167 if (month->match(text, start, end, flags)) {
    +
    4168 for (interval.end = month->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4169 if (m_separator->match(text, interval.end, end, flags)) {
    +
    4170 size_t hit_offset = m_separator->hit_offset;
    +
    4171 for (interval.end = m_separator->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4172 if (day->match(text, interval.end, end, flags) &&
    +
    4173 is_valid(day->value, month->value))
    +
    4174 {
    +
    4175 if (year) year->invalidate();
    +
    4176 interval.start = start;
    +
    4177 for (interval.end = day->interval.end; m_space->match(text, interval.end, end, space_match_flags); interval.end = m_space->interval.end);
    +
    4178 if (m_separator->match(text, interval.end, end, flags) &&
    +
    4179 m_separator->hit_offset == hit_offset) // Both separators must match.
    +
    4180 interval.end = m_separator->interval.end;
    +
    4181 else
    +
    4182 interval.end = day->interval.end;
    +
    4183 format = format::md;
    +
    4184 return true;
    +
    4185 }
    +
    4186 }
    +
    4187 }
    +
    4188 }
    +
    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)
    +
    4194 interval.start = (interval.end = start) + 1;
    +
    4195 return false;
    +
    4196 }
    +
    4197
    +
    4198 virtual void invalidate()
    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 {
    +
    4200 if (day) day->invalidate();
    +
    4201 if (month) month->invalidate();
    +
    4202 if (year) year->invalidate();
    +
    4203 format = 0;
    + +
    4205 }
    +
    4206
    +
    4207 protected:
    +
    4208 static inline bool is_valid(size_t day, size_t month)
    +
    4209 {
    +
    4210 if (month == (size_t)-1) {
    +
    4211 // Default to January. This allows validating day only, as January has all 31 days.
    +
    4212 month = 1;
    +
    4213 }
    +
    4214 if (day == (size_t)-1) {
    +
    4215 // Default to 1st day in month. This allows validating month only, as each month has 1st day.
    +
    4216 day = 1;
    +
    4217 }
    +
    4218
    +
    4219 switch (month) {
    +
    4220 case 1:
    +
    4221 case 3:
    +
    4222 case 5:
    +
    4223 case 7:
    +
    4224 case 8:
    +
    4225 case 10:
    +
    4226 case 12:
    +
    4227 return 1 <= day && day <= 31;
    +
    4228 case 2:
    +
    4229 return 1 <= day && day <= 29;
    +
    4230 case 4:
    +
    4231 case 6:
    +
    4232 case 9:
    +
    4233 case 11:
    +
    4234 return 1 <= day && day <= 30;
    +
    4235 default:
    +
    4236 return false;
    +
    4237 }
    +
    4238 }
    +
    4239
    +
    4240 public:
    +
    4241 format format;
    +
    4242 std::shared_ptr<basic_integer<T>> day;
    +
    4243 std::shared_ptr<basic_integer<T>> month;
    +
    4244 std::shared_ptr<basic_integer<T>> year;
    +
    4245
    +
    4246 protected:
    +
    4247 int m_format_mask;
    +
    4248 std::shared_ptr<basic_set<T>> m_separator;
    +
    4249 std::shared_ptr<basic_parser<T>> m_space;
    +
    4250 };
    +
    4251
    +
    4252 using date = basic_date<char>;
    +
    4253 using wdate = basic_date<wchar_t>;
    +
    4254#ifdef _UNICODE
    +
    4255 using tdate = wdate;
    +
    4256#else
    +
    4257 using tdate = date;
    +
    4258#endif
    + +
    4260
    +
    4264 template <class T>
    +
    4265 class basic_time : public basic_parser<T>
    +
    4266 {
    +
    4267 public:
    +
    4268 basic_time(
    +
    4269 _In_ const std::shared_ptr<basic_integer10<T>>& _hour,
    +
    4270 _In_ const std::shared_ptr<basic_integer10<T>>& _minute,
    +
    4271 _In_ const std::shared_ptr<basic_integer10<T>>& _second,
    +
    4272 _In_ const std::shared_ptr<basic_integer10<T>>& _millisecond,
    +
    4273 _In_ const std::shared_ptr<basic_set<T>>& separator,
    +
    4274 _In_ const std::shared_ptr<basic_parser<T>>& millisecond_separator,
    +
    4275 _In_ const std::locale& locale = std::locale()) :
    +
    4276 basic_parser<T>(locale),
    +
    4277 hour(_hour),
    +
    4278 minute(_minute),
    +
    4279 second(_second),
    +
    4280 millisecond(_millisecond),
    +
    4281 m_separator(separator),
    +
    4282 m_millisecond_separator(millisecond_separator)
    +
    4283 {}
    +
    4284
    +
    4285 virtual bool match(
    +
    4286 _In_reads_or_z_(end) const T* text,
    +
    4287 _In_ size_t start = 0,
    +
    4288 _In_ size_t end = (size_t)-1,
    +
    4289 _In_ int flags = match_default)
    +
    4290 {
    +
    4291 assert(text || start >= end);
    +
    4292
    +
    4293 if (hour->match(text, start, end, flags) &&
    +
    4294 m_separator->match(text, hour->interval.end, end, flags) &&
    +
    4295 minute->match(text, m_separator->interval.end, end, flags) &&
    +
    4296 minute->value < 60)
    +
    4297 {
    +
    4298 // hh::mm
    +
    4299 size_t hit_offset = m_separator->hit_offset;
    +
    4300 if (m_separator->match(text, minute->interval.end, end, flags) &&
    +
    4301 m_separator->hit_offset == hit_offset && // Both separators must match.
    +
    4302 second && second->match(text, m_separator->interval.end, end, flags) &&
    +
    4303 second->value < 60)
    +
    4304 {
    +
    4305 // hh::mm:ss
    +
    4306 if (m_millisecond_separator && m_millisecond_separator->match(text, second->interval.end, end, flags) &&
    +
    4307 millisecond && millisecond->match(text, m_millisecond_separator->interval.end, end, flags) &&
    +
    4308 millisecond->value < 1000)
    +
    4309 {
    +
    4310 // hh::mm:ss.mmmm
    +
    4311 interval.end = millisecond->interval.end;
    +
    4312 }
    +
    4313 else {
    +
    4314 if (millisecond) millisecond->invalidate();
    +
    4315 interval.end = second->interval.end;
    +
    4316 }
    +
    4317 }
    +
    4318 else {
    +
    4319 if (second) second->invalidate();
    +
    4320 if (millisecond) millisecond->invalidate();
    +
    4321 interval.end = minute->interval.end;
    +
    4322 }
    +
    4323 interval.start = start;
    +
    4324 return true;
    +
    4325 }
    +
    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;
    +
    4331 interval.start = (interval.end = start) + 1;
    +
    4332 return false;
    +
    4333 }
    +
    4334
    +
    4335 virtual void invalidate()
    +
    4336 {
    +
    4337 hour->invalidate();
    +
    4338 minute->invalidate();
    +
    4339 if (second) second->invalidate();
    +
    4340 if (millisecond) millisecond->invalidate();
    + +
    4342 }
    +
    4343
    +
    4344 public:
    +
    4345 std::shared_ptr<basic_integer10<T>> hour;
    +
    4346 std::shared_ptr<basic_integer10<T>> minute;
    +
    4347 std::shared_ptr<basic_integer10<T>> second;
    +
    4348 std::shared_ptr<basic_integer10<T>> millisecond;
    +
    4349
    +
    4350 protected:
    +
    4351 std::shared_ptr<basic_set<T>> m_separator;
    +
    4352 std::shared_ptr<basic_parser<T>> m_millisecond_separator;
    +
    4353 };
    +
    4354
    +
    4355 using time = basic_time<char>;
    +
    4356 using wtime = basic_time<wchar_t>;
    +
    4357#ifdef _UNICODE
    +
    4358 using ttime = wtime;
    +
    4359#else
    +
    4360 using ttime = time;
    +
    4361#endif
    + +
    4363
    +
    4367 template <class T>
    +
    4368 class basic_angle : public basic_parser<T>
    +
    4369 {
    +
    4370 public:
    + +
    4372 _In_ const std::shared_ptr<basic_integer10<T>>& _degree,
    +
    4373 _In_ const std::shared_ptr<basic_parser<T>>& _degree_separator,
    +
    4374 _In_ const std::shared_ptr<basic_integer10<T>>& _minute,
    +
    4375 _In_ const std::shared_ptr<basic_parser<T>>& _minute_separator,
    +
    4376 _In_ const std::shared_ptr<basic_integer10<T>>& _second,
    +
    4377 _In_ const std::shared_ptr<basic_parser<T>>& _second_separator,
    +
    4378 _In_ const std::shared_ptr<basic_parser<T>>& _decimal,
    +
    4379 _In_ const std::locale& locale = std::locale()) :
    +
    4380 basic_parser<T>(locale),
    +
    4381 degree(_degree),
    +
    4382 degree_separator(_degree_separator),
    +
    4383 minute(_minute),
    +
    4384 minute_separator(_minute_separator),
    +
    4385 second(_second),
    +
    4386 second_separator(_second_separator),
    +
    4387 decimal(_decimal)
    +
    4388 {}
    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 };
    +
    4390 virtual bool match(
    +
    4391 _In_reads_or_z_(end) const T* text,
    +
    4392 _In_ size_t start = 0,
    +
    4393 _In_ size_t end = (size_t)-1,
    +
    4394 _In_ int flags = match_default)
    +
    4395 {
    +
    4396 assert(text || start >= end);
    +
    4397
    +
    4398 interval.end = start;
    +
    4399
    +
    4400 if (degree->match(text, interval.end, end, flags) &&
    +
    4401 degree_separator->match(text, degree->interval.end, end, flags))
    +
    4402 {
    +
    4403 // Degrees
    +
    4404 interval.end = degree_separator->interval.end;
    +
    4405 }
    +
    4406 else {
    +
    4407 degree->invalidate();
    +
    4408 degree_separator->invalidate();
    +
    4409 }
    +
    4410
    +
    4411 if (minute->match(text, interval.end, end, flags) &&
    +
    4412 minute->value < 60 &&
    +
    4413 minute_separator->match(text, minute->interval.end, end, flags))
    +
    4414 {
    +
    4415 // Minutes
    +
    4416 interval.end = minute_separator->interval.end;
    +
    4417 }
    +
    4418 else {
    +
    4419 minute->invalidate();
    +
    4420 minute_separator->invalidate();
    +
    4421 }
    +
    4422
    +
    4423 if (second && second->match(text, interval.end, end, flags) &&
    +
    4424 second->value < 60)
    +
    4425 {
    +
    4426 // Seconds
    +
    4427 interval.end = second->interval.end;
    +
    4428 if (second_separator && second_separator->match(text, interval.end, end, flags))
    +
    4429 interval.end = second_separator->interval.end;
    +
    4430 else
    +
    4431 if (second_separator) second_separator->invalidate();
    +
    4432 }
    +
    4433 else {
    +
    4434 if (second) second->invalidate();
    +
    4435 if (second_separator) second_separator->invalidate();
    +
    4436 }
    +
    4437
    +
    4438 if (degree->interval.start < degree->interval.end ||
    +
    4439 minute->interval.start < minute->interval.end ||
    +
    4440 second && second->interval.start < second->interval.end)
    +
    4441 {
    +
    4442 if (decimal && decimal->match(text, interval.end, end, flags)) {
    +
    4443 // Decimals
    +
    4444 interval.end = decimal->interval.end;
    +
    4445 }
    +
    4446 else if (decimal)
    +
    4447 decimal->invalidate();
    +
    4448 interval.start = start;
    +
    4449 return true;
    +
    4450 }
    +
    4451 if (decimal) decimal->invalidate();
    +
    4452 interval.start = (interval.end = start) + 1;
    +
    4453 return false;
    +
    4454 }
    +
    4455
    +
    4456 virtual void invalidate()
    +
    4457 {
    +
    4458 degree->invalidate();
    +
    4459 degree_separator->invalidate();
    +
    4460 minute->invalidate();
    +
    4461 minute_separator->invalidate();
    +
    4462 if (second) second->invalidate();
    +
    4463 if (second_separator) second_separator->invalidate();
    +
    4464 if (decimal) decimal->invalidate();
    + +
    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 };
    +
    4468 public:
    +
    4469 std::shared_ptr<basic_integer10<T>> degree;
    +
    4470 std::shared_ptr<basic_parser<T>> degree_separator;
    +
    4471 std::shared_ptr<basic_integer10<T>> minute;
    +
    4472 std::shared_ptr<basic_parser<T>> minute_separator;
    +
    4473 std::shared_ptr<basic_integer10<T>> second;
    +
    4474 std::shared_ptr<basic_parser<T>> second_separator;
    +
    4475 std::shared_ptr<basic_parser<T>> decimal;
    +
    4476 };
    +
    4477
    +
    4478 using angle = basic_angle<char>;
    + +
    4480#ifdef _UNICODE
    +
    4481 using RRegElKot = wangle;
    +
    4482#else
    +
    4483 using RRegElKot = angle;
    +
    4484#endif
    + +
    4486
    +
    4490 template <class T>
    + +
    4492 {
    +
    4493 public:
    + +
    4495 _In_ const std::shared_ptr<basic_parser<T>>& digit,
    +
    4496 _In_ const std::shared_ptr<basic_parser<T>>& plus_sign,
    +
    4497 _In_ const std::shared_ptr<basic_set<T>>& lparenthesis,
    +
    4498 _In_ const std::shared_ptr<basic_set<T>>& rparenthesis,
    +
    4499 _In_ const std::shared_ptr<basic_parser<T>>& separator,
    +
    4500 _In_ const std::shared_ptr<basic_parser<T>>& space,
    +
    4501 _In_ const std::locale& locale = std::locale()) :
    +
    4502 basic_parser<T>(locale),
    +
    4503 m_digit(digit),
    +
    4504 m_plus_sign(plus_sign),
    +
    4505 m_lparenthesis(lparenthesis),
    +
    4506 m_rparenthesis(rparenthesis),
    +
    4507 m_separator(separator),
    +
    4508 m_space(space)
    +
    4509 {}
    +
    4510
    +
    4511 virtual bool match(
    +
    4512 _In_reads_or_z_(end) const T* text,
    +
    4513 _In_ size_t start = 0,
    +
    4514 _In_ size_t end = (size_t)-1,
    +
    4515 _In_ int flags = match_default)
    +
    4516 {
    +
    4517 assert(text || start >= end);
    +
    4518
    +
    4519 size_t safe_digit_end = start, safe_value_size = 0;
    +
    4520 bool has_digits = false, after_digit = false, in_parentheses = false, after_parentheses = false;
    +
    4521 const int space_match_flags = flags & ~match_multiline; // Spaces in phone numbers must never be broken in new line.
    +
    4522
    +
    4523 interval.end = start;
    +
    4524 value.clear();
    +
    4525 m_lparenthesis->invalidate();
    +
    4526 m_rparenthesis->invalidate();
    +
    4527
    +
    4528 if (m_plus_sign && m_plus_sign->match(text, interval.end, end, flags)) {
    +
    4529 value.append(text + m_plus_sign->interval.start, text + m_plus_sign->interval.end);
    +
    4530 safe_value_size = value.size();
    +
    4531 interval.end = m_plus_sign->interval.end;
    +
    4532 }
    +
    4533
    +
    4534 for (;;) {
    +
    4535 assert(text || interval.end >= end);
    +
    4536 if (interval.end >= end || !text[interval.end])
    +
    4537 break;
    +
    4538 if (m_digit->match(text, interval.end, end, flags)) {
    +
    4539 // Digit
    +
    4540 value.append(text + m_digit->interval.start, text + m_digit->interval.end);
    +
    4541 interval.end = m_digit->interval.end;
    +
    4542 if (!in_parentheses) {
    +
    4543 safe_digit_end = interval.end;
    +
    4544 safe_value_size = value.size();
    +
    4545 has_digits = true;
    +
    4546 }
    +
    4547 after_digit = true;
    +
    4548 after_parentheses = false;
    +
    4549 }
    +
    4550 else if (
    +
    4551 m_lparenthesis && !m_lparenthesis->interval && // No left parenthesis yet
    +
    4552 m_rparenthesis && !m_rparenthesis->interval && // Right parenthesis after left
    +
    4553 m_lparenthesis->match(text, interval.end, end, flags))
    +
    4554 {
    +
    4555 // Left parenthesis
    +
    4556 value.Prilepi(text + m_lparenthesis->interval.start, m_lparenthesis->interval.size());
    +
    4557 interval.end = m_lparenthesis->interval.end;
    +
    4558 in_parentheses = true;
    +
    4559 after_digit = false;
    +
    4560 after_parentheses = false;
    +
    4561 }
    +
    4562 else if (
    +
    4563 in_parentheses && // After left parenthesis
    +
    4564 m_rparenthesis && !m_rparenthesis->interval && // No right parenthesis yet
    +
    4565 m_rparenthesis->match(text, interval.end, end, flags) &&
    +
    4566 m_lparenthesis->hit_offset == m_rparenthesis->hit_offset) // Left and right parentheses must match
    +
    4567 {
    +
    4568 // Right parenthesis
    +
    4569 value.append(text + m_rparenthesis->interval.start, text + m_rparenthesis->interval.end);
    +
    4570 interval.end = m_rparenthesis->interval.end;
    +
    4571 safe_digit_end = interval.end;
    +
    4572 safe_value_size = value.size();
    +
    4573 in_parentheses = false;
    +
    4574 after_digit = false;
    +
    4575 after_parentheses = true;
    +
    4576 }
    +
    4577 else if (
    +
    4578 after_digit &&
    +
    4579 !in_parentheses && // No separators inside parentheses
    +
    4580 !after_parentheses && // No separators following right parenthesis
    +
    4581 m_separator && m_separator->match(text, interval.end, end, flags))
    +
    4582 {
    +
    4583 // Separator
    +
    4584 interval.end = m_separator->interval.end;
    +
    4585 after_digit = false;
    +
    4586 after_parentheses = false;
    +
    4587 }
    +
    4588 else if (
    +
    4589 (after_digit || after_parentheses) &&
    +
    4590 m_space && m_space->match(text, interval.end, end, space_match_flags))
    +
    4591 {
    +
    4592 // Space
    +
    4593 interval.end = m_space->interval.end;
    +
    4594 after_digit = false;
    +
    4595 after_parentheses = false;
    +
    4596 }
    +
    4597 else
    +
    4598 break;
    +
    4599 }
    +
    4600 if (has_digits) {
    +
    4601 value.erase(safe_value_size);
    +
    4602 interval.start = start;
    +
    4603 interval.end = safe_digit_end;
    +
    4604 return true;
    +
    4605 }
    +
    4606 value.clear();
    +
    4607 interval.start = (interval.end = start) + 1;
    +
    4608 return false;
    +
    4609 }
    +
    4610
    +
    4611 virtual void invalidate()
    +
    4612 {
    +
    4613 value.clear();
    + +
    4615 }
    +
    4616
    +
    4617 public:
    +
    4618 std::basic_string<T> value;
    +
    4619
    +
    4620 protected:
    +
    4621 std::shared_ptr<basic_parser<T>> m_digit;
    +
    4622 std::shared_ptr<basic_parser<T>> m_plus_sign;
    +
    4623 std::shared_ptr<basic_set<T>> m_lparenthesis;
    +
    4624 std::shared_ptr<basic_set<T>> m_rparenthesis;
    +
    4625 std::shared_ptr<basic_parser<T>> m_separator;
    +
    4626 std::shared_ptr<basic_parser<T>> m_space;
    +
    4627 };
    +
    4628
    + + +
    4631#ifdef _UNICODE
    + +
    4633#else
    + +
    4635#endif
    + +
    4637
    +
    4641 template <class T>
    + +
    4643 {
    +
    4644 public:
    + +
    4646 _In_ const std::shared_ptr<basic_parser<T>>& element,
    +
    4647 _In_ const std::shared_ptr<basic_parser<T>>& digit,
    +
    4648 _In_ const std::shared_ptr<basic_parser<T>>& sign,
    +
    4649 _In_ const std::locale& locale = std::locale()) :
    +
    4650 basic_parser<T>(locale),
    +
    4651 m_element(element),
    +
    4652 m_digit(digit),
    +
    4653 m_sign(sign),
    +
    4654 has_digits(false),
    +
    4655 has_charge(false)
    +
    4656 {}
    +
    4657
    +
    4658 virtual bool match(
    +
    4659 _In_reads_or_z_(end) const T* text,
    +
    4660 _In_ size_t start = 0,
    +
    4661 _In_ size_t end = (size_t)-1,
    +
    4662 _In_ int flags = match_default)
    +
    4663 {
    +
    4664 assert(text || start >= end);
    +
    4665
    +
    4666 has_digits = false;
    +
    4667 has_charge = false;
    +
    4668 interval.end = start;
    +
    4669
    +
    4670 const int element_match_flags = flags & ~match_case_insensitive; // Chemical elements are always case-sensitive.
    +
    4671 for (;;) {
    +
    4672 if (m_element->match(text, interval.end, end, element_match_flags)) {
    +
    4673 interval.end = m_element->interval.end;
    +
    4674 while (m_digit->match(text, interval.end, end, flags)) {
    +
    4675 interval.end = m_digit->interval.end;
    +
    4676 has_digits = true;
    +
    4677 }
    +
    4678 }
    +
    4679 else if (start < interval.end) {
    +
    4680 if (m_sign->match(text, interval.end, end, flags)) {
    +
    4681 interval.end = m_sign->interval.end;
    +
    4682 has_charge = true;
    +
    4683 }
    +
    4684 interval.start = start;
    +
    4685 return true;
    +
    4686 }
    +
    4687 else {
    +
    4688 interval.start = (interval.end = start) + 1;
    +
    4689 return false;
    +
    4690 }
    +
    4691 }
    +
    4692 }
    +
    4693
    +
    4694 virtual void invalidate()
    +
    4695 {
    +
    4696 has_digits = false;
    +
    4697 has_charge = false;
    + +
    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:
    - +
    4701 public:
    +
    4702 bool has_digits;
    +
    4703 bool has_charge;
    +
    4704
    +
    4705 protected:
    +
    4706 std::shared_ptr<basic_parser<T>> m_element;
    +
    4707 std::shared_ptr<basic_parser<T>> m_digit;
    +
    4708 std::shared_ptr<basic_parser<T>> m_sign;
    +
    4709 };
    +
    4710
    + + +
    4713#ifdef _UNICODE
    + +
    4715#else
    + +
    4717#endif
    + +
    4719
    + +
    4724 {
    +
    4725 public:
    +
    4726 virtual bool match(
    +
    4727 _In_reads_or_z_(end) const char* text,
    +
    4728 _In_ size_t start = 0,
    +
    4729 _In_ size_t end = (size_t)-1,
    +
    4730 _In_ int flags = match_default)
    +
    4731 {
    +
    4732 assert(text || start >= end);
    +
    4733 interval.end = start;
    +
    4734
    +
    4735 assert(text || interval.end >= end);
    +
    4736 if (interval.end < end && text[interval.end]) {
    +
    4737 if (text[interval.end] == '\r') {
    +
    4738 interval.end++;
    +
    4739 if (interval.end < end && text[interval.end] == '\n') {
    +
    4740 interval.start = start;
    +
    4741 interval.end++;
    +
    4742 return true;
    +
    4743 }
    +
    4744 }
    +
    4745 else if (text[interval.end] == '\n') {
    +
    4746 interval.start = start;
    +
    4747 interval.end++;
    +
    4748 return true;
    +
    4749 }
    +
    4750 }
    +
    4751 interval.start = (interval.end = start) + 1;
    +
    4752 return false;
    +
    4753 }
    +
    4754 };
    +
    4755
    +
    4759 class http_space : public parser
    +
    4760 {
    +
    4761 public:
    +
    4762 virtual bool match(
    +
    4763 _In_reads_or_z_(end) const char* text,
    +
    4764 _In_ size_t start = 0,
    +
    4765 _In_ size_t end = (size_t)-1,
    +
    4766 _In_ int flags = match_default)
    +
    4767 {
    +
    4768 assert(text || start >= end);
    +
    4769 interval.end = start;
    +
    4770 if (m_line_break.match(text, interval.end, end, flags)) {
    +
    4771 interval.end = m_line_break.interval.end;
    +
    4772 if (interval.end < end && text[interval.end] && isspace(text[interval.end])) {
    +
    4773 interval.start = start;
    +
    4774 interval.end++;
    +
    4775 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
    +
    4776 return true;
    +
    4777 }
    +
    4778 }
    +
    4779 else if (interval.end < end && text[interval.end] && isspace(text[interval.end])) {
    +
    4780 interval.start = start;
    +
    4781 interval.end++;
    +
    4782 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
    +
    4783 return true;
    +
    4784 }
    +
    4785 interval.start = (interval.end = start) + 1;
    +
    4786 return false;
    +
    4787 }
    +
    4788
    +
    4789 protected:
    +
    4790 http_line_break m_line_break;
    +
    4791 };
    +
    4792
    +
    4796 class http_text_char : public parser
    +
    4797 {
    +
    4798 public:
    +
    4799 virtual bool match(
    +
    4800 _In_reads_or_z_(end) const char* text,
    +
    4801 _In_ size_t start = 0,
    +
    4802 _In_ size_t end = (size_t)-1,
    +
    4803 _In_ int flags = match_default)
    +
    4804 {
    +
    4805 assert(text || start >= end);
    +
    4806 interval.end = start;
    +
    4807
    +
    4808 assert(text || interval.end >= end);
    +
    4809 if (m_space.match(text, interval.end, end, flags)) {
    +
    4810 interval.start = start;
    +
    4811 interval.end = m_space.interval.end;
    +
    4812 return true;
    +
    4813 }
    +
    4814 else if (interval.end < end && text[interval.end] && text[interval.end] >= 0x20) {
    +
    4815 interval.start = start;
    +
    4816 interval.end++;
    +
    4817 return true;
    +
    4818 }
    +
    4819 interval.start = (interval.end = start) + 1;
    +
    4820 return false;
    +
    4821 }
    +
    4822
    +
    4823 protected:
    +
    4824 http_space m_space;
    +
    4825 };
    +
    4826
    +
    4830 class http_token : public parser
    +
    4831 {
    +
    4832 public:
    +
    4833 virtual bool match(
    +
    4834 _In_reads_or_z_(end) const char* text,
    +
    4835 _In_ size_t start = 0,
    +
    4836 _In_ size_t end = (size_t)-1,
    +
    4837 _In_ int flags = match_default)
    +
    4838 {
    +
    4839 assert(text || start >= end);
    +
    4840 interval.end = start;
    +
    4841 for (;;) {
    +
    4842 if (interval.end < end && text[interval.end]) {
    +
    4843 if ((unsigned int)text[interval.end] < 0x20 ||
    +
    4844 (unsigned int)text[interval.end] == 0x7f ||
    +
    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 text[interval.end] == ':' ||
    +
    4853 text[interval.end] == '\\' ||
    +
    4854 text[interval.end] == '\"' ||
    +
    4855 text[interval.end] == '/' ||
    +
    4856 text[interval.end] == '[' ||
    +
    4857 text[interval.end] == ']' ||
    +
    4858 text[interval.end] == '?' ||
    +
    4859 text[interval.end] == '=' ||
    +
    4860 text[interval.end] == '{' ||
    +
    4861 text[interval.end] == '}' ||
    +
    4862 isspace(text[interval.end]))
    +
    4863 break;
    +
    4864 else
    +
    4865 interval.end++;
    +
    4866 }
    +
    4867 else
    +
    4868 break;
    +
    4869 }
    +
    4870 if (start < interval.end) {
    +
    4871 interval.start = start;
    +
    4872 return true;
    +
    4873 }
    +
    4874 else {
    +
    4875 interval.start = (interval.end = start) + 1;
    +
    4876 return false;
    +
    4877 }
    +
    4878 }
    +
    4879 };
    +
    4880
    + +
    4885 {
    +
    4886 public:
    +
    4887 virtual bool match(
    +
    4888 _In_reads_or_z_(end) const char* text,
    +
    4889 _In_ size_t start = 0,
    +
    4890 _In_ size_t end = (size_t)-1,
    +
    4891 _In_ int flags = match_default)
    +
    4892 {
    +
    4893 assert(text || start >= end);
    +
    4894 interval.end = start;
    +
    4895 if (interval.end < end && text[interval.end] != '"')
    +
    4896 goto error;
    +
    4897 interval.end++;
    +
    4898 content.start = interval.end;
    +
    4899 for (;;) {
    +
    4900 assert(text || interval.end >= end);
    +
    4901 if (interval.end < end && text[interval.end]) {
    +
    4902 if (text[interval.end] == '"') {
    +
    4903 content.end = interval.end;
    +
    4904 interval.end++;
    +
    4905 break;
    +
    4906 }
    +
    4907 else if (text[interval.end] == '\\') {
    +
    4908 interval.end++;
    +
    4909 if (interval.end < end && text[interval.end]) {
    +
    4910 interval.end++;
    +
    4911 }
    +
    4912 else
    +
    4913 goto error;
    +
    4914 }
    +
    4915 else if (m_chr.match(text, interval.end, end, flags))
    +
    4916 interval.end++;
    +
    4917 else
    +
    4918 goto error;
    +
    4919 }
    +
    4920 else
    +
    4921 goto error;
    +
    4922 }
    +
    4923 interval.start = start;
    +
    4924 return true;
    +
    4925
    +
    4926 error:
    +
    4927 content.start = 1;
    +
    4928 content.end = 0;
    +
    4929 interval.start = (interval.end = start) + 1;
    +
    4930 return false;
    +
    4931 }
    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;
    +
    4933 virtual void invalidate()
    +
    4934 {
    +
    4935 content.start = 1;
    +
    4936 content.end = 0;
    +
    4937 parser::invalidate();
    +
    4938 }
    +
    4939
    +
    4940 public:
    + +
    4942
    +
    4943 protected:
    +
    4944 http_text_char m_chr;
    +
    4945 };
    +
    4946
    +
    4950 class http_value : public parser
    +
    4951 {
    +
    4952 public:
    +
    4953 virtual bool match(
    +
    4954 _In_reads_or_z_(end) const char* text,
    +
    4955 _In_ size_t start = 0,
    +
    4956 _In_ size_t end = (size_t)-1,
    +
    4957 _In_ int flags = match_default)
    +
    4958 {
    +
    4959 assert(text || start >= end);
    +
    4960 interval.end = start;
    +
    4961 if (string.match(text, interval.end, end, flags)) {
    +
    4962 token.invalidate();
    +
    4963 interval.end = string.interval.end;
    +
    4964 interval.start = start;
    +
    4965 return true;
    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 {
    +
    4967 else if (token.match(text, interval.end, end, flags)) {
    +
    4968 string.invalidate();
    +
    4969 interval.end = token.interval.end;
    +
    4970 interval.start = start;
    +
    4971 return true;
    +
    4972 }
    +
    4973 else {
    +
    4974 interval.start = (interval.end = start) + 1;
    +
    4975 return false;
    +
    4976 }
    +
    4977 }
    +
    4978
    +
    4979 virtual void invalidate()
    +
    4980 {
    +
    4981 string.invalidate();
    +
    4982 token.invalidate();
    +
    4983 parser::invalidate();
    +
    4984 }
    +
    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 };
    + + +
    4989 };
    +
    4990
    +
    4994 class http_parameter : public parser
    +
    4995 {
    +
    4996 public:
    +
    4997 virtual bool match(
    +
    4998 _In_reads_or_z_(end) const char* text,
    +
    4999 _In_ size_t start = 0,
    +
    5000 _In_ size_t end = (size_t)-1,
    +
    5001 _In_ int flags = match_default)
    +
    5002 {
    +
    5003 assert(text || start >= end);
    +
    5004 interval.end = start;
    +
    5005 if (name.match(text, interval.end, end, flags))
    +
    5006 interval.end = name.interval.end;
    +
    5007 else
    +
    5008 goto error;
    +
    5009 while (m_space.match(text, interval.end, end, flags))
    +
    5010 interval.end = m_space.interval.end;
    +
    5011 assert(text || interval.end >= end);
    +
    5012 if (interval.end < end && text[interval.end] == '=')
    +
    5013 interval.end++;
    +
    5014 else
    +
    5015 while (m_space.match(text, interval.end, end, flags))
    +
    5016 interval.end = m_space.interval.end;
    +
    5017 if (value.match(text, interval.end, end, flags))
    +
    5018 interval.end = value.interval.end;
    +
    5019 else
    +
    5020 goto error;
    +
    5021 interval.start = start;
    +
    5022 return true;
    +
    5023
    +
    5024 error:
    +
    5025 name.invalidate();
    +
    5026 value.invalidate();
    +
    5027 interval.start = (interval.end = start) + 1;
    +
    5028 return false;
    +
    5029 }
    +
    5030
    +
    5031 virtual void invalidate()
    +
    5032 {
    +
    5033 name.invalidate();
    +
    5034 value.invalidate();
    +
    5035 parser::invalidate();
    +
    5036 }
    +
    5037
    +
    5038 public:
    + + +
    5041
    +
    5042 protected:
    +
    5043 http_space m_space;
    +
    5044 };
    +
    5045
    +
    5049 class http_any_type : public parser
    +
    5050 {
    +
    5051 public:
    +
    5052 virtual bool match(
    +
    5053 _In_reads_or_z_(end) const char* text,
    +
    5054 _In_ size_t start = 0,
    +
    5055 _In_ size_t end = (size_t)-1,
    +
    5056 _In_ int flags = match_default)
    +
    5057 {
    +
    5058 assert(text || start >= end);
    +
    5059 if (start + 2 < end &&
    +
    5060 text[start] == '*' &&
    +
    5061 text[start + 1] == '/' &&
    +
    5062 text[start + 2] == '*')
    +
    5063 {
    +
    5064 interval.end = (interval.start = start) + 3;
    +
    5065 return true;
    +
    5066 }
    +
    5067 else if (start < end && text[start] == '*') {
    +
    5068 interval.end = (interval.start = start) + 1;
    +
    5069 return true;
    +
    5070 }
    +
    5071 else {
    +
    5072 interval.start = (interval.end = start) + 1;
    +
    5073 return false;
    +
    5074 }
    +
    5075 }
    +
    5076 };
    +
    5077
    + +
    5082 {
    +
    5083 public:
    +
    5084 virtual bool match(
    +
    5085 _In_reads_or_z_(end) const char* text,
    +
    5086 _In_ size_t start = 0,
    +
    5087 _In_ size_t end = (size_t)-1,
    +
    5088 _In_ int flags = match_default)
    +
    5089 {
    +
    5090 assert(text || start >= end);
    +
    5091 interval.end = start;
    +
    5092 if (type.match(text, interval.end, end, flags))
    +
    5093 interval.end = type.interval.end;
    +
    5094 else
    +
    5095 goto error;
    +
    5096 while (m_space.match(text, interval.end, end, flags))
    +
    5097 interval.end = m_space.interval.end;
    +
    5098 if (interval.end < end && text[interval.end] == '/')
    +
    5099 interval.end++;
    +
    5100 else
    +
    5101 goto error;
    +
    5102 while (m_space.match(text, interval.end, end, flags))
    +
    5103 interval.end = m_space.interval.end;
    +
    5104 if (subtype.match(text, interval.end, end, flags))
    +
    5105 interval.end = subtype.interval.end;
    +
    5106 else
    +
    5107 goto error;
    +
    5108 interval.start = start;
    +
    5109 return true;
    +
    5110
    +
    5111 error:
    +
    5112 type.invalidate();
    +
    5113 subtype.invalidate();
    +
    5114 interval.start = (interval.end = start) + 1;
    +
    5115 return false;
    +
    5116 }
    +
    5117
    +
    5118 virtual void invalidate()
    +
    5119 {
    +
    5120 type.invalidate();
    +
    5121 subtype.invalidate();
    +
    5122 parser::invalidate();
    +
    5123 }
    +
    5124
    +
    5125 public:
    +
    5126 http_token type;
    +
    5127 http_token subtype;
    +
    5128
    +
    5129 protected:
    +
    5130 http_space m_space;
    +
    5131 };
    +
    5132
    + +
    5137 {
    +
    5138 public:
    +
    5139 virtual bool match(
    +
    5140 _In_reads_or_z_(end) const char* text,
    +
    5141 _In_ size_t start = 0,
    +
    5142 _In_ size_t end = (size_t)-1,
    +
    5143 _In_ int flags = match_default)
    +
    5144 {
    +
    5145 assert(text || start >= end);
    +
    5146 if (!http_media_range::match(text, start, end, flags))
    +
    5147 goto error;
    +
    5148 params.clear();
    +
    5149 for (;;) {
    +
    5150 if (interval.end < end && text[interval.end]) {
    +
    5151 if (m_space.match(text, interval.end, end, flags))
    +
    5152 interval.end = m_space.interval.end;
    +
    5153 else if (text[interval.end] == ';') {
    +
    5154 interval.end++;
    +
    5155 while (m_space.match(text, interval.end, end, flags))
    +
    5156 interval.end = m_space.interval.end;
    +
    5157 http_parameter param;
    +
    5158 if (param.match(text, interval.end, end, flags)) {
    +
    5159 interval.end = param.interval.end;
    +
    5160 params.push_back(std::move(param));
    +
    5161 }
    +
    5162 else
    +
    5163 break;
    +
    5164 }
    +
    5165 else
    +
    5166 break;
    +
    5167 }
    +
    5168 else
    +
    5169 break;
    +
    5170 }
    +
    5171 interval.end = params.empty() ? subtype.interval.end : params.back().interval.end;
    +
    5172 return true;
    +
    5173
    +
    5174 error:
    +
    5175 http_media_range::invalidate();
    +
    5176 params.clear();
    +
    5177 interval.start = (interval.end = start) + 1;
    +
    5178 return false;
    +
    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 };
    +
    5181 virtual void invalidate()
    +
    5182 {
    +
    5183 params.clear();
    +
    5184 http_media_range::invalidate();
    +
    5185 }
    +
    5186
    +
    5187 public:
    +
    5188 std::list<http_parameter> params;
    +
    5189 };
    +
    5190
    + +
    5195 {
    +
    5196 public:
    +
    5197 virtual bool match(
    +
    5198 _In_reads_or_z_(end) const char* text,
    +
    5199 _In_ size_t start = 0,
    +
    5200 _In_ size_t end = (size_t)-1,
    +
    5201 _In_ int flags = match_default)
    +
    5202 {
    +
    5203 assert(text || start >= end);
    +
    5204 interval.end = start;
    +
    5205 for (;;) {
    +
    5206 if (interval.end < end && text[interval.end]) {
    +
    5207 if ((unsigned int)text[interval.end] < 0x20 ||
    +
    5208 (unsigned int)text[interval.end] == 0x7f ||
    +
    5209 text[interval.end] == ':' ||
    +
    5210 text[interval.end] == '/' ||
    +
    5211 isspace(text[interval.end]))
    +
    5212 break;
    +
    5213 else
    +
    5214 interval.end++;
    +
    5215 }
    +
    5216 else
    +
    5217 break;
    +
    5218 }
    +
    5219 if (start < interval.end) {
    +
    5220 interval.start = start;
    +
    5221 return true;
    +
    5222 }
    +
    5223 interval.start = (interval.end = start) + 1;
    +
    5224 return false;
    +
    5225 }
    +
    5226 };
    +
    5227
    +
    5231 class http_url_port : public parser
    +
    5232 {
    +
    5233 public:
    +
    5234 http_url_port(_In_ const std::locale& locale = std::locale()) :
    +
    5235 parser(locale),
    +
    5236 value(0)
    +
    5237 {}
    +
    5238
    +
    5239 virtual bool match(
    +
    5240 _In_reads_or_z_(end) const char* text,
    +
    5241 _In_ size_t start = 0,
    +
    5242 _In_ size_t end = (size_t)-1,
    +
    5243 _In_ int flags = match_default)
    +
    5244 {
    +
    5245 assert(text || start >= end);
    +
    5246 value = 0;
    +
    5247 interval.end = start;
    +
    5248 for (;;) {
    +
    5249 if (interval.end < end && text[interval.end]) {
    +
    5250 if ('0' <= text[interval.end] && text[interval.end] <= '9') {
    +
    5251 size_t _value = (size_t)value * 10 + text[interval.end] - '0';
    +
    5252 if (_value > (uint16_t)-1) {
    +
    5253 value = 0;
    +
    5254 interval.start = (interval.end = start) + 1;
    +
    5255 return false;
    +
    5256 }
    +
    5257 value = (uint16_t)_value;
    +
    5258 interval.end++;
    +
    5259 }
    +
    5260 else
    +
    5261 break;
    +
    5262 }
    +
    5263 else
    +
    5264 break;
    +
    5265 }
    +
    5266 if (start < interval.end) {
    +
    5267 interval.start = start;
    +
    5268 return true;
    +
    5269 }
    +
    5270 interval.start = (interval.end = start) + 1;
    +
    5271 return false;
    +
    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 };
    +
    5274 virtual void invalidate()
    +
    5275 {
    +
    5276 value = 0;
    +
    5277 parser::invalidate();
    +
    5278 }
    +
    5279
    +
    5280 public:
    +
    5281 uint16_t value;
    +
    5282 };
    +
    5283
    + +
    5288 {
    +
    5289 public:
    +
    5290 virtual bool match(
    +
    5291 _In_reads_or_z_(end) const char* text,
    +
    5292 _In_ size_t start = 0,
    +
    5293 _In_ size_t end = (size_t)-1,
    +
    5294 _In_ int flags = match_default)
    +
    5295 {
    +
    5296 assert(text || start >= end);
    +
    5297 interval.end = start;
    +
    5298 for (;;) {
    +
    5299 if (interval.end < end && text[interval.end]) {
    +
    5300 if ((unsigned int)text[interval.end] < 0x20 ||
    +
    5301 (unsigned int)text[interval.end] == 0x7f ||
    +
    5302 text[interval.end] == '?' ||
    +
    5303 text[interval.end] == '/' ||
    +
    5304 isspace(text[interval.end]))
    +
    5305 break;
    +
    5306 else
    +
    5307 interval.end++;
    +
    5308 }
    +
    5309 else
    +
    5310 break;
    +
    5311 }
    +
    5312 interval.start = start;
    +
    5313 return true;
    +
    5314 }
    +
    5315 };
    +
    5316
    +
    5320 class http_url_path : public parser
    +
    5321 {
    +
    5322 public:
    +
    5323 virtual bool match(
    +
    5324 _In_reads_or_z_(end) const char* text,
    +
    5325 _In_ size_t start = 0,
    +
    5326 _In_ size_t end = (size_t)-1,
    +
    5327 _In_ int flags = match_default)
    +
    5328 {
    +
    5329 assert(text || start >= end);
    + +
    5331 interval.end = start;
    +
    5332 segments.clear();
    +
    5333 assert(text || interval.end >= end);
    +
    5334 if (interval.end < end && text[interval.end] != '/')
    +
    5335 goto error;
    +
    5336 interval.end++;
    +
    5337 s.match(text, interval.end, end, flags);
    +
    5338 segments.push_back(s);
    + +
    5340 for (;;) {
    +
    5341 if (interval.end < end && text[interval.end]) {
    +
    5342 if (text[interval.end] == '/') {
    +
    5343 interval.end++;
    +
    5344 s.match(text, interval.end, end, flags);
    +
    5345 segments.push_back(s);
    + +
    5347 }
    +
    5348 else
    +
    5349 break;
    +
    5350 }
    +
    5351 else
    +
    5352 break;
    +
    5353 }
    +
    5354 interval.start = start;
    +
    5355 return true;
    +
    5356
    +
    5357 error:
    +
    5358 segments.clear();
    +
    5359 interval.start = (interval.end = start) + 1;
    +
    5360 return false;
    +
    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 {
    +
    5363 virtual void invalidate()
    +
    5364 {
    +
    5365 segments.clear();
    +
    5366 parser::invalidate();
    +
    5367 }
    +
    5368
    +
    5369 public:
    +
    5370 std::vector<http_url_path_segment> segments;
    +
    5371 };
    +
    5372
    + +
    5377 {
    +
    5378 public:
    +
    5379 virtual bool match(
    +
    5380 _In_reads_or_z_(end) const char* text,
    +
    5381 _In_ size_t start = 0,
    +
    5382 _In_ size_t end = (size_t)-1,
    +
    5383 _In_ int flags = match_default)
    +
    5384 {
    +
    5385 assert(text || start >= end);
    +
    5386 interval.end = start;
    +
    5387 name.start = interval.end;
    +
    5388 for (;;) {
    +
    5389 if (interval.end < end && text[interval.end]) {
    +
    5390 if ((unsigned int)text[interval.end] < 0x20 ||
    +
    5391 (unsigned int)text[interval.end] == 0x7f ||
    +
    5392 text[interval.end] == '&' ||
    +
    5393 text[interval.end] == '=' ||
    +
    5394 isspace(text[interval.end]))
    +
    5395 break;
    +
    5396 else
    +
    5397 interval.end++;
    +
    5398 }
    +
    5399 else
    +
    5400 break;
    +
    5401 }
    +
    5402 if (start < interval.end)
    +
    5403 name.end = interval.end;
    +
    5404 else
    +
    5405 goto error;
    +
    5406 if (text[interval.end] == '=') {
    +
    5407 interval.end++;
    +
    5408 value.start = interval.end;
    +
    5409 for (;;) {
    +
    5410 if (interval.end < end && text[interval.end]) {
    +
    5411 if ((unsigned int)text[interval.end] < 0x20 ||
    +
    5412 (unsigned int)text[interval.end] == 0x7f ||
    +
    5413 text[interval.end] == '&' ||
    +
    5414 isspace(text[interval.end]))
    +
    5415 break;
    +
    5416 else
    +
    5417 interval.end++;
    +
    5418 }
    +
    5419 else
    +
    5420 break;
    +
    5421 }
    +
    5422 value.end = interval.end;
    +
    5423 }
    +
    5424 else {
    +
    5425 value.start = 1;
    +
    5426 value.end = 0;
    +
    5427 }
    +
    5428 interval.start = start;
    +
    5429 return true;
    +
    5430
    +
    5431 error:
    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 {
    +
    5436 interval.start = (interval.end = start) + 1;
    +
    5437 return false;
    +
    5438 }
    +
    5439
    +
    5440 virtual void invalidate()
    +
    5441 {
    +
    5442 name.start = 1;
    +
    5443 name.end = 0;
    +
    5444 value.start = 1;
    +
    5445 value.end = 0;
    +
    5446 parser::invalidate();
    +
    5447 }
    +
    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 {}
    + + +
    5452 };
    +
    5453
    +
    5457 class http_url : public parser
    +
    5458 {
    +
    5459 public:
    +
    5460 http_url(_In_ const std::locale& locale = std::locale()) :
    +
    5461 parser(locale),
    +
    5462 port(locale)
    +
    5463 {}
    +
    5464
    +
    5465 virtual bool match(
    +
    5466 _In_reads_or_z_(end) const char* text,
    +
    5467 _In_ size_t start = 0,
    +
    5468 _In_ size_t end = (size_t)-1,
    +
    5469 _In_ int flags = match_default)
    +
    5470 {
    +
    5471 assert(text || start >= end);
    +
    5472 interval.end = start;
    +
    5473
    +
    5474 if (interval.end + 7 <= end && stdex::strnicmp(text + interval.end, 7, "http://", (size_t)-1, m_locale) == 0) {
    +
    5475 interval.end += 7;
    +
    5476 if (server.match(text, interval.end, end, flags))
    +
    5477 interval.end = server.interval.end;
    +
    5478 else
    +
    5479 goto error;
    +
    5480 if (interval.end < end && text[interval.end] == ':') {
    +
    5481 interval.end++;
    +
    5482 if (port.match(text, interval.end, end, flags))
    +
    5483 interval.end = port.interval.end;
    +
    5484 }
    +
    5485 else {
    +
    5486 port.invalidate();
    +
    5487 port.value = 80;
    +
    5488 }
    +
    5489 }
    +
    5490 else {
    +
    5491 server.invalidate();
    +
    5492 port.invalidate();
    +
    5493 port.value = 80;
    +
    5494 }
    +
    5495
    +
    5496 if (path.match(text, interval.end, end, flags))
    +
    5497 interval.end = path.interval.end;
    +
    5498 else
    +
    5499 goto error;
    +
    5500
    +
    5501 params.clear();
    +
    5502
    +
    5503 if (interval.end < end && text[interval.end] == '?') {
    +
    5504 interval.end++;
    +
    5505 for (;;) {
    +
    5506 if (interval.end < end && text[interval.end]) {
    +
    5507 if ((unsigned int)text[interval.end] < 0x20 ||
    +
    5508 (unsigned int)text[interval.end] == 0x7f ||
    +
    5509 isspace(text[interval.end]))
    +
    5510 break;
    +
    5511 else if (text[interval.end] == '&')
    +
    5512 interval.end++;
    +
    5513 else {
    +
    5514 http_url_parameter param;
    +
    5515 if (param.match(text, interval.end, end, flags)) {
    +
    5516 interval.end = param.interval.end;
    +
    5517 params.push_back(std::move(param));
    +
    5518 }
    +
    5519 else
    +
    5520 break;
    +
    5521 }
    +
    5522 }
    +
    5523 else
    +
    5524 break;
    +
    5525 }
    +
    5526 }
    +
    5527
    +
    5528 interval.start = start;
    +
    5529 return true;
    +
    5530
    +
    5531 error:
    +
    5532 server.invalidate();
    +
    5533 port.invalidate();
    +
    5534 path.invalidate();
    +
    5535 params.clear();
    +
    5536 interval.start = (interval.end = start) + 1;
    +
    5537 return false;
    +
    5538 }
    +
    5539
    +
    5540 virtual void invalidate()
    +
    5541 {
    +
    5542 server.invalidate();
    +
    5543 port.invalidate();
    +
    5544 path.invalidate();
    +
    5545 params.clear();
    +
    5546 parser::invalidate();
    +
    5547 }
    +
    5548
    +
    5549 public:
    +
    5550 http_url_server server;
    +
    5551 http_url_port port;
    +
    5552 http_url_path path;
    +
    5553 std::list<http_url_parameter> params;
    +
    5554 };
    +
    5555
    +
    5559 class http_language : public parser
    +
    5560 {
    +
    5561 public:
    +
    5562 virtual bool match(
    +
    5563 _In_reads_or_z_(end) const char* text,
    +
    5564 _In_ size_t start = 0,
    +
    5565 _In_ size_t end = (size_t)-1,
    +
    5566 _In_ int flags = match_default)
    +
    5567 {
    +
    5568 assert(text || start >= end);
    +
    5569 interval.end = start;
    +
    5570 components.clear();
    +
    5571 for (;;) {
    +
    5572 if (interval.end < end && text[interval.end]) {
    + +
    5574 k.end = interval.end;
    +
    5575 for (;;) {
    +
    5576 if (k.end < end && text[k.end]) {
    +
    5577 if (isalpha(text[k.end]))
    +
    5578 k.end++;
    +
    5579 else
    +
    5580 break;
    +
    5581 }
    +
    5582 else
    +
    5583 break;
    +
    5584 }
    +
    5585 if (interval.end < k.end) {
    +
    5586 k.start = interval.end;
    +
    5587 interval.end = k.end;
    +
    5588 components.push_back(k);
    +
    5589 }
    +
    5590 else
    +
    5591 break;
    +
    5592 if (interval.end < end && text[interval.end] == '-')
    +
    5593 interval.end++;
    +
    5594 else
    +
    5595 break;
    +
    5596 }
    +
    5597 else
    +
    5598 break;
    +
    5599 }
    +
    5600 if (!components.empty()) {
    +
    5601 interval.start = start;
    +
    5602 interval.end = components.back().end;
    +
    5603 return true;
    +
    5604 }
    +
    5605 interval.start = (interval.end = start) + 1;
    +
    5606 return false;
    +
    5607 }
    +
    5608
    +
    5609 virtual void invalidate()
    +
    5610 {
    +
    5611 components.clear();
    +
    5612 parser::invalidate();
    +
    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;
    +
    5615 public:
    +
    5616 std::vector<stdex::interval<size_t>> components;
    +
    5617 };
    +
    5618
    +
    5622 class http_weight : public parser
    +
    5623 {
    +
    5624 public:
    +
    5625 http_weight(_In_ const std::locale& locale = std::locale()) :
    +
    5626 parser(locale),
    +
    5627 value(1.0f)
    +
    5628 {}
    +
    5629
    +
    5630 virtual bool match(
    +
    5631 _In_reads_or_z_(end) const char* text,
    +
    5632 _In_ size_t start = 0,
    +
    5633 _In_ size_t end = (size_t)-1,
    +
    5634 _In_ int flags = match_default)
    +
    5635 {
    +
    5636 assert(text || start >= end);
    +
    5637 size_t celi_del = 0, decimalni_del = 0, decimalni_del_n = 1;
    +
    5638 interval.end = start;
    +
    5639 for (;;) {
    +
    5640 if (interval.end < end && text[interval.end]) {
    +
    5641 if ('0' <= text[interval.end] && text[interval.end] <= '9') {
    +
    5642 celi_del = celi_del * 10 + text[interval.end] - '0';
    +
    5643 interval.end++;
    +
    5644 }
    +
    5645 else if (text[interval.end] == '.') {
    +
    5646 interval.end++;
    +
    5647 for (;;) {
    +
    5648 if (interval.end < end && text[interval.end]) {
    +
    5649 if ('0' <= text[interval.end] && text[interval.end] <= '9') {
    +
    5650 decimalni_del = decimalni_del * 10 + text[interval.end] - '0';
    +
    5651 decimalni_del_n *= 10;
    +
    5652 interval.end++;
    +
    5653 }
    +
    5654 else
    +
    5655 break;
    +
    5656 }
    +
    5657 else
    +
    5658 break;
    +
    5659 }
    +
    5660 break;
    +
    5661 }
    +
    5662 else
    +
    5663 break;
    +
    5664 }
    +
    5665 else
    +
    5666 break;
    +
    5667 }
    +
    5668 if (start < interval.end) {
    +
    5669 value = (float)((double)celi_del + (double)decimalni_del / decimalni_del_n);
    +
    5670 interval.start = start;
    +
    5671 return true;
    +
    5672 }
    +
    5673 value = 1.0f;
    +
    5674 interval.start = (interval.end = start) + 1;
    +
    5675 return false;
    +
    5676 }
    +
    5677
    +
    5678 virtual void invalidate()
    +
    5679 {
    +
    5680 value = 1.0f;
    +
    5681 parser::invalidate();
    +
    5682 }
    +
    5683
    +
    5684 public:
    +
    5685 float value;
    +
    5686 };
    +
    5687
    +
    5691 class http_asterisk : public parser
    +
    5692 {
    +
    5693 public:
    +
    5694 virtual bool match(
    +
    5695 _In_reads_or_z_(end) const char* text,
    +
    5696 _In_ size_t start = 0,
    +
    5697 _In_ size_t end = (size_t)-1,
    +
    5698 _In_ int flags = match_default)
    +
    5699 {
    +
    5700 assert(text || end <= start);
    +
    5701 if (start < end && text[start] == '*') {
    +
    5702 interval.end = (interval.start = start) + 1;
    +
    5703 return true;
    +
    5704 }
    +
    5705 interval.start = (interval.end = start) + 1;
    +
    5706 return false;
    +
    5707 }
    +
    5708 };
    +
    5709
    +
    5713 template <class T, class T_asterisk = http_asterisk>
    + +
    5715 {
    +
    5716 public:
    +
    5717 http_weighted_value(_In_ const std::locale& locale = std::locale()) :
    +
    5718 parser(locale),
    +
    5719 factor(locale)
    +
    5720 {}
    +
    5721
    +
    5722 virtual bool match(
    +
    5723 _In_reads_or_z_(end) const char* text,
    +
    5724 _In_ size_t start = 0,
    +
    5725 _In_ size_t end = (size_t)-1,
    +
    5726 _In_ int flags = match_default)
    +
    5727 {
    +
    5728 assert(text || start >= end);
    +
    5729 size_t konec_vrednosti;
    +
    5730 interval.end = start;
    +
    5731 if (asterisk.match(text, interval.end, end, flags)) {
    +
    5732 interval.end = konec_vrednosti = asterisk.interval.end;
    +
    5733 value.invalidate();
    +
    5734 }
    +
    5735 else if (value.match(text, interval.end, end, flags)) {
    +
    5736 interval.end = konec_vrednosti = value.interval.end;
    +
    5737 asterisk.invalidate();
    +
    5738 }
    +
    5739 else {
    +
    5740 asterisk.invalidate();
    +
    5741 value.invalidate();
    +
    5742 interval.start = (interval.end = start) + 1;
    +
    5743 return false;
    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])) {
    +
    5745
    +
    5746 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
    +
    5747 if (interval.end < end && text[interval.end] == ';') {
    +
    5748 interval.end++;
    +
    5749 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
    +
    5750 if (interval.end < end && (text[interval.end] == 'q' || text[interval.end] == 'Q')) {
    +
    5751 interval.end++;
    +
    5752 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
    +
    5753 if (interval.end < end && text[interval.end] == '=') {
    +
    5754 interval.end++;
    +
    5755 while (interval.end < end && text[interval.end] && isspace(text[interval.end])) interval.end++;
    +
    5756 if (factor.match(text, interval.end, end, flags))
    +
    5757 interval.end = factor.interval.end;
    +
    5758 }
    +
    5759 }
    +
    5760 }
    +
    5761 if (!factor.interval) {
    +
    5762 factor.invalidate();
    +
    5763 interval.end = konec_vrednosti;
    +
    5764 }
    +
    5765 interval.start = start;
    +
    5766 return true;
    +
    5767 }
    +
    5768
    +
    5769 virtual void invalidate()
    +
    5770 {
    +
    5771 asterisk.invalidate();
    +
    5772 value.invalidate();
    +
    5773 factor.invalidate();
    +
    5774 parser::invalidate();
    +
    5775 }
    +
    5776
    +
    5777 public:
    +
    5778 T_asterisk asterisk;
    +
    5779 T value;
    +
    5780 http_weight factor;
    +
    5781 };
    +
    5782
    + +
    5787 {
    +
    5788 public:
    +
    5789 virtual bool match(
    +
    5790 _In_reads_or_z_(end) const char* text,
    +
    5791 _In_ size_t start = 0,
    +
    5792 _In_ size_t end = (size_t)-1,
    +
    5793 _In_ int flags = match_default)
    +
    5794 {
    +
    5795 assert(text || start >= end);
    +
    5796 interval.end = start;
    +
    5797 if (interval.end < end && text[interval.end] == '$')
    +
    5798 interval.end++;
    +
    5799 else
    +
    5800 goto error;
    +
    5801 if (name.match(text, interval.end, end, flags))
    +
    5802 interval.end = name.interval.end;
    +
    5803 else
    +
    5804 goto error;
    +
    5805 while (m_space.match(text, interval.end, end, flags))
    +
    5806 interval.end = m_space.interval.end;
    +
    5807 if (interval.end < end && text[interval.end] == '=')
    +
    5808 interval.end++;
    +
    5809 else
    +
    5810 goto error;
    +
    5811 while (m_space.match(text, interval.end, end, flags))
    +
    5812 interval.end = m_space.interval.end;
    +
    5813 if (value.match(text, interval.end, end, flags))
    +
    5814 interval.end = value.interval.end;
    +
    5815 else
    +
    5816 goto error;
    +
    5817 interval.start = start;
    +
    5818 return true;
    +
    5819
    +
    5820 error:
    +
    5821 name.invalidate();
    +
    5822 value.invalidate();
    +
    5823 interval.start = (interval.end = start) + 1;
    +
    5824 return false;
    +
    5825 }
    +
    5826
    +
    5827 virtual void invalidate()
    +
    5828 {
    +
    5829 name.invalidate();
    +
    5830 value.invalidate();
    +
    5831 parser::invalidate();
    +
    5832 }
    +
    5833
    +
    5834 public:
    +
    5835 http_token name;
    +
    5836 http_value value;
    +
    5837
    +
    5838 protected:
    +
    5839 http_space m_space;
    +
    5840 };
    +
    5841
    +
    5845 class http_cookie : public parser
    +
    5846 {
    +
    5847 public:
    +
    5848 virtual bool match(
    +
    5849 _In_reads_or_z_(end) const char* text,
    +
    5850 _In_ size_t start = 0,
    +
    5851 _In_ size_t end = (size_t)-1,
    +
    5852 _In_ int flags = match_default)
    +
    5853 {
    +
    5854 assert(text || start >= end);
    +
    5855 interval.end = start;
    +
    5856 if (name.match(text, interval.end, end, flags))
    +
    5857 interval.end = name.interval.end;
    +
    5858 else
    +
    5859 goto error;
    +
    5860 while (m_space.match(text, interval.end, end, flags))
    +
    5861 interval.end = m_space.interval.end;
    +
    5862 if (interval.end < end && text[interval.end] == '=')
    +
    5863 interval.end++;
    +
    5864 else
    +
    5865 goto error;
    +
    5866 while (m_space.match(text, interval.end, end, flags))
    +
    5867 interval.end = m_space.interval.end;
    +
    5868 if (value.match(text, interval.end, end, flags))
    +
    5869 interval.end = value.interval.end;
    +
    5870 else
    +
    5871 goto error;
    +
    5872 params.clear();
    +
    5873 for (;;) {
    +
    5874 if (interval.end < end && text[interval.end]) {
    +
    5875 if (m_space.match(text, interval.end, end, flags))
    +
    5876 interval.end = m_space.interval.end;
    +
    5877 else if (text[interval.end] == ';') {
    +
    5878 interval.end++;
    +
    5879 while (m_space.match(text, interval.end, end, flags))
    +
    5880 interval.end = m_space.interval.end;
    + +
    5882 if (param.match(text, interval.end, end, flags)) {
    +
    5883 interval.end = param.interval.end;
    +
    5884 params.push_back(std::move(param));
    +
    5885 }
    +
    5886 else
    +
    5887 break;
    +
    5888 }
    +
    5889 else
    +
    5890 break;
    +
    5891 }
    +
    5892 else
    +
    5893 break;
    +
    5894 }
    +
    5895 interval.start = start;
    +
    5896 interval.end = params.empty() ? value.interval.end : params.back().interval.end;
    +
    5897 return true;
    +
    5898
    +
    5899 error:
    +
    5900 name.invalidate();
    +
    5901 value.invalidate();
    +
    5902 params.clear();
    +
    5903 interval.start = (interval.end = start) + 1;
    +
    5904 return false;
    +
    5905 }
    +
    5906
    +
    5907 virtual void invalidate()
    +
    5908 {
    +
    5909 name.invalidate();
    +
    5910 value.invalidate();
    +
    5911 params.clear();
    +
    5912 parser::invalidate();
    +
    5913 }
    +
    5914
    +
    5915 public:
    + + +
    5918 std::list<http_cookie_parameter> params;
    +
    5919
    +
    5920 protected:
    +
    5921 http_space m_space;
    +
    5922 };
    +
    5923
    +
    5927 class http_agent : public parser
    +
    5928 {
    +
    5929 public:
    +
    5930 virtual bool match(
    +
    5931 _In_reads_or_z_(end) const char* text,
    +
    5932 _In_ size_t start = 0,
    +
    5933 _In_ size_t end = (size_t)-1,
    +
    5934 _In_ int flags = match_default)
    +
    5935 {
    +
    5936 assert(text || start >= end);
    +
    5937 interval.end = start;
    +
    5938 type.start = interval.end;
    +
    5939 for (;;) {
    +
    5940 if (interval.end < end && text[interval.end]) {
    +
    5941 if (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
    +
    5943 interval.end++;
    +
    5944 version.start = interval.end;
    +
    5945 for (;;) {
    +
    5946 if (interval.end < end && text[interval.end]) {
    +
    5947 if (isspace(text[interval.end])) {
    +
    5948 version.end = interval.end;
    +
    5949 break;
    +
    5950 }
    +
    5951 else
    +
    5952 interval.end++;
    +
    5953 }
    +
    5954 else {
    +
    5955 version.end = interval.end;
    +
    5956 break;
    +
    5957 }
    +
    5958 }
    +
    5959 break;
    +
    5960 }
    +
    5961 else if (isspace(text[interval.end])) {
    +
    5962 type.end = interval.end;
    +
    5963 break;
    +
    5964 }
    +
    5965 else
    +
    5966 interval.end++;
    +
    5967 }
    +
    5968 else {
    +
    5969 type.end = interval.end;
    +
    5970 break;
    +
    5971 }
    +
    5972 }
    +
    5973 if (start < interval.end) {
    +
    5974 interval.start = start;
    +
    5975 return true;
    +
    5976 }
    +
    5977 type.start = 1;
    +
    5978 type.end = 0;
    +
    5979 version.start = 1;
    +
    5980 version.end = 0;
    +
    5981 interval.start = 1;
    +
    5982 interval.end = 0;
    +
    5983 return false;
    +
    5984 }
    +
    5985
    +
    5986 virtual void invalidate()
    +
    5987 {
    +
    5988 type.start = 1;
    +
    5989 type.end = 0;
    +
    5990 version.start = 1;
    +
    5991 version.end = 0;
    +
    5992 parser::invalidate();
    +
    5993 }
    +
    5994
    +
    5995 public:
    + + +
    5998 };
    +
    5999
    +
    6003 class http_protocol : public parser
    +
    6004 {
    +
    6005 public:
    +
    6006 http_protocol(_In_ const std::locale& locale = std::locale()) :
    +
    6007 parser(locale),
    +
    6008 version(0x009)
    +
    6009 {}
    +
    6010
    +
    6011 virtual bool match(
    +
    6012 _In_reads_or_z_(end) const char* text,
    +
    6013 _In_ size_t start = 0,
    +
    6014 _In_ size_t end = (size_t)-1,
    +
    6015 _In_ int flags = match_default)
    +
    6016 {
    +
    6017 assert(text || start >= end);
    +
    6018 interval.end = start;
    +
    6019 type.start = interval.end;
    +
    6020 for (;;) {
    +
    6021 if (interval.end < end && text[interval.end]) {
    +
    6022 if (text[interval.end] == '/') {
    +
    6023 type.end = interval.end;
    +
    6024 interval.end++;
    +
    6025 break;
    +
    6026 }
    +
    6027 else if (isspace(text[interval.end]))
    +
    6028 goto error;
    +
    6029 else
    +
    6030 interval.end++;
    +
    6031 }
    +
    6032 else {
    +
    6033 type.end = interval.end;
    +
    6034 goto error;
    +
    6035 }
    +
    6036 }
    +
    6037 version_maj.start = interval.end;
    +
    6038 for (;;) {
    +
    6039 if (interval.end < end && text[interval.end]) {
    +
    6040 if (text[interval.end] == '.') {
    +
    6041 version_maj.end = interval.end;
    +
    6042 interval.end++;
    +
    6043 version_min.start = interval.end;
    +
    6044 for (;;) {
    +
    6045 if (interval.end < end && text[interval.end]) {
    +
    6046 if (isspace(text[interval.end])) {
    +
    6047 version_min.end = interval.end;
    +
    6048 version =
    +
    6049 (uint16_t)strtoui(text + version_maj.start, version_maj.size(), nullptr, 10) * 0x100 +
    +
    6050 (uint16_t)strtoui(text + version_min.start, version_min.size(), nullptr, 10);
    +
    6051 break;
    +
    6052 }
    +
    6053 else
    +
    6054 interval.end++;
    +
    6055 }
    +
    6056 else
    +
    6057 goto error;
    +
    6058 }
    +
    6059 break;
    +
    6060 }
    +
    6061 else if (isspace(text[interval.end])) {
    +
    6062 version_maj.end = interval.end;
    +
    6063 version_min.start = 1;
    +
    6064 version_min.end = 0;
    +
    6065 version = (uint16_t)strtoui(text + version_maj.start, version_maj.size(), nullptr, 10) * 0x100;
    +
    6066 break;
    +
    6067 }
    +
    6068 else
    +
    6069 interval.end++;
    +
    6070 }
    +
    6071 else
    +
    6072 goto error;
    +
    6073 }
    +
    6074 interval.start = start;
    +
    6075 return true;
    +
    6076
    +
    6077 error:
    +
    6078 type.start = 1;
    +
    6079 type.end = 0;
    +
    6080 version_maj.start = 1;
    +
    6081 version_maj.end = 0;
    +
    6082 version_min.start = 1;
    +
    6083 version_min.end = 0;
    +
    6084 version = 0x009;
    +
    6085 interval.start = 1;
    +
    6086 interval.end = 0;
    +
    6087 return false;
    +
    6088 }
    +
    6089
    +
    6090 virtual void invalidate()
    +
    6091 {
    +
    6092 type.start = 1;
    +
    6093 type.end = 0;
    +
    6094 version_maj.start = 1;
    +
    6095 version_maj.end = 0;
    +
    6096 version_min.start = 1;
    +
    6097 version_min.end = 0;
    +
    6098 version = 0x009;
    +
    6099 parser::invalidate();
    +
    6100 }
    +
    6101
    +
    6102 public:
    + +
    6104 stdex::interval<size_t> version_maj;
    +
    6105 stdex::interval<size_t> version_min;
    +
    6106 uint16_t version;
    +
    6107 };
    +
    6108
    +
    6112 class http_request : public parser
    +
    6113 {
    +
    6114 public:
    +
    6115 http_request(_In_ const std::locale& locale = std::locale()) :
    +
    6116 parser(locale),
    +
    6117 url(locale),
    +
    6118 protocol(locale)
    +
    6119 {}
    +
    6120
    +
    6121 virtual bool match(
    +
    6122 _In_reads_or_z_(end) const char* text,
    +
    6123 _In_ size_t start = 0,
    +
    6124 _In_ size_t end = (size_t)-1,
    +
    6125 _In_ int flags = match_default)
    +
    6126 {
    +
    6127 assert(text || start >= end);
    +
    6128 interval.end = start;
    +
    6129
    +
    6130 for (;;) {
    +
    6131 if (m_line_break.match(text, interval.end, end, flags))
    +
    6132 goto error;
    +
    6133 else if (interval.end < end && text[interval.end]) {
    +
    6134 if (isspace(text[interval.end]))
    +
    6135 interval.end++;
    +
    6136 else
    +
    6137 break;
    +
    6138 }
    +
    6139 else
    +
    6140 goto error;
    +
    6141 }
    +
    6142 verb.start = interval.end;
    +
    6143 for (;;) {
    +
    6144 if (m_line_break.match(text, interval.end, end, flags))
    +
    6145 goto error;
    +
    6146 else if (interval.end < end && text[interval.end]) {
    +
    6147 if (isspace(text[interval.end])) {
    +
    6148 verb.end = interval.end;
    +
    6149 interval.end++;
    +
    6150 break;
    +
    6151 }
    +
    6152 else
    +
    6153 interval.end++;
    +
    6154 }
    +
    6155 else
    +
    6156 goto error;
    +
    6157 }
    +
    6158
    +
    6159 for (;;) {
    +
    6160 if (m_line_break.match(text, interval.end, end, flags))
    +
    6161 goto error;
    +
    6162 else if (interval.end < end && text[interval.end]) {
    +
    6163 if (isspace(text[interval.end]))
    +
    6164 interval.end++;
    +
    6165 else
    +
    6166 break;
    +
    6167 }
    +
    6168 else
    +
    6169 goto error;
    +
    6170 }
    +
    6171 if (url.match(text, interval.end, end, flags))
    + +
    6173 else
    +
    6174 goto error;
    +
    6175
    +
    6176 protocol.invalidate();
    +
    6177 for (;;) {
    +
    6178 if (m_line_break.match(text, interval.end, end, flags)) {
    +
    6179 interval.end = m_line_break.interval.end;
    +
    6180 goto end;
    +
    6181 }
    +
    6182 else if (interval.end < end && text[interval.end]) {
    +
    6183 if (isspace(text[interval.end]))
    +
    6184 interval.end++;
    +
    6185 else
    +
    6186 break;
    +
    6187 }
    +
    6188 else
    +
    6189 goto end;
    +
    6190 }
    +
    6191 for (;;) {
    +
    6192 if (m_line_break.match(text, interval.end, end, flags)) {
    +
    6193 interval.end = m_line_break.interval.end;
    +
    6194 goto end;
    +
    6195 }
    +
    6196 else if (protocol.match(text, interval.end, end, flags)) {
    +
    6197 interval.end = protocol.interval.end;
    +
    6198 break;
    +
    6199 }
    +
    6200 else
    +
    6201 goto end;
    +
    6202 }
    +
    6203
    +
    6204 for (;;) {
    +
    6205 if (m_line_break.match(text, interval.end, end, flags)) {
    +
    6206 interval.end = m_line_break.interval.end;
    +
    6207 break;
    +
    6208 }
    +
    6209 else if (interval.end < end && text[interval.end])
    +
    6210 interval.end++;
    +
    6211 else
    +
    6212 goto end;
    +
    6213 }
    +
    6214
    +
    6215 end:
    +
    6216 interval.start = start;
    +
    6217 return true;
    +
    6218
    +
    6219 error:
    +
    6220 verb.start = 1;
    +
    6221 verb.end = 0;
    +
    6222 url.invalidate();
    +
    6223 protocol.invalidate();
    +
    6224 interval.start = 1;
    +
    6225 interval.end = 0;
    +
    6226 return false;
    +
    6227 }
    +
    6228
    +
    6229 virtual void invalidate()
    +
    6230 {
    +
    6231 verb.start = 1;
    +
    6232 verb.end = 0;
    +
    6233 url.invalidate();
    +
    6234 protocol.invalidate();
    +
    6235 parser::invalidate();
    +
    6236 }
    +
    6237
    +
    6238 public:
    + +
    6240 http_url url;
    +
    6241 http_protocol protocol;
    +
    6242
    +
    6243 protected:
    +
    6244 http_line_break m_line_break;
    +
    6245 };
    +
    6246
    +
    6250 class http_header : public parser
    +
    6251 {
    +
    6252 public:
    +
    6253 virtual bool match(
    +
    6254 _In_reads_or_z_(end) const char* text,
    +
    6255 _In_ size_t start = 0,
    +
    6256 _In_ size_t end = (size_t)-1,
    +
    6257 _In_ int flags = match_default)
    +
    6258 {
    +
    6259 assert(text || start >= end);
    +
    6260 interval.end = start;
    +
    6261
    +
    6262 if (m_line_break.match(text, interval.end, end, flags) ||
    +
    6263 interval.end < end && text[interval.end] && isspace(text[interval.end]))
    +
    6264 goto error;
    +
    6265 name.start = interval.end;
    +
    6266 for (;;) {
    +
    6267 if (m_line_break.match(text, interval.end, end, flags))
    +
    6268 goto error;
    +
    6269 else if (interval.end < end && text[interval.end]) {
    +
    6270 if (isspace(text[interval.end])) {
    +
    6271 name.end = interval.end;
    +
    6272 interval.end++;
    +
    6273 for (;;) {
    +
    6274 if (m_line_break.match(text, interval.end, end, flags))
    +
    6275 goto error;
    +
    6276 else if (interval.end < end && text[interval.end]) {
    +
    6277 if (isspace(text[interval.end]))
    +
    6278 interval.end++;
    +
    6279 else
    +
    6280 break;
    +
    6281 }
    +
    6282 else
    +
    6283 goto error;
    +
    6284 }
    +
    6285 if (interval.end < end && text[interval.end] == ':') {
    +
    6286 interval.end++;
    +
    6287 break;
    +
    6288 }
    +
    6289 else
    +
    6290 goto error;
    +
    6291 break;
    +
    6292 }
    +
    6293 else if (text[interval.end] == ':') {
    +
    6294 name.end = interval.end;
    +
    6295 interval.end++;
    +
    6296 break;
    +
    6297 }
    +
    6298 else
    +
    6299 interval.end++;
    +
    6300 }
    +
    6301 else
    +
    6302 goto error;
    +
    6303 }
    +
    6304 value.start = (size_t)-1;
    +
    6305 value.end = 0;
    +
    6306 for (;;) {
    +
    6307 if (m_line_break.match(text, interval.end, end, flags)) {
    +
    6308 interval.end = m_line_break.interval.end;
    +
    6309 if (!m_line_break.match(text, interval.end, end, flags) &&
    +
    6310 interval.end < end && text[interval.end] && isspace(text[interval.end]))
    +
    6311 interval.end++;
    +
    6312 else
    +
    6313 break;
    +
    6314 }
    +
    6315 else if (interval.end < end && text[interval.end]) {
    +
    6316 if (isspace(text[interval.end]))
    +
    6317 interval.end++;
    +
    6318 else {
    +
    6319 if (value.start == (size_t)-1) value.start = interval.end;
    +
    6320 value.end = ++interval.end;
    +
    6321 }
    +
    6322 }
    +
    6323 else
    +
    6324 break;
    +
    6325 }
    +
    6326 interval.start = start;
    +
    6327 return true;
    +
    6328
    +
    6329 error:
    +
    6330 name.start = 1;
    +
    6331 name.end = 0;
    +
    6332 value.start = 1;
    +
    6333 value.end = 0;
    +
    6334 interval.start = 1;
    +
    6335 interval.end = 0;
    +
    6336 return false;
    +
    6337 }
    +
    6338
    +
    6339 virtual void invalidate()
    +
    6340 {
    +
    6341 name.start = 1;
    +
    6342 name.end = 0;
    +
    6343 value.start = 1;
    +
    6344 value.end = 0;
    +
    6345 parser::invalidate();
    +
    6346 }
    +
    6347
    +
    6348 public:
    + + +
    6351
    +
    6352 protected:
    +
    6353 http_line_break m_line_break;
    +
    6354 };
    +
    6355
    +
    6359 template <class T>
    +
    6360 class http_value_collection : public T
    +
    6361 {
    +
    6362 public:
    +
    6363 void insert(
    +
    6364 _In_reads_or_z_(end) const char* text,
    +
    6365 _In_ size_t start = 0,
    +
    6366 _In_ size_t end = (size_t)-1,
    +
    6367 _In_ int flags = match_default)
    +
    6368 {
    +
    6369 while (start < end) {
    +
    6370 while (start < end && text[start] && isspace(text[start])) start++;
    +
    6371 if (start < end && text[start] == ',') {
    +
    6372 start++;
    +
    6373 while (start < end&& text[start] && isspace(text[start])) start++;
    +
    6374 }
    +
    6375 T::key_type el;
    +
    6376 if (el.match(text, start, end, flags)) {
    +
    6377 start = el.interval.end;
    +
    6378 T::insert(std::move(el));
    +
    6379 }
    +
    6380 else
    +
    6381 break;
    +
    6382 }
    +
    6383 }
    +
    6384 };
    +
    6385
    +
    6386 template <class T>
    + +
    6388 constexpr bool operator()(const T& a, const T& b) const noexcept
    +
    6389 {
    +
    6390 return a.factor.value > b.factor.value;
    +
    6391 }
    +
    6392 };
    +
    6393
    +
    6397 template <class T, class _Alloc = std::allocator<T>>
    + +
    6399
    +
    6403 template <class T>
    + +
    6405 {
    +
    6406 public:
    + +
    6408 _In_ const std::shared_ptr<basic_parser<T>>& quote,
    +
    6409 _In_ const std::shared_ptr<basic_parser<T>>& chr,
    +
    6410 _In_ const std::shared_ptr<basic_parser<T>>& escape,
    +
    6411 _In_ const std::shared_ptr<basic_parser<T>>& sol,
    +
    6412 _In_ const std::shared_ptr<basic_parser<T>>& bs,
    +
    6413 _In_ const std::shared_ptr<basic_parser<T>>& ff,
    +
    6414 _In_ const std::shared_ptr<basic_parser<T>>& lf,
    +
    6415 _In_ const std::shared_ptr<basic_parser<T>>& cr,
    +
    6416 _In_ const std::shared_ptr<basic_parser<T>>& htab,
    +
    6417 _In_ const std::shared_ptr<basic_parser<T>>& uni,
    +
    6418 _In_ const std::shared_ptr<basic_integer16<T>>& hex,
    +
    6419 _In_ const std::locale& locale = std::locale()) :
    +
    6420 basic_parser<T>(locale),
    +
    6421 m_quote(quote),
    +
    6422 m_chr(chr),
    +
    6423 m_escape(escape),
    +
    6424 m_sol(sol),
    +
    6425 m_bs(bs),
    +
    6426 m_ff(ff),
    +
    6427 m_lf(lf),
    +
    6428 m_cr(cr),
    +
    6429 m_htab(htab),
    +
    6430 m_uni(uni),
    +
    6431 m_hex(hex)
    +
    6432 {}
    +
    6433
    +
    6434 virtual bool match(
    +
    6435 _In_reads_or_z_(end) const T* text,
    +
    6436 _In_ size_t start = 0,
    +
    6437 _In_ size_t end = (size_t)-1,
    +
    6438 _In_ int flags = match_default)
    +
    6439 {
    +
    6440 assert(text || start >= end);
    +
    6441 interval.end = start;
    +
    6442 if (m_quote->match(text, interval.end, end, flags)) {
    +
    6443 interval.end = m_quote->interval.end;
    +
    6444 value.clear();
    +
    6445 for (;;) {
    +
    6446 if (m_quote->match(text, interval.end, end, flags)) {
    +
    6447 interval.start = start;
    +
    6448 interval.end = m_quote->interval.end;
    +
    6449 return true;
    +
    6450 }
    +
    6451 if (m_escape->match(text, interval.end, end, flags)) {
    +
    6452 if (m_quote->match(text, m_escape->interval.end, end, flags)) {
    +
    6453 value += '"'; interval.end = m_quote->interval.end;
    +
    6454 continue;
    +
    6455 }
    +
    6456 if (m_sol->match(text, m_escape->interval.end, end, flags)) {
    +
    6457 value += '/'; interval.end = m_sol->interval.end;
    +
    6458 continue;
    +
    6459 }
    +
    6460 if (m_bs->match(text, m_escape->interval.end, end, flags)) {
    +
    6461 value += '\b'; interval.end = m_bs->interval.end;
    +
    6462 continue;
    +
    6463 }
    +
    6464 if (m_ff->match(text, m_escape->interval.end, end, flags)) {
    +
    6465 value += '\f'; interval.end = m_ff->interval.end;
    +
    6466 continue;
    +
    6467 }
    +
    6468 if (m_lf->match(text, m_escape->interval.end, end, flags)) {
    +
    6469 value += '\n'; interval.end = m_lf->interval.end;
    +
    6470 continue;
    +
    6471 }
    +
    6472 if (m_cr->match(text, m_escape->interval.end, end, flags)) {
    +
    6473 value += '\r'; interval.end = m_cr->interval.end;
    +
    6474 continue;
    +
    6475 }
    +
    6476 if (m_htab->match(text, m_escape->interval.end, end, flags)) {
    +
    6477 value += '\t'; interval.end = m_htab->interval.end;
    +
    6478 continue;
    +
    6479 }
    +
    6480 if (
    +
    6481 m_uni->match(text, m_escape->interval.end, end, flags) &&
    +
    6482 m_hex->match(text, m_uni->interval.end, std::min(m_uni->interval.end + 4, end), flags | match_case_insensitive) &&
    +
    6483 m_hex->interval.size() == 4 /* JSON requests 4-digit Unicode sequneces: \u.... */)
    +
    6484 {
    +
    6485 assert(m_hex->value <= 0xffff);
    +
    6486 if (sizeof(T) == 1) {
    +
    6487 if (m_hex->value > 0x7ff) {
    +
    6488 value += (T)(0xe0 | (m_hex->value >> 12) & 0x0f);
    +
    6489 value += (T)(0x80 | (m_hex->value >> 6) & 0x3f);
    +
    6490 value += (T)(0x80 | m_hex->value & 0x3f);
    +
    6491 }
    +
    6492 else if (m_hex->value > 0x7f) {
    +
    6493 value += (T)(0xc0 | (m_hex->value >> 6) & 0x1f);
    +
    6494 value += (T)(0x80 | m_hex->value & 0x3f);
    +
    6495 }
    +
    6496 else
    +
    6497 value += (T)(m_hex->value & 0x7f);
    +
    6498 }
    +
    6499 else
    +
    6500 value += (T)m_hex->value;
    +
    6501 interval.end = m_hex->interval.end;
    +
    6502 continue;
    +
    6503 }
    +
    6504 if (m_escape->match(text, m_escape->interval.end, end, flags)) {
    +
    6505 value += '\\'; interval.end = m_escape->interval.end;
    +
    6506 continue;
    +
    6507 }
    +
    6508 }
    +
    6509 if (m_chr->match(text, interval.end, end, flags)) {
    +
    6510 value.Prilepi(text + m_chr->interval.start, m_chr->interval.size());
    +
    6511 interval.end = m_chr->interval.end;
    +
    6512 continue;
    +
    6513 }
    +
    6514 break;
    +
    6515 }
    +
    6516 }
    +
    6517 value.clear();
    +
    6518 interval.start = (interval.end = start) + 1;
    +
    6519 return false;
    +
    6520 }
    +
    6521
    +
    6522 virtual void invalidate()
    +
    6523 {
    +
    6524 value.clear();
    + +
    6526 }
    +
    6527
    +
    6528 public:
    +
    6529 std::basic_string<T> value;
    +
    6530
    +
    6531 protected:
    +
    6532 std::shared_ptr<basic_parser<T>> m_quote;
    +
    6533 std::shared_ptr<basic_parser<T>> m_chr;
    +
    6534 std::shared_ptr<basic_parser<T>> m_escape;
    +
    6535 std::shared_ptr<basic_parser<T>> m_sol;
    +
    6536 std::shared_ptr<basic_parser<T>> m_bs;
    +
    6537 std::shared_ptr<basic_parser<T>> m_ff;
    +
    6538 std::shared_ptr<basic_parser<T>> m_lf;
    +
    6539 std::shared_ptr<basic_parser<T>> m_cr;
    +
    6540 std::shared_ptr<basic_parser<T>> m_htab;
    +
    6541 std::shared_ptr<basic_parser<T>> m_uni;
    +
    6542 std::shared_ptr<basic_integer16<T>> m_hex;
    +
    6543 };
    +
    6544
    + + +
    6547#ifdef _UNICODE
    +
    6548 using tjson_string = wjson_string;
    +
    6549#else
    +
    6550 using tjson_string = json_string;
    +
    6551#endif
    +
    6552 }
    +
    6553}
    +
    6554
    +
    6555#ifdef _MSC_VER
    +
    6556#pragma warning(pop)
    +
    6557#endif
    +
    Test for angle in d°mm'ss.dddd form.
    Definition: parser.hpp:4369
    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
    +
    Test for beginning of line.
    Definition: parser.hpp:594
    +
    Test for any.
    Definition: parser.hpp:1036
    +
    Test for chemical formula.
    Definition: parser.hpp:4643
    +
    Test for any code unit from a given string of code units.
    Definition: parser.hpp:699
    +
    Test for specific code unit.
    Definition: parser.hpp:270
    +
    Test for date.
    Definition: parser.hpp:3989
    +
    Test for valid DNS domain character.
    Definition: parser.hpp:2784
    +
    bool allow_on_edge
    Is character allowed at the beginning or an end of a DNS domain?
    Definition: parser.hpp:2822
    +
    Test for DNS domain/hostname.
    Definition: parser.hpp:2884
    +
    bool m_allow_absolute
    May DNS names end with a dot (absolute name)?
    Definition: parser.hpp:2948
    +
    Test for e-mail address.
    Definition: parser.hpp:3772
    +
    Test for emoticon.
    Definition: parser.hpp:3880
    +
    std::shared_ptr< basic_parser< T > > apex
    apex/eyebrows/halo (e.g. O, 0)
    Definition: parser.hpp:3969
    +
    std::shared_ptr< basic_parser< T > > eyes
    eyes (e.g. :, ;, >, |, B)
    Definition: parser.hpp:3970
    +
    std::shared_ptr< basic_set< T > > mouth
    mouth (e.g. ), ), (, (, |, P, D, p, d)
    Definition: parser.hpp:3972
    +
    std::shared_ptr< basic_parser< T > > nose
    nose (e.g. -, o)
    Definition: parser.hpp:3971
    +
    std::shared_ptr< basic_parser< T > > emoticon
    emoticon as a whole (e.g. 😀, 🤔, 😶)
    Definition: parser.hpp:3968
    +
    Test for end of line.
    Definition: parser.hpp:632
    +
    Test for fraction.
    Definition: parser.hpp:1665
    +
    Test for decimal integer.
    Definition: parser.hpp:1274
    +
    Test for decimal integer possibly containing thousand separators.
    Definition: parser.hpp:1359
    +
    bool has_separators
    Did integer have any separators?
    Definition: parser.hpp:1419
    +
    size_t digit_count
    Total number of digits in integer.
    Definition: parser.hpp:1418
    +
    Test for hexadecimal integer.
    Definition: parser.hpp:1440
    +
    Base class for integer testing.
    Definition: parser.hpp:1252
    +
    size_t value
    Calculated value of the numeral.
    Definition: parser.hpp:1266
    +
    Test for IPv4 address.
    Definition: parser.hpp:2324
    +
    Test for IPv6 address.
    Definition: parser.hpp:2543
    +
    std::shared_ptr< basic_parser< T > > scope_id
    Scope ID (e.g. NIC index with link-local addresses)
    Definition: parser.hpp:2747
    +
    Test for valid IPv6 address scope ID character.
    Definition: parser.hpp:2471
    +
    Test for repeating.
    Definition: parser.hpp:889
    +
    bool m_greedy
    try to match as long sequence as possible
    Definition: parser.hpp:928
    +
    std::shared_ptr< basic_parser< T > > m_el
    repeating element
    Definition: parser.hpp:925
    +
    size_t m_min_iterations
    minimum number of iterations
    Definition: parser.hpp:926
    +
    size_t m_max_iterations
    maximum number of iterations
    Definition: parser.hpp:927
    +
    Test for JSON string.
    Definition: parser.hpp:6405
    +
    Test for mixed numeral.
    Definition: parser.hpp:1900
    +
    std::shared_ptr< basic_parser< T > > fraction
    fraction
    Definition: parser.hpp:2006
    +
    std::shared_ptr< basic_parser< T > > special_sign
    Special sign (e.g. plus-minus '±')
    Definition: parser.hpp:2004
    +
    std::shared_ptr< basic_parser< T > > negative_sign
    Negative sign.
    Definition: parser.hpp:2003
    +
    std::shared_ptr< basic_parser< T > > positive_sign
    Positive sign.
    Definition: parser.hpp:2002
    +
    std::shared_ptr< basic_parser< T > > integer
    Integer part.
    Definition: parser.hpp:2005
    +
    Test for monetary numeral.
    Definition: parser.hpp:2195
    +
    std::shared_ptr< basic_parser< T > > positive_sign
    Positive sign.
    Definition: parser.hpp:2301
    +
    std::shared_ptr< basic_parser< T > > decimal_separator
    Decimal separator.
    Definition: parser.hpp:2306
    +
    std::shared_ptr< basic_parser< T > > currency
    Currency part.
    Definition: parser.hpp:2304
    +
    std::shared_ptr< basic_parser< T > > decimal
    Decimal part.
    Definition: parser.hpp:2307
    +
    std::shared_ptr< basic_parser< T > > integer
    Integer part.
    Definition: parser.hpp:2305
    +
    std::shared_ptr< basic_parser< T > > negative_sign
    Negative sign.
    Definition: parser.hpp:2302
    +
    std::shared_ptr< basic_parser< T > > special_sign
    Special sign (e.g. plus-minus '±')
    Definition: parser.hpp:2303
    "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
    +
    Base template for all parsers.
    Definition: parser.hpp:49
    +
    interval< size_t > interval
    Region of the last match.
    Definition: parser.hpp:148
    +
    Test for permutation.
    Definition: parser.hpp:1176
    +
    Test for phone number.
    Definition: parser.hpp:4492
    +
    std::basic_string< T > value
    Normalized phone number.
    Definition: parser.hpp:4618
    +
    Test for any punctuation code unit.
    Definition: parser.hpp:442
    +
    Test for Roman numeral.
    Definition: parser.hpp:1549
    +
    Test for scientific numeral.
    Definition: parser.hpp:2026
    +
    std::shared_ptr< basic_parser< T > > special_sign
    Special sign (e.g. plus-minus '±')
    Definition: parser.hpp:2170
    +
    std::shared_ptr< basic_parser< T > > exponent_symbol
    Exponent symbol (e.g. 'e')
    Definition: parser.hpp:2174
    +
    std::shared_ptr< basic_parser< T > > positive_sign
    Positive sign.
    Definition: parser.hpp:2168
    +
    std::shared_ptr< basic_parser< T > > negative_sign
    Negative sign.
    Definition: parser.hpp:2169
    +
    double value
    Calculated value of the numeral.
    Definition: parser.hpp:2178
    +
    std::shared_ptr< basic_parser< T > > negative_exp_sign
    Negative exponent sign (e.g. '-')
    Definition: parser.hpp:2176
    +
    std::shared_ptr< basic_integer< T > > decimal
    Decimal part.
    Definition: parser.hpp:2173
    +
    std::shared_ptr< basic_parser< T > > positive_exp_sign
    Positive exponent sign (e.g. '+')
    Definition: parser.hpp:2175
    +
    std::shared_ptr< basic_integer< T > > exponent
    Exponent part.
    Definition: parser.hpp:2177
    +
    std::shared_ptr< basic_parser< T > > decimal_separator
    Decimal separator.
    Definition: parser.hpp:2172
    +
    std::shared_ptr< basic_integer< T > > integer
    Integer part.
    Definition: parser.hpp:2171
    +
    Test for match score.
    Definition: parser.hpp:1728
    +
    Test for sequence.
    Definition: parser.hpp:985
    +
    Definition: parser.hpp:667
    +
    Test for signed numeral.
    Definition: parser.hpp:1814
    +
    std::shared_ptr< basic_parser< T > > special_sign
    Special sign (e.g. plus-minus '±')
    Definition: parser.hpp:1882
    +
    std::shared_ptr< basic_parser< T > > negative_sign
    Negative sign.
    Definition: parser.hpp:1881
    +
    std::shared_ptr< basic_parser< T > > positive_sign
    Positive sign.
    Definition: parser.hpp:1880
    +
    std::shared_ptr< basic_parser< T > > number
    Number.
    Definition: parser.hpp:1883
    +
    Test for any space code unit.
    Definition: parser.hpp:363
    +
    Test for any space or punctuation code unit.
    Definition: parser.hpp:516
    +
    Test for any string.
    Definition: parser.hpp:1104
    +
    Test for given string.
    Definition: parser.hpp:794
    +
    Test for time.
    Definition: parser.hpp:4266
    +
    Test for valid URL password character.
    Definition: parser.hpp:3066
    +
    Test for valid URL path character.
    Definition: parser.hpp:3166
    +
    Test for URL path.
    Definition: parser.hpp:3274
    +
    Test for valid URL username character.
    Definition: parser.hpp:2967
    +
    Test for URL.
    Definition: parser.hpp:3415
    +
    Test for HTTP agent.
    Definition: parser.hpp:5928
    +
    Test for HTTP any type.
    Definition: parser.hpp:5050
    +
    Test for HTTP asterisk.
    Definition: parser.hpp:5692
    + + + + + +
    Test for HTTP header.
    Definition: parser.hpp:6251
    +
    Test for HTTP language (RFC1766)
    Definition: parser.hpp:5560
    +
    Test for HTTP line break (RFC2616: CRLF | LF)
    Definition: parser.hpp:4724
    +
    Test for HTTP media range (RFC2616: media-range)
    Definition: parser.hpp:5082
    +
    Test for HTTP media type (RFC2616: media-type)
    Definition: parser.hpp:5137
    +
    Test for HTTP parameter (RFC2616: parameter)
    Definition: parser.hpp:4995
    +
    http_token name
    Parameter name.
    Definition: parser.hpp:5039
    +
    http_value value
    Parameter value.
    Definition: parser.hpp:5040
    +
    Test for HTTP protocol.
    Definition: parser.hpp:6004
    +
    uint16_t version
    HTTP protocol version: 0x100 = 1.0, 0x101 = 1.1...
    Definition: parser.hpp:6106
    +
    Test for HTTP quoted string (RFC2616: quoted-string)
    Definition: parser.hpp:4885
    +
    stdex::interval< size_t > content
    String content (without quotes)
    Definition: parser.hpp:4941
    +
    Test for HTTP request.
    Definition: parser.hpp:6113
    +
    Test for HTTP space (RFC2616: LWS)
    Definition: parser.hpp:4760
    +
    Test for HTTP text character (RFC2616: TEXT)
    Definition: parser.hpp:4797
    +
    Test for HTTP token (RFC2616: token - tolerates non-ASCII)
    Definition: parser.hpp:4831
    +
    Test for HTTP URL parameter.
    Definition: parser.hpp:5377
    +
    Test for HTTP URL path segment.
    Definition: parser.hpp:5288
    +
    Test for HTTP URL path segment.
    Definition: parser.hpp:5321
    +
    std::vector< http_url_path_segment > segments
    Path segments.
    Definition: parser.hpp:5370
    +
    Test for HTTP URL port.
    Definition: parser.hpp:5232
    +
    Test for HTTP URL server.
    Definition: parser.hpp:5195
    +
    Test for HTTP URL.
    Definition: parser.hpp:5458
    +
    Collection of HTTP values.
    Definition: parser.hpp:6361
    +
    Test for HTTP value (RFC2616: value)
    Definition: parser.hpp:4951
    +
    http_quoted_string string
    Value when matched as quoted string.
    Definition: parser.hpp:4987
    +
    http_token token
    Value when matched as token.
    Definition: parser.hpp:4988
    +
    Test for HTTP weight factor.
    Definition: parser.hpp:5623
    +
    float value
    Calculated value of the weight factor.
    Definition: parser.hpp:5685
    +
    Test for HTTP weighted value.
    Definition: parser.hpp:5715
    +
    Base template for collection-holding parsers.
    Definition: parser.hpp:945
    +
    Test for any SGML code point.
    Definition: parser.hpp:232
    +
    Test for any SGML code point from a given string of SGML code points.
    Definition: parser.hpp:751
    +
    Test for specific SGML code point.
    Definition: parser.hpp:319
    +
    Test for valid DNS domain SGML character.
    Definition: parser.hpp:2840
    +
    Test for valid IPv6 address scope ID SGML character.
    Definition: parser.hpp:2509
    +
    Test for any SGML punctuation code point.
    Definition: parser.hpp:483
    +
    Test for any SGML space code point.
    Definition: parser.hpp:406
    +
    Test for any SGML space or punctuation code point.
    Definition: parser.hpp:559
    +
    Test for SGML given string.
    Definition: parser.hpp:841
    +
    Test for valid URL password SGML character.
    Definition: parser.hpp:3118
    +
    Test for valid URL path SGML character.
    Definition: parser.hpp:3222
    +
    Test for valid URL username SGML character.
    Definition: parser.hpp:3018
    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
    +
    Definition: parser.hpp:6387
    diff --git a/pch_8h_source.html b/pch_8h_source.html index 08d772ea9..9a74d5a4d 100644 --- a/pch_8h_source.html +++ b/pch_8h_source.html @@ -105,7 +105,7 @@ $(function() { diff --git a/progress_8hpp_source.html b/progress_8hpp_source.html index 915e92877..39194d7bd 100644 --- a/progress_8hpp_source.html +++ b/progress_8hpp_source.html @@ -260,7 +260,7 @@ $(function() { diff --git a/sal_8hpp_source.html b/sal_8hpp_source.html index 5646e9a3c..5cc1ee7ea 100644 --- a/sal_8hpp_source.html +++ b/sal_8hpp_source.html @@ -140,7 +140,7 @@ $(function() { diff --git a/search/all_0.js b/search/all_0.js index a3b78a9d7..070af7f2c 100644 --- a/search/all_0.js +++ b/search/all_0.js @@ -2,7 +2,7 @@ var searchData= [ ['abs_0',['abs',['../classstdex_1_1vector__queue.html#ae31dd1a45546dc1ff91eaa82b97c0e1b',1,'stdex::vector_queue']]], ['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']]], + ['apex_2',['apex',['../classstdex_1_1parser_1_1basic__emoticon.html#a1b6b7a024dea373b890c1c4516f5e9a4',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 afcd89161..4e6623176 100644 --- a/search/all_1.js +++ b/search/all_1.js @@ -31,25 +31,25 @@ var searchData= ['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_5fparser_31',['basic_parser',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], + ['basic_5fparser_3c_20char_20_3e_32',['basic_parser< char >',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], + ['basic_5fpermutation_33',['basic_permutation',['../classstdex_1_1parser_1_1basic__permutation.html',1,'stdex::parser']]], + ['basic_5fphone_5fnumber_34',['basic_phone_number',['../classstdex_1_1parser_1_1basic__phone__number.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_35',['basic_punct_cu',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_3c_20char_20_3e_36',['basic_punct_cu< char >',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5froman_5fnumeral_37',['basic_roman_numeral',['../classstdex_1_1parser_1_1basic__roman__numeral.html',1,'stdex::parser']]], + ['basic_5fscientific_5fnumeral_38',['basic_scientific_numeral',['../classstdex_1_1parser_1_1basic__scientific__numeral.html',1,'stdex::parser']]], + ['basic_5fscore_39',['basic_score',['../classstdex_1_1parser_1_1basic__score.html',1,'stdex::parser']]], + ['basic_5fsequence_40',['basic_sequence',['../classstdex_1_1parser_1_1basic__sequence.html',1,'stdex::parser']]], + ['basic_5fset_41',['basic_set',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fset_3c_20char_20_3e_42',['basic_set< char >',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fsigned_5fnumeral_43',['basic_signed_numeral',['../classstdex_1_1parser_1_1basic__signed__numeral.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_44',['basic_space_cu',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_3c_20char_20_3e_45',['basic_space_cu< char >',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_46',['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_47',['basic_space_or_punct_cu< char >',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fstring_48',['basic_string',['../classstdex_1_1parser_1_1basic__string.html',1,'stdex::parser']]], + ['basic_5fstring_5fbranch_49',['basic_string_branch',['../classstdex_1_1parser_1_1basic__string__branch.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']]], diff --git a/search/all_10.js b/search/all_10.js index 551fc44da..6b89c07dc 100644 --- a/search/all_10.js +++ b/search/all_10.js @@ -1,6 +1,5 @@ var searchData= [ ['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']]] + ['token_1',['token',['../classstdex_1_1parser_1_1http__value.html#aecdecacd265379c1d6e12a75424c5573',1,'stdex::parser::http_value']]] ]; diff --git a/search/all_2.js b/search/all_2.js index d63a23b14..68162d9a3 100644 --- a/search/all_2.js +++ b/search/all_2.js @@ -8,5 +8,5 @@ var searchData= ['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']]] + ['currency_8',['currency',['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a62545d1c49178d4412da46d3cb2eba25',1,'stdex::parser::basic_monetary_numeral']]] ]; diff --git a/search/all_3.js b/search/all_3.js index a5b41774c..2c064bd8f 100644 --- a/search/all_3.js +++ b/search/all_3.js @@ -2,8 +2,8 @@ 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()']]], - ['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()']]], + ['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#ac1442f0871a1b43db2d4cd45e05803ac',1,'stdex::parser::basic_monetary_numeral::decimal()']]], + ['decimal_5fseparator_3',['decimal_separator',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ae09233c93964704acf2bbd762fc14372',1,'stdex::parser::basic_scientific_numeral::decimal_separator()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a5393628850b747e190a4e0d50eb97144',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']]], diff --git a/search/all_4.js b/search/all_4.js index 2a86ea797..ac5df4c4e 100644 --- a/search/all_4.js +++ b/search/all_4.js @@ -1,12 +1,12 @@ var searchData= [ - ['emoticon_0',['emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html#a78c5dea0c060b158f41715f3000fcd70',1,'stdex::parser::basic_emoticon']]], + ['emoticon_0',['emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html#ab746ed27e68939dd9e544b6e70476650',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']]] + ['exponent_5fsymbol_7',['exponent_symbol',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a66134e1cb72bdfb75f2ac634fee02ee3',1,'stdex::parser::basic_scientific_numeral']]], + ['eyes_8',['eyes',['../classstdex_1_1parser_1_1basic__emoticon.html#a2700be6652350445e571cf95940fd32a',1,'stdex::parser::basic_emoticon']]] ]; diff --git a/search/all_5.js b/search/all_5.js index fe0b5106d..9817624b1 100644 --- a/search/all_5.js +++ b/search/all_5.js @@ -1,6 +1,6 @@ var searchData= [ ['find_0',['find',['../classstdex_1_1idrec_1_1record.html#a19523040d07119055884a7a2f8ef25fd',1,'stdex::idrec::record']]], - ['fraction_1',['fraction',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a5b9ea33c95fbac28833b77f0ef7dba8f',1,'stdex::parser::basic_mixed_numeral']]], + ['fraction_1',['fraction',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a288fa70b3073080487d6d253600dca34',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 dc839ccbe..088bbf909 100644 --- a/search/all_7.js +++ b/search/all_7.js @@ -11,25 +11,25 @@ var searchData= ['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_5flanguage_11',['http_language',['../classstdex_1_1parser_1_1http__language.html',1,'stdex::parser']]], + ['http_5fline_5fbreak_12',['http_line_break',['../classstdex_1_1parser_1_1http__line__break.html',1,'stdex::parser']]], + ['http_5fmedia_5frange_13',['http_media_range',['../classstdex_1_1parser_1_1http__media__range.html',1,'stdex::parser']]], + ['http_5fmedia_5ftype_14',['http_media_type',['../classstdex_1_1parser_1_1http__media__type.html',1,'stdex::parser']]], + ['http_5fparameter_15',['http_parameter',['../classstdex_1_1parser_1_1http__parameter.html',1,'stdex::parser']]], + ['http_5fprotocol_16',['http_protocol',['../classstdex_1_1parser_1_1http__protocol.html',1,'stdex::parser']]], + ['http_5fquoted_5fstring_17',['http_quoted_string',['../classstdex_1_1parser_1_1http__quoted__string.html',1,'stdex::parser']]], + ['http_5frequest_18',['http_request',['../classstdex_1_1parser_1_1http__request.html',1,'stdex::parser']]], + ['http_5fspace_19',['http_space',['../classstdex_1_1parser_1_1http__space.html',1,'stdex::parser']]], + ['http_5ftext_5fchar_20',['http_text_char',['../classstdex_1_1parser_1_1http__text__char.html',1,'stdex::parser']]], + ['http_5ftoken_21',['http_token',['../classstdex_1_1parser_1_1http__token.html',1,'stdex::parser']]], + ['http_5furl_22',['http_url',['../classstdex_1_1parser_1_1http__url.html',1,'stdex::parser']]], + ['http_5furl_5fparameter_23',['http_url_parameter',['../classstdex_1_1parser_1_1http__url__parameter.html',1,'stdex::parser']]], + ['http_5furl_5fpath_24',['http_url_path',['../classstdex_1_1parser_1_1http__url__path.html',1,'stdex::parser']]], + ['http_5furl_5fpath_5fsegment_25',['http_url_path_segment',['../classstdex_1_1parser_1_1http__url__path__segment.html',1,'stdex::parser']]], + ['http_5furl_5fport_26',['http_url_port',['../classstdex_1_1parser_1_1http__url__port.html',1,'stdex::parser']]], + ['http_5furl_5fserver_27',['http_url_server',['../classstdex_1_1parser_1_1http__url__server.html',1,'stdex::parser']]], + ['http_5fvalue_28',['http_value',['../classstdex_1_1parser_1_1http__value.html',1,'stdex::parser']]], + ['http_5fvalue_5fcollection_29',['http_value_collection',['../classstdex_1_1parser_1_1http__value__collection.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 c300f3928..5cee646d1 100644 --- a/search/all_8.js +++ b/search/all_8.js @@ -1,7 +1,7 @@ var searchData= [ ['id_0',['id',['../classstdex_1_1idrec_1_1record.html#a24e54541a476b01e332290c57a495926',1,'stdex::idrec::record']]], - ['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 >']]], + ['integer_1',['integer',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#af42e711d277a70c9624864e5f74a0bfd',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#acdbf4ca7d154c8723e8c318000853cce',1,'stdex::parser::basic_monetary_numeral::integer()']]], + ['interval_2',['interval',['../classstdex_1_1parser_1_1basic__parser.html#a0b46b1904e5af116c34a10087a5bc056',1,'stdex::parser::basic_parser::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 3cdf7103c..6a319fdec 100644 --- a/search/all_a.js +++ b/search/all_a.js @@ -3,7 +3,7 @@ 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_5fel_3',['m_el',['../classstdex_1_1parser_1_1basic__iterations.html#a8a06638fea659f03fddc9d41dfc4efac',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']]], diff --git a/search/all_b.js b/search/all_b.js index a7aa52727..754ac93a9 100644 --- a/search/all_b.js +++ b/search/all_b.js @@ -1,11 +1,11 @@ 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()']]], + ['negative_5fexp_5fsign_1',['negative_exp_sign',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#aaeec0779d7bd8f5429108be5b80ba95c',1,'stdex::parser::basic_scientific_numeral']]], + ['negative_5fsign_2',['negative_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a50271856db8a0e66bef91e4e05949bb3',1,'stdex::parser::basic_signed_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a76a2ae3e988b901ae4745a5ba8c22d46',1,'stdex::parser::basic_mixed_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a8e625f598299499379b3f9e067ad9384',1,'stdex::parser::basic_scientific_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#aef90350963cc64fb710674eedf260708',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']]], + ['nose_5',['nose',['../classstdex_1_1parser_1_1basic__emoticon.html#a865f28a87ef1561bca53445e2d1ae253',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()']]] + ['number_7',['number',['../classstdex_1_1parser_1_1basic__signed__numeral.html#ae43853317fc7ca8b6df2eda5d466a2aa',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 7db2a820a..b46ed0432 100644 --- a/search/all_d.js +++ b/search/all_d.js @@ -1,12 +1,13 @@ var searchData= [ ['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)']]] + ['parser_5fcollection_1',['parser_collection',['../classstdex_1_1parser_1_1parser__collection.html',1,'stdex::parser']]], + ['pointer_2',['pointer',['../classstdex_1_1vector__queue.html#abf6db5997ee272e03e8db1696a162148',1,'stdex::vector_queue']]], + ['pop_5fback_3',['pop_back',['../classstdex_1_1vector__queue.html#abd0fdb316392da76bac13bdd9d176eb6',1,'stdex::vector_queue']]], + ['pop_5ffront_4',['pop_front',['../classstdex_1_1vector__queue.html#adc05fb6cec951f736337dc340996271f',1,'stdex::vector_queue']]], + ['positive_5fexp_5fsign_5',['positive_exp_sign',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#abb5d26d24a7bb58d244b7d51722b117a',1,'stdex::parser::basic_scientific_numeral']]], + ['positive_5fsign_6',['positive_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#ac7c9dde1f5b3600a21c1b7935c0a5caf',1,'stdex::parser::basic_signed_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#aee09625077f56e1139e3a6c26e24e93f',1,'stdex::parser::basic_mixed_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a6e6e08dd8ade04c9aa85fba70e12b7c4',1,'stdex::parser::basic_scientific_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a23fedf450adaace6a027c7788e4a8c61',1,'stdex::parser::basic_monetary_numeral::positive_sign()']]], + ['progress_7',['progress',['../classstdex_1_1progress.html',1,'stdex']]], + ['push_5fback_8',['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_9',['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 779ed0513..32434eb99 100644 --- a/search/all_f.js +++ b/search/all_f.js @@ -1,6 +1,6 @@ var searchData= [ - ['scope_5fid_0',['scope_id',['../classstdex_1_1parser_1_1basic__ipv6__address.html#a2d16cb04a8b0ca4e1c55b9d681b2e417',1,'stdex::parser::basic_ipv6_address']]], + ['scope_5fid_0',['scope_id',['../classstdex_1_1parser_1_1basic__ipv6__address.html#a67486e83888f48afc62b031f745012c0',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']]], @@ -22,7 +22,7 @@ var searchData= ['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()']]], + ['special_5fsign_22',['special_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a38b8207e2b384ed5ffb3f2bfb3e8755f',1,'stdex::parser::basic_signed_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a46c6721810cc8f90218aee66a4c27132',1,'stdex::parser::basic_mixed_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a5ce9abfbcdc1247e8f504ae13492e7ea',1,'stdex::parser::basic_scientific_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#af0190fa4b0de5e894a14c05550e78365',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 c5c8d1196..92c29633c 100644 --- a/search/classes_0.js +++ b/search/classes_0.js @@ -30,25 +30,25 @@ var searchData= ['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_5fparser_30',['basic_parser',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], + ['basic_5fparser_3c_20char_20_3e_31',['basic_parser< char >',['../classstdex_1_1parser_1_1basic__parser.html',1,'stdex::parser']]], + ['basic_5fpermutation_32',['basic_permutation',['../classstdex_1_1parser_1_1basic__permutation.html',1,'stdex::parser']]], + ['basic_5fphone_5fnumber_33',['basic_phone_number',['../classstdex_1_1parser_1_1basic__phone__number.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_34',['basic_punct_cu',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5fpunct_5fcu_3c_20char_20_3e_35',['basic_punct_cu< char >',['../classstdex_1_1parser_1_1basic__punct__cu.html',1,'stdex::parser']]], + ['basic_5froman_5fnumeral_36',['basic_roman_numeral',['../classstdex_1_1parser_1_1basic__roman__numeral.html',1,'stdex::parser']]], + ['basic_5fscientific_5fnumeral_37',['basic_scientific_numeral',['../classstdex_1_1parser_1_1basic__scientific__numeral.html',1,'stdex::parser']]], + ['basic_5fscore_38',['basic_score',['../classstdex_1_1parser_1_1basic__score.html',1,'stdex::parser']]], + ['basic_5fsequence_39',['basic_sequence',['../classstdex_1_1parser_1_1basic__sequence.html',1,'stdex::parser']]], + ['basic_5fset_40',['basic_set',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fset_3c_20char_20_3e_41',['basic_set< char >',['../classstdex_1_1parser_1_1basic__set.html',1,'stdex::parser']]], + ['basic_5fsigned_5fnumeral_42',['basic_signed_numeral',['../classstdex_1_1parser_1_1basic__signed__numeral.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_43',['basic_space_cu',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5fcu_3c_20char_20_3e_44',['basic_space_cu< char >',['../classstdex_1_1parser_1_1basic__space__cu.html',1,'stdex::parser']]], + ['basic_5fspace_5for_5fpunct_5fcu_45',['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_46',['basic_space_or_punct_cu< char >',['../classstdex_1_1parser_1_1basic__space__or__punct__cu.html',1,'stdex::parser']]], + ['basic_5fstring_47',['basic_string',['../classstdex_1_1parser_1_1basic__string.html',1,'stdex::parser']]], + ['basic_5fstring_5fbranch_48',['basic_string_branch',['../classstdex_1_1parser_1_1basic__string__branch.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']]], diff --git a/search/classes_3.js b/search/classes_3.js index 204b3744b..18a83bcf2 100644 --- a/search/classes_3.js +++ b/search/classes_3.js @@ -9,25 +9,25 @@ var searchData= ['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_5flanguage_9',['http_language',['../classstdex_1_1parser_1_1http__language.html',1,'stdex::parser']]], + ['http_5fline_5fbreak_10',['http_line_break',['../classstdex_1_1parser_1_1http__line__break.html',1,'stdex::parser']]], + ['http_5fmedia_5frange_11',['http_media_range',['../classstdex_1_1parser_1_1http__media__range.html',1,'stdex::parser']]], + ['http_5fmedia_5ftype_12',['http_media_type',['../classstdex_1_1parser_1_1http__media__type.html',1,'stdex::parser']]], + ['http_5fparameter_13',['http_parameter',['../classstdex_1_1parser_1_1http__parameter.html',1,'stdex::parser']]], + ['http_5fprotocol_14',['http_protocol',['../classstdex_1_1parser_1_1http__protocol.html',1,'stdex::parser']]], + ['http_5fquoted_5fstring_15',['http_quoted_string',['../classstdex_1_1parser_1_1http__quoted__string.html',1,'stdex::parser']]], + ['http_5frequest_16',['http_request',['../classstdex_1_1parser_1_1http__request.html',1,'stdex::parser']]], + ['http_5fspace_17',['http_space',['../classstdex_1_1parser_1_1http__space.html',1,'stdex::parser']]], + ['http_5ftext_5fchar_18',['http_text_char',['../classstdex_1_1parser_1_1http__text__char.html',1,'stdex::parser']]], + ['http_5ftoken_19',['http_token',['../classstdex_1_1parser_1_1http__token.html',1,'stdex::parser']]], + ['http_5furl_20',['http_url',['../classstdex_1_1parser_1_1http__url.html',1,'stdex::parser']]], + ['http_5furl_5fparameter_21',['http_url_parameter',['../classstdex_1_1parser_1_1http__url__parameter.html',1,'stdex::parser']]], + ['http_5furl_5fpath_22',['http_url_path',['../classstdex_1_1parser_1_1http__url__path.html',1,'stdex::parser']]], + ['http_5furl_5fpath_5fsegment_23',['http_url_path_segment',['../classstdex_1_1parser_1_1http__url__path__segment.html',1,'stdex::parser']]], + ['http_5furl_5fport_24',['http_url_port',['../classstdex_1_1parser_1_1http__url__port.html',1,'stdex::parser']]], + ['http_5furl_5fserver_25',['http_url_server',['../classstdex_1_1parser_1_1http__url__server.html',1,'stdex::parser']]], + ['http_5fvalue_26',['http_value',['../classstdex_1_1parser_1_1http__value.html',1,'stdex::parser']]], + ['http_5fvalue_5fcollection_27',['http_value_collection',['../classstdex_1_1parser_1_1http__value__collection.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_8.js b/search/classes_8.js index 28b4850ba..300b5d7e4 100644 --- a/search/classes_8.js +++ b/search/classes_8.js @@ -1,4 +1,5 @@ var searchData= [ - ['progress_0',['progress',['../classstdex_1_1progress.html',1,'stdex']]] + ['parser_5fcollection_0',['parser_collection',['../classstdex_1_1parser_1_1parser__collection.html',1,'stdex::parser']]], + ['progress_1',['progress',['../classstdex_1_1progress.html',1,'stdex']]] ]; diff --git a/search/classes_b.js b/search/classes_b.js index 29d41be92..a27d9a257 100644 --- a/search/classes_b.js +++ b/search/classes_b.js @@ -1,4 +1,4 @@ var searchData= [ - ['tester_5fcollection_0',['tester_collection',['../classstdex_1_1parser_1_1tester__collection.html',1,'stdex::parser']]] + ['user_5fcancelled_0',['user_cancelled',['../classstdex_1_1user__cancelled.html',1,'stdex']]] ]; diff --git a/search/classes_c.js b/search/classes_c.js index a27d9a257..3c6b76703 100644 --- a/search/classes_c.js +++ b/search/classes_c.js @@ -1,4 +1,4 @@ var searchData= [ - ['user_5fcancelled_0',['user_cancelled',['../classstdex_1_1user__cancelled.html',1,'stdex']]] + ['vector_5fqueue_0',['vector_queue',['../classstdex_1_1vector__queue.html',1,'stdex']]] ]; diff --git a/search/classes_d.js b/search/classes_d.js deleted file mode 100644 index 3c6b76703..000000000 --- a/search/classes_d.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['vector_5fqueue_0',['vector_queue',['../classstdex_1_1vector__queue.html',1,'stdex']]] -]; diff --git a/search/searchdata.js b/search/searchdata.js index b65ca6dfd..50d1606aa 100644 --- a/search/searchdata.js +++ b/search/searchdata.js @@ -1,7 +1,7 @@ var indexSectionsWithContent = { 0: "abcdefghilmnoprstuv~", - 1: "beghilmnprstuv", + 1: "beghilmnprsuv", 2: "abcdefghilnoprstuv~", 3: "abcdefhimnpstv", 4: "cprsv" diff --git a/search/variables_0.js b/search/variables_0.js index dbafa9c7e..657682ae8 100644 --- a/search/variables_0.js +++ b/search/variables_0.js @@ -1,5 +1,5 @@ var searchData= [ ['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']]] + ['apex_1',['apex',['../classstdex_1_1parser_1_1basic__emoticon.html#a1b6b7a024dea373b890c1c4516f5e9a4',1,'stdex::parser::basic_emoticon']]] ]; diff --git a/search/variables_2.js b/search/variables_2.js index 7025570bf..96d41e887 100644 --- a/search/variables_2.js +++ b/search/variables_2.js @@ -2,5 +2,5 @@ var searchData= [ ['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']]] + ['currency_2',['currency',['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a62545d1c49178d4412da46d3cb2eba25',1,'stdex::parser::basic_monetary_numeral']]] ]; diff --git a/search/variables_3.js b/search/variables_3.js index 647967580..7232d2479 100644 --- a/search/variables_3.js +++ b/search/variables_3.js @@ -1,7 +1,7 @@ var searchData= [ ['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()']]], + ['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#ac1442f0871a1b43db2d4cd45e05803ac',1,'stdex::parser::basic_monetary_numeral::decimal()']]], + ['decimal_5fseparator_2',['decimal_separator',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#ae09233c93964704acf2bbd762fc14372',1,'stdex::parser::basic_scientific_numeral::decimal_separator()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a5393628850b747e190a4e0d50eb97144',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 ee52170cf..adfcfc721 100644 --- a/search/variables_4.js +++ b/search/variables_4.js @@ -1,8 +1,8 @@ var searchData= [ - ['emoticon_0',['emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html#a78c5dea0c060b158f41715f3000fcd70',1,'stdex::parser::basic_emoticon']]], + ['emoticon_0',['emoticon',['../classstdex_1_1parser_1_1basic__emoticon.html#ab746ed27e68939dd9e544b6e70476650',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']]] + ['exponent_5fsymbol_3',['exponent_symbol',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a66134e1cb72bdfb75f2ac634fee02ee3',1,'stdex::parser::basic_scientific_numeral']]], + ['eyes_4',['eyes',['../classstdex_1_1parser_1_1basic__emoticon.html#a2700be6652350445e571cf95940fd32a',1,'stdex::parser::basic_emoticon']]] ]; diff --git a/search/variables_5.js b/search/variables_5.js index c8e9f077c..f19af0676 100644 --- a/search/variables_5.js +++ b/search/variables_5.js @@ -1,4 +1,4 @@ var searchData= [ - ['fraction_0',['fraction',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a5b9ea33c95fbac28833b77f0ef7dba8f',1,'stdex::parser::basic_mixed_numeral']]] + ['fraction_0',['fraction',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a288fa70b3073080487d6d253600dca34',1,'stdex::parser::basic_mixed_numeral']]] ]; diff --git a/search/variables_7.js b/search/variables_7.js index cf7363647..02e142db4 100644 --- a/search/variables_7.js +++ b/search/variables_7.js @@ -1,5 +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']]] + ['integer_0',['integer',['../classstdex_1_1parser_1_1basic__mixed__numeral.html#af42e711d277a70c9624864e5f74a0bfd',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#acdbf4ca7d154c8723e8c318000853cce',1,'stdex::parser::basic_monetary_numeral::integer()']]], + ['interval_1',['interval',['../classstdex_1_1parser_1_1basic__parser.html#a0b46b1904e5af116c34a10087a5bc056',1,'stdex::parser::basic_parser']]] ]; diff --git a/search/variables_8.js b/search/variables_8.js index 26683fa4a..bf3f02f67 100644 --- a/search/variables_8.js +++ b/search/variables_8.js @@ -3,7 +3,7 @@ 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_5fel_3',['m_el',['../classstdex_1_1parser_1_1basic__iterations.html#a8a06638fea659f03fddc9d41dfc4efac',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']]], diff --git a/search/variables_9.js b/search/variables_9.js index 6584e909b..cf7052c83 100644 --- a/search/variables_9.js +++ b/search/variables_9.js @@ -1,9 +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']]], + ['negative_5fexp_5fsign_1',['negative_exp_sign',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#aaeec0779d7bd8f5429108be5b80ba95c',1,'stdex::parser::basic_scientific_numeral']]], + ['negative_5fsign_2',['negative_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a50271856db8a0e66bef91e4e05949bb3',1,'stdex::parser::basic_signed_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a76a2ae3e988b901ae4745a5ba8c22d46',1,'stdex::parser::basic_mixed_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a8e625f598299499379b3f9e067ad9384',1,'stdex::parser::basic_scientific_numeral::negative_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#aef90350963cc64fb710674eedf260708',1,'stdex::parser::basic_monetary_numeral::negative_sign()']]], + ['nose_3',['nose',['../classstdex_1_1parser_1_1basic__emoticon.html#a865f28a87ef1561bca53445e2d1ae253',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']]] + ['number_5',['number',['../classstdex_1_1parser_1_1basic__signed__numeral.html#ae43853317fc7ca8b6df2eda5d466a2aa',1,'stdex::parser::basic_signed_numeral']]] ]; diff --git a/search/variables_a.js b/search/variables_a.js index 3ec2825e8..f434cbfbe 100644 --- a/search/variables_a.js +++ b/search/variables_a.js @@ -1,6 +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()']]] + ['positive_5fexp_5fsign_1',['positive_exp_sign',['../classstdex_1_1parser_1_1basic__scientific__numeral.html#abb5d26d24a7bb58d244b7d51722b117a',1,'stdex::parser::basic_scientific_numeral']]], + ['positive_5fsign_2',['positive_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#ac7c9dde1f5b3600a21c1b7935c0a5caf',1,'stdex::parser::basic_signed_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#aee09625077f56e1139e3a6c26e24e93f',1,'stdex::parser::basic_mixed_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a6e6e08dd8ade04c9aa85fba70e12b7c4',1,'stdex::parser::basic_scientific_numeral::positive_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#a23fedf450adaace6a027c7788e4a8c61',1,'stdex::parser::basic_monetary_numeral::positive_sign()']]] ]; diff --git a/search/variables_b.js b/search/variables_b.js index caa979bbc..d22ecfce0 100644 --- a/search/variables_b.js +++ b/search/variables_b.js @@ -1,8 +1,8 @@ var searchData= [ - ['scope_5fid_0',['scope_id',['../classstdex_1_1parser_1_1basic__ipv6__address.html#a2d16cb04a8b0ca4e1c55b9d681b2e417',1,'stdex::parser::basic_ipv6_address']]], + ['scope_5fid_0',['scope_id',['../classstdex_1_1parser_1_1basic__ipv6__address.html#a67486e83888f48afc62b031f745012c0',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()']]], + ['special_5fsign_2',['special_sign',['../classstdex_1_1parser_1_1basic__signed__numeral.html#a38b8207e2b384ed5ffb3f2bfb3e8755f',1,'stdex::parser::basic_signed_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__mixed__numeral.html#a46c6721810cc8f90218aee66a4c27132',1,'stdex::parser::basic_mixed_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__scientific__numeral.html#a5ce9abfbcdc1247e8f504ae13492e7ea',1,'stdex::parser::basic_scientific_numeral::special_sign()'],['../classstdex_1_1parser_1_1basic__monetary__numeral.html#af0190fa4b0de5e894a14c05550e78365',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/sgml_8hpp_source.html b/sgml_8hpp_source.html index 5535cd818..ef65e5292 100644 --- a/sgml_8hpp_source.html +++ b/sgml_8hpp_source.html @@ -364,7 +364,7 @@ $(function() { diff --git a/sgml__unicode_8hpp_source.html b/sgml__unicode_8hpp_source.html index c8973adbe..ba327cd28 100644 --- a/sgml__unicode_8hpp_source.html +++ b/sgml__unicode_8hpp_source.html @@ -3170,7 +3170,7 @@ $(function() { diff --git a/string_8hpp_source.html b/string_8hpp_source.html index bf15fddba..e9ef38584 100644 --- a/string_8hpp_source.html +++ b/string_8hpp_source.html @@ -547,7 +547,7 @@ $(function() { diff --git a/structstdex_1_1interval-members.html b/structstdex_1_1interval-members.html index 5de9dbd29..1a2eb533e 100644 --- a/structstdex_1_1interval-members.html +++ b/structstdex_1_1interval-members.html @@ -91,7 +91,7 @@ $(function() { diff --git a/structstdex_1_1interval.html b/structstdex_1_1interval.html index c6aa7906a..62a6dce52 100644 --- a/structstdex_1_1interval.html +++ b/structstdex_1_1interval.html @@ -304,7 +304,7 @@ template<class T > diff --git a/structstdex_1_1mapping-members.html b/structstdex_1_1mapping-members.html index dc3b971f2..32375a9e9 100644 --- a/structstdex_1_1mapping-members.html +++ b/structstdex_1_1mapping-members.html @@ -90,7 +90,7 @@ $(function() { diff --git a/structstdex_1_1mapping.html b/structstdex_1_1mapping.html index 2443cf694..b351eedf8 100644 --- a/structstdex_1_1mapping.html +++ b/structstdex_1_1mapping.html @@ -124,7 +124,7 @@ struct stdex::mapping< T >

    Maps index in source string to index in

    diff --git a/structstdex_1_1no__delete-members.html b/structstdex_1_1no__delete-members.html index 6800a3791..1cdabcb33 100644 --- a/structstdex_1_1no__delete-members.html +++ b/structstdex_1_1no__delete-members.html @@ -86,7 +86,7 @@ $(function() { diff --git a/structstdex_1_1no__delete.html b/structstdex_1_1no__delete.html index 55b2be732..7fc38429d 100644 --- a/structstdex_1_1no__delete.html +++ b/structstdex_1_1no__delete.html @@ -105,7 +105,7 @@ struct stdex::no_delete< T >

    Noop deleter.

    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 index a8519fd1c..2d75b0f39 100644 --- 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 @@ -86,7 +86,7 @@ $(function() { 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 index 50687d017..27c05daaf 100644 --- a/structstdex_1_1no__delete_3_01_t_0f_0e_4.html +++ b/structstdex_1_1no__delete_3_01_t_0f_0e_4.html @@ -106,7 +106,7 @@ struct stdex::no_delete< T[]>

    Noop array deleter.

    diff --git a/structstdex_1_1parser_1_1http__factor__more-members.html b/structstdex_1_1parser_1_1http__factor__more-members.html index 19d62d8f1..911f15dbf 100644 --- a/structstdex_1_1parser_1_1http__factor__more-members.html +++ b/structstdex_1_1parser_1_1http__factor__more-members.html @@ -84,7 +84,7 @@ $(function() { diff --git a/structstdex_1_1parser_1_1http__factor__more.html b/structstdex_1_1parser_1_1http__factor__more.html index 3ebb3b959..cf629a478 100644 --- a/structstdex_1_1parser_1_1http__factor__more.html +++ b/structstdex_1_1parser_1_1http__factor__more.html @@ -93,7 +93,7 @@ constexpr bool operator()< diff --git a/vector__queue_8hpp_source.html b/vector__queue_8hpp_source.html index 7eec3723a..bc23c2ecc 100644 --- a/vector__queue_8hpp_source.html +++ b/vector__queue_8hpp_source.html @@ -386,7 +386,7 @@ $(function() {