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
Zach Laine
ecd40e1e7a
Doc typo.
2024-01-07 21:22:07 -06:00
Zach Laine
cd11fbb000
Documentation for the new alternative optionals and variants.
2024-01-07 20:56:51 -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
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
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
0b7891d9cd
Add a note to the "Parsing structs" section of the docs, indicating the
...
50-member limit on automatic use of structs as tuple.
Fixes #48 .
2024-01-04 19:38:47 -06:00
Zach Laine
60cea9aa29
Fix broken docs.
...
Partially addresses #28 .
2024-01-03 23:44:40 -06:00
Zach Laine
d60d33e40b
Finish implementing support for parsing into structs as if they were tuples.
...
This makes it possible to map from sequence parsers onto structs with no
semantic actions. Also, add a doc section describing how parsing structs
works (including a couple of short example programs).
Fixes #45 .
Partially addresses #28 .
2024-01-03 23:24:37 -06:00
Zach Laine
0e78ea2d26
Remove the T >> T -> std::vector<T> attribute combining rule from seq_parser.
2024-01-03 02:04:04 -06:00
Zach Laine
7883b8ed1e
Update docs to reflect the new detail::sequence_of<T> semantics (std::string
...
for sequence of char, std::vector<T> for everything else). Also, update one
of the examples to match the associated test code.
Partially addresses #36 .
2024-01-03 01:37:07 -06:00
Zach Laine
009ad6fc69
Add a note to the entry for "ws" in the big table in "The Parsers and Their
...
Uses", indicating that it should be preferred over asci::space.
Partially addresses #34 .
2024-01-01 18:53:21 -06:00
Zach Laine
24d18b4eaf
Remove the documentation section "An Odd Case", which was obviated by the
...
previous commit. Also remove the test cases that exercised that case.
2024-01-01 15:30:45 -06:00
Zach Laine
d34d4b7e6a
Remove the seq_parser C<T> >> C<T> -> C<T> collapsing rule. Add special logic
...
for recursive rules to make accumulating recursive parsers like
recursive_string_rule in the parser_rule test easier to write.
2024-01-01 15:29:45 -06:00
Zach Laine
27cf4b73ad
Improve description of parse context.
2024-01-01 15:29:45 -06:00
Zach Laine
32b244aa3a
Clean up uses of tuple template names in variaous parts of the docs. This
...
mostly amounts to replacing uses of boost::hana::tuple with more general
boost::parser::tuple where appropriate.
2024-01-01 15:29:45 -06:00
Zach Laine
2ec66193e1
Document, using links, the existence and semantics of Parser's tuple and get.
2024-01-01 15:29:45 -06:00
Zach Laine
c25982f1d2
In the intro, be very specific about what the __has_include-triggered
...
differences are.
2024-01-01 15:29:45 -06:00
Zach Laine
19f398907b
Remove references to Boost.Preprocessor.
...
Applies to #32 .
2023-12-30 21:04:31 -06:00
Zach Laine
e88d819122
Change the trivial_skipper example to use ws instead of ascii::space, and add
...
text to the tutorial to explain why this is a better choice.
Fixes #34 .
2023-12-30 17:22:55 -06:00
Zach Laine
38279949a4
Fix numerous doc typos. Guess I haven't run spellcheck in a while.
2023-12-30 16:24:08 -06:00
Zach Laine
3fee66b562
Doc typo.
...
Fixes #38 .
2023-12-30 15:14:17 -06:00
sehe
b7d1d3dba5
Fix spelling of hexadecimal
...
The library and documentation misspells it (consistently, which is good
:)) as hexidecimal. That makes it hard for (new) users to find out by
searching documentation.
The fifteen spots fixed:
example/callback_json.cpp|47 col 15| "four hexidecimal digits";
example/callback_json.cpp|49 col 18| "\\uXXXX hexidecimal escape sequence";
example/callback_json.cpp|51 col 38| escape_double_seq = "\\uXXXX hexidecimal escape sequence";
example/json.cpp|57 col 28| // like "expected four hexidecimal digits here:", instead of "expected
example/json.cpp|65 col 15| "four hexidecimal digits";
example/json.cpp|67 col 18| "\\uXXXX hexidecimal escape sequence";
example/json.cpp|69 col 38| escape_double_seq = "\\uXXXX hexidecimal escape sequence";
example/json.cpp|158 col 18| // declare a hexidecimal parser that matches exactly 4.
doc/tutorial.qbk|981 col 18| [ Matches a hexidecimal unsigned integral value. ]
doc/tutorial.qbk|986 col 28| [ Matches exactly the hexidecimal unsigned integral value `_RES_np_(arg0)`. ]
doc/tutorial.qbk|1118 col 42| So, if you wanted to parse exactly eight hexidecimal digits in a row in order
doc/tutorial.qbk|2729 col 18| "\\uXXXX hexidecimal escape sequence";
doc/tutorial.qbk|2731 col 38| escape_double_seq = "\\uXXXX hexidecimal escape sequence";
doc/tutorial.qbk|2741 col 9| put a hexidecimal escape sequence there.
include/boost/parser/parser.hpp|5622 col 13| /** The hexidecimal unsigned integer parser. Produces an `unsigned int`
The one spot that was inconsistent (outside the gtest subtree):
include/boost/parser/tuple.hpp|66 col 36| // 0xDEADBEEF (hexadecimal)
2023-12-30 15:13:04 -06:00
Zach Laine
ed95f33ef6
Add explicit mention of BOOST_PARSER_DEFINE_RULE* to the tutorial page on
...
rules.
Partially addresses #27 .
2023-12-29 13:46:04 -06:00
Zach Laine
b218bd78d7
Print diagnostics to cerr by default instead of cout.
...
Fixes #30 .
2023-12-29 13:27:52 -06:00
Zach Laine
7cba6c36f5
Doc typo.
2023-12-29 13:27:28 -06:00
Zach Laine
88a965d9c5
Rename the {callback_,}parse() overloads that take an iterator/sentinel pair
...
to {callback,}prefix_parse().
Fixes #21 .
2023-12-23 04:05:54 -06:00