Skip to content

PEGTL 2.0.0

Compare
Choose a tag to compare
@ColinH ColinH released this 18 May 19:24
  • Project

    • Migrated to "The Art of C++".
    • A migration guide for porting applications from 1.y to 2.z is available.
    • Version 2.z can be installed and used in parallel to version 1.y of the PEGTL.
    • The semantics of all parsing rules and grammars is the same as for versions 1.y.
  • Input Layer

    • Added support for custom incremental input readers.
    • Added support for parsing C streams, i.e. std::FILE*.
    • Added support for parsing C++ streams, i.e. std::istream.
    • Added support for different EOL-styles.
    • Renamed class position_info to position.
    • Added the byte position to input classes and position.
    • Added fast parsing without line counting (except in errors).
    • Refactored the input class into multiple input classes.
    • Refactored the file parser classes into input classes.
    • Refactored the handling of nested parsing.
    • Removed the begin() member from class position.
    • Removed most parsing front-end functions.
  • Parsing Rules

    • Added combinator class minus.
    • Added ASCII rule class keyword.
    • Added string rules for UTF-8, UTF-16 and UTF-32.
    • Added apply, apply0 and if_apply rules for intrusive actions.
    • Added incremental input support rules discard and require.
  • String Macros

    • Renamed to TAOCPP_PEGTL_(I)STRING.
    • Increased allowed string length to 512.
    • Allowed embedded null bytes.
    • Reduced template instantiation depth.
  • Other Changes

    • Added apply() and apply0() methods to control class.
    • Optimised superfluous input markers.
    • Allowed optimisation of actions that do not need the input.
    • Replaced layered matching with superior Duseltronik™.
    • Reduced template instantiation depth.
    • Added support for CMake.
    • Added automated testing with Visual Studio 2015 and 2017.
    • Added automated testing with Android 5.1, NDK r10e.