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

177 Commits

Author SHA1 Message Date
Zach Laine
824a208133 Add a permutation parser.
Fixes #159.
2024-03-10 17:31:50 -05:00
Zach Laine
262c19e441 Explain how seq_parser combining logic interacts with directives.
Fixes #161.
2024-03-09 20:54:10 -06:00
Zach Laine
a19af1b5ce Expanded the text and examples, plus provided cross-references to more
extended examples, in The Parse Context.

Fixes #145.
2024-03-08 21:19:37 -06:00
Zach Laine
4c0377a5ae Explicitly state that null-terminated string pointers are accepted by
*parse(), in the list of properties common to all the overloads.
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
1e011a1fac Add transform(f)[p] attribute-transforming directive.
Fixes #153.
2024-03-08 21:19:37 -06:00
Zach Laine
a07efbbd72 Add note to Memory Allocations that the symbol tables are implemented using a
trie, and that those have lots of allocated nodes.
2024-03-08 21:19:37 -06:00
Zach Laine
5dc826c89d Explicitly state in the Semantic Actions page of the tutorial that attaching a
semantic action nullifies the attribute type.

Fixes #148.
2024-03-08 21:19:37 -06:00
Zach Laine
374cad3c35 Get specific about what RESOLVE() means, and link usage of it to the place
where it is defined.

Fixes #144.
2024-03-08 21:19:37 -06:00
Zach Laine
b7f6cd8dbf Add a section about when to use auto-generated attributes vs. using semantic
actions.

Fixes #110.
2024-03-08 21:19:36 -06:00
Zach Laine
aea0ff8dab Removed the very small example of how to use rules with a much longer one
based on a real section of YAML.

Fixes #104.
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
0a945decb6 Add a small section to the end of the Unidoce Support page indicating that
Parser is normalization-agnostic.
2024-03-08 21:19:36 -06:00
Zach Laine
3e047101f6 Doc copy editing.
Fixes #135.
Fixes #136.
Fixes #137.
Fixes #138.
Fixes #139.
Fixes #142.
2024-03-08 21:19:36 -06:00
Zach Laine
40b495ae5d Add a note about which header includes the as_utfN adaptors to "Explicit
transcoding".

Fixes #119.
2024-03-08 21:19:36 -06:00
Zach Laine
42f66d9079 Use some of the examples and wording from the part of the intro where I talk
about X3 rules in the More About Rules section.

Fixes #117.
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
ed6e1b4a2c Create a Cheat Sheet page in the docs, right before the tutorial. This
contains all the tables from elsewhere in the docs, gathered in one spot.

Fixes #108.
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
db79d00848 Remove the empty concepts.hpp file from the doc build, due to the way that
Doxygen+Quickbook seems not to handle concepts.

Fixes #102.
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
edff0b29da Fix broken Quickbook link to "Expectation points" section.
Fixes #112.
2024-03-08 21:19:29 -06:00
Zach Laine
f3b5bcdd97 Expand explanation in Intro about why Parser is preferable to X3.
Fixes #114.
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
0ea1516b6e Call out the constraint on the ReplacementV template parameter to replace().
Partially addresses #97.
2024-03-01 22:25:47 -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