2
0
mirror of https://github.com/boostorg/parser.git synced 2026-01-21 17:12:16 +00:00
Commit Graph

315 Commits

Author SHA1 Message Date
Zach Laine
e3fbd6c849 WIP_quoted_string 2024-02-22 00:58:00 -06:00
Zach Laine
2b4243151a Add Phil Endecott's example latlong parser from the Boost mailing list review
as a test.
2024-02-22 00:56:54 -06:00
Zach Laine
63884d2efa Fix an error in seq_parser when a non-attribute parser fails internally, after
the successful parse of an adjacent attribute-generating parser.  Since the
non-attribute parser points to the same spot in the output tuple, if the
non-attribute parser fails internally, it is likely to do "out_attr =
decltype(out_attr)()", which erases the previous seuccessfully generated
attribute.
2024-02-22 00:13:07 -06:00
Zach Laine
3487211426 Use a more compelling example in the example code for replace().
Fixes #96.
2024-02-19 21:50:36 -06:00
Zach Laine
4287c9b7b3 Fix transform_replace* in C++20 mode on GCC < 12. 2024-02-11 18:56:59 -06:00
Zach Laine
f99ae3b94a Use bp::get() instead of Hana literals in example, so as not to break non-Hana
builds.
2024-02-11 16:54:44 -06:00
Zach Laine
b6b77bac3c Explain more fully in More about Rules that you need to write a semantic
action sometimes for a rule, and under what cirumstances you do.

Fixes #93.
2024-02-11 16:46:47 -06:00
Zach Laine
e6b59a4784 Fix GCC 12 C++20 build. 2024-02-11 00:24:39 -06:00
Zach Laine
2f8270809c Disable transform_replace* for GCC < 12 in C++20 mode. 2024-02-11 00:24:39 -06:00
Zach Laine
cdb86d8c23 Add special-case logic for detail::range_utf_format() to recognize that
utf8_view is UTF-8-encoded in non-concpets mode.
2024-02-10 23:25:54 -06:00
Zach Laine
d0208fb12c Add transform_replace range adaptor and transform_replace_view. 2024-02-10 18:42:18 -06:00
Zach Laine
129a0ec531 Add a test to parser.cpp that covers #90. This just verifies that #90 is not
an issue.

Fixes #90.
2024-02-04 16:52:40 -06:00
Zach Laine
bb3f66db5f Document The incompatibility of tuple->aggregate conversions with assignment
to variants.

Fixes #91.
2024-02-04 16:16:47 -06:00
Zach Laine
c990799c51 Add spacing to some tests to make sure that raw[] functions correctly with a
skipper.
2024-02-01 22:55:42 -06:00
Zach Laine
7f287c5525 Fix error in no_case[] evaluation. 2024-02-01 20:38:41 -06:00
Zach Laine
d0cf708ef5 Address TODO about needed fix in compile_seq_attribute test. 2024-01-31 20:52:16 -06:00
Zach Laine
ec5fc2ed85 Turn detail::char_{set,subranges} into structs to fix MSVC build. 2024-01-30 23:31:01 -06:00
Zach Laine
4b59719e44 Add Unicode versions of most of the ascii namespace parsers; remove the ascii
namespace.
2024-01-29 23:36:03 -06:00
Zach Laine
495a3fffbf Add another case similar to the failing case in compile_seq_attribute.cpp. 2024-01-28 21:24:53 -06:00
Zach Laine
3d528fa531 Remove mooted TODOs. 2024-01-28 21:23:06 -06:00
Zach Laine
68c33a0181 Address TODO about non-obviously ill-formed code using merge[]. 2024-01-28 20:54:28 -06:00
Zach Laine
b58b3a0779 Address TODO about documenting the unavailability of replace{,_view} on MSVC
in C++17 mode.
2024-01-28 20:54:24 -06:00
Zach Laine
5b7889df61 Address a TODO about documenting part of the loose attribute match behavior. 2024-01-28 20:54:22 -06:00
Zach Laine
f7d26dabae Remove moot TODO. 2024-01-28 20:54:18 -06:00
Zach Laine
4d14fba7fd Change concept can_utf_view to use the form MSVC uses in its std lib, and turn
off code relying on alias CTAD on MSVC.  Add test cases for {w,}string{,_view}
| as_utfN in C++20 builds.
2024-01-28 15:34:51 -06:00
Zach Laine
9d1a6aeeb3 Extend all_t test to test arrays; fix errors. 2024-01-28 14:03:02 -06:00
Zach Laine
33edb6c4e8 Add all_t, and use it in non-concepts builds.
Fixes #85.
2024-01-28 02:07:07 -06:00
Zach Laine
de74eecabe Fix broken macro guard on replace join_compat test. 2024-01-28 02:01:47 -06:00
Zach Laine
ab4d708c30 Set the out-param to Attr() on parse failure (for the overloads taking an
out-param), making alls to parse() consistent with calls to parsers. Parsers
clear the attribute on failure. Add a section to rationale on why this is the
right choice.

