Skip to content

PEGTL 3.0.0

Compare
Choose a tag to compare
@d-frey d-frey released this 28 Nov 15:28
df0d9ee
  • 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_NAMESPACE now contains the fully qualified namespace, e.g. tao::pegtl.
    • Added [[nodiscard]] or [[noreturn]] to most non-void functions.
  • Meta-Data Layer
    • Replaced analysis_t with more general and complete rule_t and subs_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.
  • Error Handling
    • Replaced tao::pegtl::input_error with std::system_error and std::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.
  • Demangling
    • Removed the need for RTTI.
      • Some broken/unknown compilers will use RTTI as a fallback, without demangling.
    • Moved tao::pegtl::internal::demangle<T>() to tao::demangle<T>().
    • Improved generated code to be shorter and more efficient.
  • Parse Tree
    • Removed the need for RTTI.
  • Other
    • Changed std::string to std::filesystem::path for filename parameters.
    • Renamed byte_in_line to column and use 1-based counting.
    • Moved rule eolf from inline namespace tao::pegtl::ascii to tao::pegtl.
    • Changed rules in tao/pegtl/contrib/integer.hpp to not accept redundant leading zeros.
    • Added rules to tao/pegtl/contrib/integer.hpp that 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.hpp into json_count.cpp, count is superceded by coverage.
    • Removed right padding from contrib/json.hpp's value.
  • Cleanup
    • Removed option of state's S::success() to have an extended signature to get access to the current apply_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.hpp from contrib.