The trace feature doubles the compile time, even if never used.
This patch introduces the preprocessor define BOOST_PARSER_DISABLE_TRACE
to deactivate this feature at compile time.
attr_type attribute ('attr'), rather than the one supplied ('retval'). Then,
take the parsed attribute and either combine it with retval (if they are both
containers), or assign attr to retval (if attr_type is not none).
Reproducer by Andreas Buhr.
Fixes#294.
The test led to the following error before:
github_issues.cpp(522): error C3615: constexpr function
'boost::parser::switch_' cannot result in a constant expression
not assign over valid values in a sequence's attribute after successfully
parsing a subsquent nope-attributes parser.
Test cases by Andreas Buhr.
Fixes#279Fixes#285
of call. Doing so was wiping out previous partial results, in cases like foo
>> bar, where foo produces a T, and bar is a rule that produces vector<T>.
Fixes#248.
* Add symb parser to handle unicode symbols
* Add documentation for symb
* Add tests for symb
* Fix typo in the documentation
---------
Contributed by: Antoine Fontaine <antoinefontaine@posteo.net>
parsers. Instead of trying to find all of them at the start of the top-level
parse, they are recorded in the context, and then applied at the end of the
top-level parse. The previous technique did not work, simplt because the
top-level parse cannot see all the parser involded -- some are behind rule
firewalls, by design.
Related to #183.
Fixes#204.
subsequent parses both. Add better tests for the added API and the previous
subset of the operations already present. Fix errors revealed by the tests.
Fixes#183.
places that used __cpp_lib{concepts,ranges} previously. This is often
necessary when concepts are disabled, since the user might have a broken
implementation of concepts.
- 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.
that the changes to support recursive rules made all rules use the out-arg
overload of parse_rule. This is wrong. Now, rules use the
attribute-returning overload unless asked explicitly to use the out-arg one,
*or* if the rule is being invoked recursively, and we are in an iteration
after the 0th.
Fixes#125.