in *parse_impl(); add support to the error handlers and their support
functions directly instead. There are simply too many APIs there that need
the translation to leave it to other code.
Add lex_error exception type, and add support for all the APIs that used to
take a parse_error param to now take either a parse_error or a lex_error.
Throw lex_error from failed parsing of lexed tokens in detail::make_token().
See #202.
- Clone minimal Boost dependencies so that the minimal Boost.Test header is
available.
- Add boostdep-generated CMake code to the top of the top-level
CMakeLists.txt.
Fixes#127.
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.
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)
- Remove BOOST_PARSER_STANDALONE, and make that the default. The bits of
Boost that we might use are used automatically when they're available (as
discovered via __has_include).
- Remove the non-essential uses of Boost from the examples.
constants like llong; provide a tuple accessor get(); use these throughout the
code.
Also, adapt the code in detail/hl.hpp to work with hana::tuple and std::tuple.
- 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.