Fixes #78.
2024-01-28 01:17:17 -06:00
Zach Laine
e7efe90a03 In detail::assign, static_assert that the assignment is not arithmetic-type ->
std::string.

Fixes #76.
2024-01-28 01:17:06 -06:00
Zach Laine
3549ad64a8 Disable replace/replace_view entirely in MSVC C++17 builds. 2024-01-23 03:36:38 -06:00
Zach Laine
319b39a67b Fix MSVC build. 2024-01-23 02:44:30 -06:00
Zach Laine
edebfc3f57 Fix tests in C++20 mode on older GCCs. 2024-01-22 19:39:55 -06:00
Zach Laine
385a6a4ca6 Fix C++20 builds on older GCCs. 2024-01-22 19:28:48 -06:00
Zach Laine
a68d4f61b2 Add replace_view and range adaptor replace. 2024-01-22 01:11:17 -06:00
Zach Laine
d1309560df Add detail::maybe_const, and use it properly in search_all_view and
split_view.
2024-01-21 15:40:51 -06:00
Zach Laine
bbb1cba804 Fix the broken support for operating on C-style strings in search{(),_all} and
split.
2024-01-21 15:31:31 -06:00
Zach Laine
a68c1d3187 Add documentation section on algorithms views and view adaptors, to document
search(), search_all, and split.

Partially addresses #64.
2024-01-20 03:11:43 -06:00
Zach Laine
5adef16a4d Add split_view + split range adaptor. split produces a range of subranges,
each of which is a nonoveralpping match of the given parser.

Fixes #64.
2024-01-19 21:19:53 -06:00
Zach Laine
aa76e9f85e Add search() algorithm, and search_all_view + search_all range adaptor.
search() finds the first occurrence of a match of the given parser.
search_all produces a range of subranges, each of which is a nonoveralpping
match of the given parser.

Partially addresses #64.
2024-01-19 21:19:53 -06:00
Zach Laine
591ac9921b Remove BOOST_PARSER_DEFINE_RULE now that BOOST_PARSER_DEFINE_RULES is always
available.

Partially addresses #71.
2024-01-19 21:06:33 -06:00
Zach Laine
ffdc3f967b Add docs for the new automatic subitutability of non-aggregate class types for
tuples.

Partially addresses #49.
2024-01-19 20:15:07 -06:00
Zach Laine
62002e886a Add support for parsing into an arbitrary class type T, as long as the default
attribute we're parsing is a tuple whose elements can be used to construct T.
Needs docs.

Fixes #49.
2024-01-19 01:00:39 -06:00
Zach Laine
471269a374 Define BOOST_PARSER_SUBRANGE, and use it consistently. subrange.hpp is now
only included in C++17 builds.

Fixes #69.
2024-01-17 00:02:28 -06:00
Zach Laine
2054eab1bd Disable string_view[] code in parser.cpp in pre-C++20 builds. 2024-01-15 00:51:00 -06:00
Zach Laine
9187bf851e Add section on raw[] and string_view[] to docs.
Fixes #59.
2024-01-14 20:57:43 -06:00
Zach Laine
7103755e59 Comment out test code that exercises spooky behavior on MSVC. 2024-01-15 02:55:30 -06:00
Zach Laine
b055b21f1f Address TODO about string_view_parser needing tests. 2024-01-14 17:41:38 -06:00
Zach Laine
bf06cfc57a Fix string_view_parser, broken by the most recent boost::text import. 2024-01-14 16:47:50 -06:00
Zach Laine
d17268dec7 Add section about merge[] and separate[] to the docs.
Partially addresses #55.
2024-01-14 02:45:05 -06:00