2
0
mirror of https://github.com/boostorg/parser.git synced 2026-01-26 06:42:25 +00:00

1077 Commits

Author SHA1 Message Date
Zach Laine
07daa697f4 Make it an error to put eps in an or_parser anywhere but at the end.
Fixes #7.
2020-08-31 22:02:37 -05:00
Zach Laine
a05a2c9f3a Flesh out more of the attribute generation section. 2020-08-31 22:02:37 -05:00
Zach Laine
9064d46641 Add a compile test that covers all the standalone parsers, and fix errors
related to deducing uses of the Unicode vs. non-Unicode parsing code paths.
2020-08-31 22:02:35 -05:00
Zach Laine
cb8a7043a3 Make sure lit() and _l and _p UDLs all cover char, char8_t, and char32_t. 2020-08-31 22:02:33 -05:00
Zach Laine
af661a8b43 Suppress sign comparison warnings in detail::mismatch(). 2020-08-31 22:02:33 -05:00
Zach Laine
5a7924f614 Fix the char8_t stream insertion problem throughout the printing code. 2020-08-31 22:02:27 -05:00
Zach Laine
d1cfdbe41d Flatten or and seq parsers fully. 2020-08-31 22:01:48 -05:00
Zach Laine
24e7b1f134 Flesh out attribute generation section a bit; still more to do. 2020-08-31 22:01:48 -05:00
Zach Laine
fec67a1dd1 Hide some of the implementation details of parser_interface from Doxygen. 2020-08-31 22:01:48 -05:00
Zach Laine
470def65ab Sketch more of the outline of the tutorial, including most of the section on
attribute generation.
2020-08-30 21:05:13 -05:00
Zach Laine
c37a9c65a8 Add a mutable symbol table example. 2020-08-30 18:07:43 -05:00
Zach Laine
b33992719c Add symbol parser example. 2020-08-30 18:06:50 -05:00
Zach Laine
1d90a9d621 Lots of doc updates:
- Add a rationale for parser::none.
- Add a section introducing essential terminology.
- Flesh out the semantic action example.
- Add a section describing the parse context and how it works.
- Remove numerous TODOs related to documentation addressed above.
2020-08-30 15:33:56 -05:00
Zach Laine
df8aaafc87 Move nope into detail, and add a user-facing replacement "none" with semantics
more appropriate for users.
2020-08-30 15:29:26 -05:00
Zach Laine
f8191db3f5 Remove a nonsensical TODO. 2020-08-30 11:41:40 -05:00
Zach Laine
565596af52 Add section "This Library's Relationship to Boost.Spirit". 2020-08-30 01:17:58 -05:00
Zach Laine
b8e5eb7b4d First draft of the intro. 2020-08-30 00:31:30 -05:00
Zach Laine
bf6c5c605f Add a test of code-point matching when using UTF-8. 2020-08-30 00:31:30 -05:00
Zach Laine
e496cbb3a9 Accomodate printing of char8_t input strings to streams. 2020-08-30 00:31:30 -05:00
Zach Laine
b43e7a354c Move a TODO within parser.hpp. 2020-08-30 00:31:30 -05:00
Zach Laine
d592a38f1f Remove addressed TODO. 2020-08-30 00:31:30 -05:00
Zach Laine
b817d9f2f9 Move the "examples", which are really a step-by-step tutorial, to the tutorial
section.
2020-08-30 00:31:25 -05:00
Zach Laine
5fcca75797 Flesh out the trivial example, fix a problem with it, and add another example
just like it that uses a skipper.
2020-08-29 21:53:54 -05:00
Zach Laine
0b86c6771e Flesh out the hello world example accompanying text. 2020-08-29 21:09:50 -05:00
Zach Laine
97c273e0c3 Replace a TODO in test/CMakeLists.txt with an indication of the "fix" for the
affected tests.
2020-08-29 21:09:50 -05:00
Zach Laine
950065b5d2 Range-parse overloads now indicated failure when the entire input is not
consumed.
2020-08-29 21:09:50 -05:00
Zach Laine
532b138c77 std::mismatch -> detail::mismatch for sentinel support. 2020-08-29 19:17:04 -05:00
Zach Laine
678f666785 Remove "skip_" from all parse function names, and reorder the parse API
functions for clarity.  Also, drive-by cleanups in parser_{,api}.cpp.
2020-08-29 19:17:04 -05:00
Zach Laine
7020a9a7b3 Move parser_interface Doxygen doc to parser_fwd.hpp. 2020-08-29 19:17:04 -05:00
Zach Laine
9d72b3d1fc Silence very verbose warnings about std::is_pod being deprecated, coming from
Boost.Hana.
2020-08-29 19:17:04 -05:00
Zach Laine
1f317d5588 Add trivial parsing example. 2020-08-29 19:17:04 -05:00
Zach Laine
7e32012482 Regularize {int,float}_parser. They were returning incorrect success results
when no input was consumed, and float_parser was never setting the success
value.
2020-08-29 19:17:04 -05:00
Zach Laine
c2374adf12 Warning mitigation in test/. 2020-08-29 19:17:04 -05:00
Zach Laine
2e8861256d detail::make_input_range -> detail::make_input_view 2020-08-29 19:17:04 -05:00
Zach Laine
7b98b97615 R range -> R r 2020-08-29 19:17:04 -05:00
Zach Laine
b06c80bfe2 Add skeleton of Boost docs. 2020-08-29 19:17:04 -05:00
Zach Laine
da631afac4 Update the Spirit X3 code to Boost 1.71. 2020-08-28 20:43:51 -05:00
Zach Laine
19cd3646d5 Cruft removal. 2020-08-28 20:40:28 -05:00
Zach Laine
f96b6bb0ad Trim all the YAML and JSON stuff, leaving only the parsing library. 2020-08-28 19:10:00 -05:00
Zach Laine
98c1426695 Amplify the nope Doxygen docs. 2020-08-28 19:10:00 -05:00
Zach Laine
4b516b9047 Make parser::range a proper view (called "parser::view"), via
view_interface. Some drive-by grooming.
2020-08-28 19:09:58 -05:00
Zach Laine
46a2acd18d Largish changes to get things going again after a long break:
- Update text and stl_interface files.
- Flesh out concepts constraints, using C++20 proper instead of cmcstl2.
  Remove SFINAE constraints (though SFINAE may make a comback for C++17
  support).
- Remove parser concept entirely.  Matching parser_interface<...> should
  suffice.
- Add CXX_STD to CMake files, a la text and stl_interfaces.
2020-08-28 19:09:45 -05:00
Zach Laine
96f78ef743 Doxygen doc copy editing. 2020-08-27 19:07:01 -05:00
Zach Laine
03e01b9810 Add an API test for the parser API, using the new standalone CMake parser
library; fix errors.
2019-11-27 22:28:56 -06:00
Zach Laine
ea3242867c Update concepts constraints, but disable them for now. 2019-11-27 22:28:18 -06:00
Zach Laine
443bbb92e6 Add initial sketch of concept constraints for parser. 2019-11-19 09:55:22 -06:00
Zach Laine
7651786c3f Add optional support for cmcstl2 to the CMake build. 2019-11-19 09:55:15 -06:00
Zach Laine
5de175bd3a Change detail::make_input_range() to treat char8_t ranges as UTF-8. 2019-11-19 09:54:52 -06:00
Zach Laine
84eedfe4f9 detail::nope -> nope 2019-11-16 19:34:03 -06:00
Zach Laine
653aa020dc For all inputs to the parse API, enforce the use of char for non-Unicode
parsing, and interpret all other integral types as some sort of UTF encoding.
2019-11-16 19:15:34 -06:00