Zach Laine
9ebc984ff8
Add a type trait, "attribute", and associated alias attribute_t, that provide
...
the attribute type for a parser Parser used to parse range R.
Fixes #111 .
2024-03-08 21:19:36 -06:00
Zach Laine
125ddf43c2
Change the way action_parser calls invocables, to make it easier to write
...
those invocables.
Fixes #106 .
2024-03-08 21:19:36 -06:00
Zach Laine
a2b7afc3a0
Grooming.
2024-03-08 21:19:36 -06:00
Zach Laine
27506af2f3
Constrain parse() overloads that take an out-attribute Attr & -- but no
...
skipper -- so that Attr is not derived from a specialization of
parser_interface. This prevents this from being the best overload when using
a mutable skipper, and producing lots of diagnostics that say the skipper
(which would be mistakenly bound to Attr &) is not assignable from whatever
the attribute type is.
Fixes #105 .
2024-03-08 21:19:36 -06:00
Zach Laine
27400587d5
Add Phil Endecott's example latlong parser from the Boost mailing list review
...
as a test.
2024-03-08 21:19:29 -06:00
Zach Laine
7a9126432a
Fix an error in or_parser, which was clearing out-arg attributes when an
...
alternative failed.
2024-03-08 21:19:29 -06:00
Zach Laine
ca1ad064ff
Use a more compelling example in the example code for replace().
...
Fixes #96 .
2024-03-01 22:25:47 -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