Zach Laine
f05b25ea1d
Use detail::print() to print the values in switch alternatives, instead of
...
printing them directly.
2024-03-08 21:19:36 -06:00
Zach Laine
f57de243a4
Put #ifndef BOOST_PARSER_DOXYGEN around all the structs in parser.hpp that
...
were forwrard declared in parser_fwd.hpp. This was causing them to show up
without any documentation string, or default tempalte parameters!
2024-03-08 21:19:36 -06:00
Zach Laine
02c140a251
MSVC warning mitigation.
...
Fixes #120 .
Fixes #121 .
Fixes #122 .
Fixes #123 .
2024-03-08 21:19:36 -06:00
Zach Laine
0e2936e20d
Fix broken constraint on 2-param utf_iterator ctor in C++17 mode.
2024-03-08 21:19:36 -06:00
Zach Laine
4235706764
Move DoCallbacks NTTP for all the parsers' call() members to the context as a
...
simplification.
2024-03-08 21:19:36 -06:00
Zach Laine
0056bd25d1
Add a DoTrace template parameter to the context, and to scoped_trace_t;
...
specialize scoped_trace_t for DoTrace == false to be empty.
This is an attempt to address #152 .
2024-03-08 21:19:36 -06:00
Zach Laine
64e76e7b58
GCC warning mitigation.
2024-03-08 21:19:36 -06:00
Zach Laine
ed9fcc6f3a
Don't construct or use a stringstream in every parser when tracing is
...
disabled(!).
2024-03-08 21:19:36 -06:00
Zach Laine
9b47f3c551
Work around what looks like a Clang concept bug, in which two identical
...
declarations are parsed to be non-identical.
Fixes #130 .
2024-03-08 21:19:36 -06:00
Zach Laine
51d9b81927
Add USE_CONCEPTS guard around unguarded concept.
...
Fixes #129 .
2024-03-08 21:19:36 -06:00
Zach Laine
7ae0f9f817
Add missing #include <algorithm> to error_handling.hpp.
2024-03-08 21:19:36 -06:00
Zach Laine
e3c46c10c2
Use std::from_chars, if available; otherwise, use boost::charconv::from_chars,
...
if available; otherwise, use the Spirit X3 number parsers.
Fixes #113 .
2024-03-08 21:19:36 -06:00
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
112290f63e
Cruft removal.
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
eda6238180
Be more explicit in the reference nad tutorial descriptions of
...
BOOST_PARSER_DEFINE_RULES about what exactly it does and how to use it.
Fixes #101 .
2024-03-08 21:19:36 -06:00
Zach Laine
2697eebffd
Remove crufty claim in the reference docs for BOOST_PARSER_DEFINE_RULES that
...
it is only conditionally available.
Fixes #100 .
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
4ff205d6ec
Remove superfluous utf_pointer concept.
...
Partially addresses #97 .
2024-03-01 22:25:47 -06:00
Zach Laine
875eb9e4aa
Adjust outdated comment.
2024-02-11 18:55:01 -06:00
Zach Laine
5c7b907904
Cruft removal.
2024-02-11 18:14:40 -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
150e09e309
Flesh out conditional transform_replace_view enable_borrowed_range; fix
...
missing std::ranges:: on it and other enable_borrowed_range specializations.
2024-02-10 19:43:07 -06:00
Zach Laine
d0208fb12c
Add transform_replace range adaptor and transform_replace_view.
2024-02-10 18:42:18 -06:00
Zach Laine
ae0448e321
Restore enable_variant, to fix errors in printing of the badly-broken
...
boost::variant.
Fixes #88 .
2024-02-04 16:16:47 -06:00
Zach Laine
7f287c5525
Fix error in no_case[] evaluation.
2024-02-01 20:38:41 -06:00
Zach Laine
f9ebf50228
auto -> bool for null_sentinel_t op== for compatibility with
...
equality_comparable_with on Clang.
2024-02-01 17:21:53 -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
e06f415134
Fix broken macro guards on use of std::ranges which was breaking GCC >= 12.
2024-01-29 00:54:22 -06:00
Zach Laine
7d8f4d811a
Fix older GCC builds.
2024-01-28 16:39:34 -06:00
Zach Laine
a337c16e3c
Add missing #include <array> to all_t.hpp.
2024-01-28 16:23:40 -06:00
Zach Laine
2e49e5d61b
Another MSVC C++17 build fix; make text::detail::ref_view reject rvalues.
2024-01-28 16:18:43 -06:00
Zach Laine
df6a3db364
Fix MSVC C++17 build, by adjusting the heuristic used by view trait used in
...
all().
2024-01-28 15:49:04 -06:00
Zach Laine
7d983817cc
Re-enable conditional use of concepts in detail::text code on MSVC.
2024-01-28 15:38:15 -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
01f2f21899
Fix MSVC build.
2024-01-28 14:09:12 -06:00
Zach Laine
473910bd52
Remove spurious is_pointer_v check in detail::to_range.
2024-01-28 14:04:25 -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
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
ac84ed63b6
Cruft removal.
2024-01-27 20:36:00 -06:00
Zach Laine
fc6a643a99
Add a real no-format enumerator to text::format.
2024-01-27 20:35:56 -06:00
Zach Laine
c328a18121
Add a Doxygen comment description for replace_view.
2024-01-22 21:51:23 -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
275874f3c6
Fix misplaced #endif.
2024-01-23 03:08:34 -06:00