Releases: taocpp/PEGTL
Releases · taocpp/PEGTL
PEGTL 3.0.0
- Use the migration guide when updating.
- Infrastructure
- Updated required C++ standard to C++17.
- Updated required CMake version to 3.8.
- The macro
TAO_PEGTL_NAMESPACEnow contains the fully qualified namespace, e.g.tao::pegtl. - Added
[[nodiscard]]or[[noreturn]]to most non-void functions.
- Meta-Data Layer
- Replaced
analysis_twith more general and completerule_tandsubs_t. - Added functions to visit all rules of a grammar.
- Added functions to measure rule coverage of a parsing run.
- Moved the analysis function and header to contrib.
- Replaced
- Error Handling
- Replaced
tao::pegtl::input_errorwithstd::system_errorandstd::filesystem::filesystem_error. - Added
must_if<>- Allows to define custom error messages for global errors.
- Adds a non-intrusive way to define global parse errors for a grammar retroactively.
- Replaced
- Demangling
- Removed the need for RTTI.
- Some broken/unknown compilers will use RTTI as a fallback, without demangling.
- Moved
tao::pegtl::internal::demangle<T>()totao::demangle<T>(). - Improved generated code to be shorter and more efficient.
- Removed the need for RTTI.
- Parse Tree
- Removed the need for RTTI.
- Other
- Changed
std::stringtostd::filesystem::pathfor filename parameters. - Renamed
byte_in_linetocolumnand use 1-based counting. - Moved rule
eolffrom inline namespacetao::pegtl::asciitotao::pegtl. - Changed rules in
tao/pegtl/contrib/integer.hppto not accept redundant leading zeros. - Added rules to
tao/pegtl/contrib/integer.hppthat test unsigned values against a maximum. - Demoted UTF-16 and UTF-32 support to contrib.
- Demoted UINT-8, UINT-16, UINT-32 and UINT-64 support to contrib.
- Folded
contrib/counter.hppintojson_count.cpp, count is superceded by coverage. - Removed right padding from
contrib/json.hpp'svalue.
- Changed
- Cleanup
- Removed option of state's
S::success()to have an extended signature to get access to the currentapply_mode,rewind_mode, action- and control class (template). - Removed compatibility macros starting with
TAOCPP_PEGTL_. - Removed compatibility uppercase enumerators.
- Removed compatibility
peek_byte()member functions. - Removed compatibility header
changes.hppfrom contrib.
- Removed option of state's
PEGTL 2.8.3
- Fixed excessive read-ahead with incremental inputs.
- Added state manipulators
remove_first_state,remove_last_states,rotate_states_right,rotate_states_left, andreverse_statesto contrib. - Reduced the number of intermediate parse tree nodes.
PEGTL 2.8.2
- Fixed parse tree node generation to correctly remove intermediate nodes.
PEGTL 2.8.1
- Added fallback symbol demangling if RTTI is disabled.
- Fixed missing
string_input<>in amalgamated header. - Fixed
discard_input*actions to properly forward the apply mode. - Fixed contrib HTTP grammar for chunked data.
PEGTL 2.8.0
- Use the migration guide when updating.
- Changed enumerators to lowercase.
- Renamed
tracking_mode::IMMEDIATEtotracking_mode::eager. - Compatibility enumerators with uppercase names are still included.
- Will be removed in version 3.0.0.
- Renamed
- Renamed
peek_byte()topeek_uint8().- Compatibility member functions with previous names are still included.
- Will be removed in version 3.0.0.
- Compatibility member functions with previous names are still included.
- Allowed actions to implement
match. - Made deriving action class templates from
nothingoptional. - Added debug tools
require_applyandrequire_apply0. - Added combinator class
rematch. - Improved the Parse Tree / AST interface to mostly hide its internal state.
- Added new action-based helpers
change_*.hpp.- The control-based helpers in
contrib/changes.hppare still included.- Will be removed in version 3.0.0.
- The control-based helpers in
- Added new action-based helpers
disable_action.hppandenable_action.hpp. - Added new action-based helpers
discard_input.hpp,discard_input_on_success.hpp, anddiscard_input_on_failure.hpp. - Added Clang Static Analyzer to the CI build.
- Added new Makefile target
amalgamateto generate a single-header version of the PEGTL. - Added support for Universal Windows Platform (UWP).
PEGTL 2.7.1
- Added new ASCII convenience rule
forty_two. - Added experimental
if_thenrule. - Simplified how parse tree nodes can be selected.
- Reduced the number of intermediate parse tree nodes.
- Allowed an action class template to be used with the parse tree.
PEGTL 2.7.0
- Added
mmap_file<>support for Windows. - Added deduction guides for the input classes when compiling with C++17.
PEGTL 2.6.1
- Fixed endianness detection in test program.
PEGTL 2.6.0
- Added Conan packages.
- Fixed the UTF-8 decoder to no longer accept UTF-16 surrogates.
- Fixed the UTF-16 decoder to no longer accept UTF-16 unmatched surrogates.
- Fixed the UTF-32 "decoder" to no longer accept UTF-16 surrogates.
- Fixed
pegtl/contrib/unescape.hhto no longer accept unmatched surrogates. - Optimised convenience rule
two. - Added new convenience rule
three.
PEGTL 2.5.2
- Fixed
optanduntilto work as documented in some rare edge cases. - Used
opt_mustandstar_mustto optimise some included grammars.