2
0
mirror of https://github.com/boostorg/parser.git synced 2026-01-27 19:12:13 +00:00
Commit Graph

433 Commits

Author SHA1 Message Date
Zach Laine
dbfc8da474 Add missing #include <iterator>. 2024-03-27 21:24:26 -05:00
Zach Laine
a49c9521b5 Don't include <version>, since it turns out that it's a C++20 header. Who
knew?
2024-03-27 00:55:54 -05:00
Zach Laine
843867944b Add documentation of the new VS output trace/error_Handler feature.
Partially addresses #124.
2024-03-26 04:14:17 -05:00
Tobias Loew
56d043b3a4 Add VS debugger output error_handler and trace support.
Fixes #124.
2024-03-26 04:14:17 -05:00
Zach Laine
8e39ad067b Change tests from GTest to Boost.Test. Remove Goolge.{Test,Benchmark}.
Fixes #165.
2024-03-24 22:29:10 -05:00
Zach Laine
abbab9017f Address gaps in code coverage; fix a couple of small errors in the trace code. 2024-03-23 23:40:08 -05:00
Zach Laine
317248843b BOOST_PARSER_DISABLE_HANA_TUPLE - > BOOST_PARSER_USE_HANA_TUPLE; disable Hana
by default.

Fixes #155.
2024-03-23 22:26:16 -05:00
Zach Laine
d5eba27273 Honor the use of BOOST_DISABLE_ASSERTS even when Boost.Assert is not available. 2024-03-23 22:26:16 -05:00
Zach Laine
f461b38850 Address TODO about BOOST_PARSER_ASSERT vs. BOOST_PARSER_DEBUG_ASSERT in
quoted_string_parser.
2024-03-23 22:26:13 -05:00
Zach Laine
744fd1bdc0 Add diagnostic text to symbols, like that for rules.
Fixes #164.
2024-03-20 03:18:09 -05:00
Zach Laine
24288a03a2 Add quoted_string, to automate probably the most commonly-written parser of
all time -- the quoted string.
2024-03-11 02:38:26 -05:00
Zach Laine
824a208133 Add a permutation parser.
Fixes #159.
2024-03-10 17:31:50 -05:00
Zach Laine
f113d302de !success || !detail::gen_attrs(flags) -> !success in condition to reset
attribute in repeat_parser.  Looks like copy pasta.
2024-03-09 17:41:03 -06:00
Zach Laine
6d253beaac Cruft removal. 2024-03-09 17:41:03 -06:00
Zach Laine
2fa916530e Add missing optional<Container> overloads of detail::append. 2024-03-09 17:41:03 -06:00
Zach Laine
3ff6a575ad Add a TODO. 2024-03-08 21:19:37 -06:00
Zach Laine
f55d3779de Define BOOST_PARSER_USE_CONCEPTS to be 1 when running Doxygen. This gets
concepts constraints on template parameters to show up.  Also explicitly state
requirements in the Doxygen strings for anything that adds constraints via
requires clauses, since those do not show up in Doxygen.

Fixes #109.
2024-03-08 21:19:37 -06:00
Zach Laine
87b50154cf Fix incorrect attribute returned by a rule in some cases. The problem was
that the changes to support recursive rules made all rules use the out-arg
overload of parse_rule.  This is wrong.  Now, rules use the
attribute-returning overload unless asked explicitly to use the out-arg one,
*or* if the rule is being invoked recursively, and we are in an iteration
after the 0th.

Fixes #125.
2024-03-08 21:19:37 -06:00
Zach Laine
1e011a1fac Add transform(f)[p] attribute-transforming directive.
Fixes #153.
2024-03-08 21:19:37 -06:00
Zach Laine
456a81155a When there are alternate implementations controlled by __has_include, put each
alternate implementation in its own inline namespace.

Fixes #151.
2024-03-08 21:19:37 -06:00
Zach Laine
947fd7782d Explicitly state that char_, cp, and cu can be used without args in their API
docs.

Fixes #150.
2024-03-08 21:19:37 -06:00
Zach Laine
cc9b74cb2d Add no_case support to symbol tabels.
Fixes #149.
2024-03-08 21:19:37 -06:00
Zach Laine
e129193296 Now that the library requires C++17, use std::any instead of any_copyable. 2024-03-08 21:19:37 -06:00
Zach Laine
4a9a45f856 Warning mitigation. 2024-03-08 21:19:37 -06:00
Zach Laine
9af9b5e373 Use parser::get() instead of operator[] in the implementation of
param_t::operator().
2024-03-08 21:19:36 -06:00
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