Zach Laine
|
4b2c9bcf14
|
Fix the unconditional generation of attributes by raw_parser and
string_view_parser. They now do so only when the enclosing context has
attribute generation enabled, and when their subparser succeeds.
|
2024-01-16 23:15:02 -06:00 |
|
Zach Laine
|
cced72dbcd
|
std::{begin,end} -> detail::text::detail::{begin,end}
|
2024-01-15 23:09:00 -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
|
2054eab1bd
|
Disable string_view[] code in parser.cpp in pre-C++20 builds.
|
2024-01-15 00:51:00 -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
|
7103755e59
|
Comment out test code that exercises spooky behavior on MSVC.
|
2024-01-15 02:55:30 -06:00 |
|
Zach Laine
|
53e0f7c769
|
Fix misplaced #endif that broke most of our builds.
|
2024-01-14 20:15:31 -06:00 |
|
Zach Laine
|
d17db09303
|
Use the warning-provocation technique from boost/mpl/print.hpp to cause the
types to be printed in some places after a static_assert failure.
Partially addresses #56.
|
2024-01-14 18:32:35 -06:00 |
|
Zach Laine
|
b055b21f1f
|
Address TODO about string_view_parser needing tests.
|
2024-01-14 17:41:38 -06:00 |
|
Zach Laine
|
bf06cfc57a
|
Fix string_view_parser, broken by the most recent boost::text import.
|
2024-01-14 16:47:50 -06:00 |
|
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 |
|