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

155 Commits

Author SHA1 Message Date
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
c12c512a94 Call out the constraint on the ReplacementV template parameter to replace().
Partially addresses #97.
2024-02-19 21:33:52 -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
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
f326cd9d23 Add a note about using "| join" to the transform_replace docs. 2024-02-11 16:10:00 -06:00
Zach Laine
ab20bdd87f Add note about how to write a lambda directly in a semantic action. Modify
the claim that directives can be spotted by looking for "[]", by mentioning
the exception of semantic actions.

Partially addresses #93.
2024-02-11 16:08:32 -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
d0208fb12c Add transform_replace range adaptor and transform_replace_view. 2024-02-10 18:42:18 -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
09322b8eb6 Add more information about problematic alternative parsers.
Fixes #92.
2024-02-04 16:16:47 -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
47061a8716 Remove some stray references to the now-removed ascii:: namespace parsers. 2024-01-31 20:31:35 -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
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
935165b798 Explain more fully why error messages are only generated at failed expectation
points.

Fixes #80.
2024-01-28 20:54:16 -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
4380d278aa Make it clearer, in both sections about rules, that not providing an attribute
template paramter implies that the rule has no attribute.

Fixes #75.
2024-01-28 01:16:59 -06:00
Andrzej Krzemieński
9fead755ca docs: typo in __no_case 2024-01-27 12:34:06 -06:00
Zach Laine
a68d4f61b2 Add replace_view and range adaptor replace. 2024-01-22 01:11:17 -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
52e8b187e8 Document BOOST_PARSER_SUBRANGE in Configuration and Optional Features.
Fixes #73.
2024-01-19 21:17:25 -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
ce7804a003 Refer to the text asociated with a rule as diagnostic text rather than a name,
in the code and the docs.

Fixes #72.
2024-01-19 20:54:58 -06:00
Zach Laine
4c3e0a7448 Add another reason for using rules -- callback parsing. 2024-01-19 20:54:51 -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
c2ba50de51 Add a note to the beginning of Attribute Generation about the assumption that
attribute types are semiregular.

Fixes #65.
2024-01-15 16:46:58 -06:00
Zach Laine
d28ac53d9f Fix "next section" that moved in the docs, by naming the exact section.
Thanks, Andrzej!
2024-01-15 16:37:43 -06:00
Zach Laine
92c16cbfae Add section about writing your own parsers.
Fixes #58.
2024-01-15 16:19:39 -06:00
Zach Laine
d59e0528b2 Consolidate documentation on eror handlers into the Error Handling and
Debugging section, and add an example of how to write your own error handler.

Fixes #43.
2024-01-15 02:28:50 -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
36ef6d1ae7 Add missing mention of merge[] and separate[] to the Directives section of the tutorial. 2024-01-14 20:57:43 -06:00
Zach Laine
62f47c73c8 Add section to rationale on why the attribute compatability rules are stricter than in Spirit.
Fixes #61.
2024-01-14 16:18:19 -06:00
Zach Laine
8a9a851acb Restore an example of how loose attribute rules are looser at the top-level parse than within the middle of the parse.
Partially addresses #61.
2024-01-14 16:18:19 -06:00
Zach Laine
92be502e79 Copy editing. 2024-01-14 16:18:19 -06:00
Zach Laine
fe06d6b477 Doc thinko. 2024-01-14 16:18:19 -06:00
Zach Laine
1715433a4e Explain that or_parser deduplicated the template parameters of its std::variant attributes.
Fixes #62.
2024-01-14 16:18:19 -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
Zach Laine
6fc7eefb67 Add a Rationale section on the special treatment of sequences of characters. 2024-01-14 02:45:05 -06:00
Zach Laine
3e7812ebe5 Simplify detail::is_variant and remove enable_variant. Turns out
detail::is_variant_v is not actually used, except in one place in the printing
code, and it's not even essential there.
2024-01-12 21:45:39 -06:00
Zach Laine
c8ce2cace5 Add a special seq_parser combining rule that makes a std::string ot of two
adjacent char/char32_t values.

Partially addresses #55.
2024-01-11 19:24:43 -06:00
Zach Laine
b6ffe5fbe3 Change detail::sequence_of and detail::container_and_value_type so that they
generate std::strings from repeated char32_ts and combine char32_ts with
adjacent strings.  Update docs accordingly.

Partially addresses #55.
2024-01-10 22:17:53 -06:00
Zach Laine
a8dc1f4cb8 Flesh out the More About Rules page.
Fixes #39.
2024-01-09 23:06:18 -06:00
Zach Laine
cb5a5da717 In Rule Parsers, explain that the generated overloads of parse_rule() are not
something the user ever needs to use, and but a link to the more detailed
section on Rules at the end of the section.

Partially addresses #39.
2024-01-09 23:06:16 -06:00
Zach Laine
98daf46a5e Add more explanatory text to Parsing In Detail.
Partially addresses #41.
2024-01-08 18:14:32 -06:00
Zach Laine
1bb76b13bd Add a description of operator> to the Backtracking section.
Fixes #42.
2024-01-07 22:54:00 -06:00
Zach Laine
43d65d3e4a Add new doc sections Parsing in Detail and Backtracking that describe those
semantics, and how parsers are represented in code.

Fixes #41.
Fixes #35.
2024-01-07 22:32:27 -06:00
Zach Laine
660d90dba1 Document requirements on external optional and variant types. 2024-01-07 22:32:22 -06:00