2
0
mirror of https://github.com/boostorg/parser.git synced 2026-02-02 09:02:12 +00:00
Commit Graph

761 Commits

Author SHA1 Message Date
Zach Laine
a956cd962e Comments on static_asserts to text in the static_asserts instead. 2024-01-14 16:43:58 -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
02447e92a2 Remove template head from lambda, and just use auto param instead, to mollify
MSVC.
2024-01-14 04:54:32 -06:00
Zach Laine
93d3708010 Disable optional check on older GCCs. 2024-01-13 21:30:35 -06:00
Zach Laine
16cd1894e2 Work around GCC12 bug involving the use of declval. 2024-01-13 21:26:49 -06:00
Zach Laine
6a2a1229a4 GCC9 warning mitigation. 2024-01-13 21:16:24 -06:00
Zach Laine
1566dffe1f Fix GCC and Clang builds. 2024-01-13 21:11:43 -06:00
Zach Laine
251dcc9436 Implement the merge[] and separate[] directives that control attribute
generation.  Needs docs.

Fixes #55.
2024-01-13 20:57:01 -06:00
Zach Laine
e6a9763b86 Cruft removal. 2024-01-13 14:15:49 -06:00
Zach Laine
cf9545fa7c Remove mooted TODOs. 2024-01-12 22:35:04 -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
69e4f47bff Work around the busted-ass static_asserting op<< in boost::optional by
recognizing all enabled optionals, and printing them the same as we do
std::optional.  Applied the same logic to variants too, for consistency.
2024-01-12 21:45:39 -06:00
Zach Laine
03c7cc6bbb Fix broken enable_variant decls in tuple_aggregate test. 2024-01-12 21:45:39 -06:00
Zach Laine
c2dd86cc68 Remove generated parser tests (cruft). 2024-01-11 23:18:17 -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
257dcd36aa Add a static_assert in seq_parser that indicates the most likely source of
compilation failure there -- attribute incompatibility.

Partially addresses #56.
2024-01-08 18:31:54 -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
Zach Laine
ecd40e1e7a Doc typo. 2024-01-07 21:22:07 -06:00
Zach Laine
7b0327f167 Guard the operator<< defined in tuple_aggregate with TEST_BOOST_OPTIONAL. 2024-01-07 21:14:54 -06:00
Zach Laine
cd11fbb000 Documentation for the new alternative optionals and variants. 2024-01-07 20:56:51 -06:00
Zach Laine
cd284572c9 Add support for parsing into attributes whose types are optionals or variants
other than the ones from std:: (e.g. boost::optional, boost::variant, and
boost::variant2::variant).

Fixes #53.
2024-01-07 20:44:34 -06:00
Zach Laine
4becbe34ad Fix infinite loop when handling an optional of sequence attribute type in
repeat_parser.
2024-01-07 19:46:43 -06:00
Zach Laine
745b1b151d Add a small example to the parser test that shows that you do not need Sprit
2's hold[] directve.  Fix an error exercised by the example.
2024-01-07 15:11:47 -06:00
Zach Laine
8caf4bea09 Cruft removal. 2024-01-07 15:10:11 -06:00
Zach Laine
3ebbd9e08c Correct an error in repeat_parser's choice of attribute. Sometimes it is
necessary to use the value_type of the container out-param, rather than the
attribute generated by the subparser.

Fixes #52.
2024-01-07 12:29:23 -06:00
Zach Laine
a6c4cb14b1 Introduce op% early, and use it instead of its long-form equivalent in the
rest of the docs.

Fixes #46.
2024-01-07 01:15:24 -06:00
Zach Laine
86cfa03dde Replace eplxicit max aggregate size of 50 with reference to
BOOST_PARSER_MAX_AGGREGATE_SIZE.

Partially addresses #51.
2024-01-07 01:15:22 -06:00
Zach Laine
9e374f8cc3 Flesh out support for parsing into non-sequence containers. 2024-01-07 00:44:21 -06:00
Zach Laine
6ab2a9b6a4 Fix the parsing of attributes into nested aggregate types.
Fixes #50.
2024-01-07 00:44:21 -06:00
Zach Laine
c7b9eb6eb5 Reimplement get() overloads as one publicly-facing function. 2024-01-06 14:21:07 -06:00
Zach Laine
e6cb3e4159 Add BOOST_PARSER_MAX_AGGREGATE_SIZE, to replace the hardcoded 50 in tuple.hpp.
Fixes #51.
2024-01-06 13:22:58 -06:00
Zach Laine
469b0b9615 Add info for standalone mode to README.md. 2024-01-06 13:11:45 -06:00
Zach Laine
6f06bc4189 Add no_case[] docs. 2024-01-06 02:36:26 -06:00
Zach Laine
aa1951aa89 Minimum MSVC 2017 -> 2019. 2024-01-06 02:36:26 -06:00
Zach Laine
2e4154dcba Cruft removal. 2024-01-06 02:36:26 -06:00
Zach Laine
1e373378bd Assert when an rvalue reference is detected in the char_parser::operator()
overlaod that takes a range, to prevent dangling references.
2024-01-06 01:17:32 -06:00
Zach Laine
7a98202845 Address TODO about not using sizeof() to detect char32_t/single-byte input
value type.
2024-01-06 01:01:48 -06:00
Zach Laine
f1190f6f59 Grooming. 2024-01-06 01:01:48 -06:00